Giter VIP home page Giter VIP logo

crispywaffle's Introduction

Crispy Waffle

🧰 🛠️ Pancake project - a toolkit for .NET projects.

GitHub license Time tracker

Crispy Waffle logo

Documentation: Read the Docs


Table of Contents

  • CI/CD: Current project status in the build pipeline (AppVeyor).
  • Code Quality: Metrics from some tools about code quality.
  • Installation: How to install/download this tool.
  • User guide: How to set up, configure and use this tool.
  • Change log: Changelog containing the changes that were done in this project.
  • Support: How to get support.
  • Contributing: How to contribute.

CI/CD

Build status Last commit Tests Coverage Code Smells LoC
Build status GitHub last commit AppVeyor tests (branch) Coverage Code Smells Lines of Code

Code Quality

Codacy Badge Codacy Badge

codecov CodeFactor

Maintainability Test Coverage

Quality Gate Status Maintainability Rating

Technical Debt Duplicated Lines (%)

Reliability Rating Security Rating

Bugs Vulnerabilities

DeepSource


Installation

Github Releases

GitHub last release Github All Releases

Download the latest zip file from the Release page.

Nuget package manager

Package Version Downloads
CrispyWaffle CrispyWaffle NuGet Version CrispyWaffle NuGet Downloads
CrispyWaffle.Configuration CrispyWaffle Configuration NuGet Version CrispyWaffle Configuration NuGet Downloads
CrispyWaffle.ElasticSearch CrispyWaffle ElasticSearch NuGet Version CrispyWaffle ElasticSearch NuGet Downloads
CrispyWaffle.Elmah CrispyWaffle ELMAH NuGet Version CrispyWaffle ELMAH NuGet Downloads
CrispyWaffle.Log4Net CrispyWaffle Log4Net NuGet Version CrispyWaffle Log4Net NuGet Downloads
CrispyWaffle.RabbitMQ CrispyWaffle.RabbitMQ NuGet Version CrispyWaffle.RabbitMQ NuGet Downloads
CrispyWaffle.Redis CrispyWaffle Redis NuGet Version CrispyWaffle Redis NuGet Downloads
CrispyWaffle.Utils CrispyWaffle Utils NuGet Version CrispyWaffle Utils NuGet Downloads

More information is available here.


User guide

The user guide is available here.


Changelog

The changelog is available here.


Support

Please open an issue for support.


Contributing

Refer to CONTRIBUTING.md to learn how to contribute to this project!

Contributors

guibranco
Guilherme Branco Stracini
Looseling
Batyrkhan Akzholov
joaovaladares
João V. Valadares
SimranGil
Simran Gill
tiagoschaffer
Tiago Schäffer
viktoriussuwandi
Viktorius Suwandi
Yousef-Majidi
Yousef
akhtareimon
Null

Bots

dependabot[bot]
dependabot[bot]
github-actions[bot]
github-actions[bot]
deepsource-autofix[bot]
deepsource-autofix[bot]
stack-file[bot]
stack-file[bot]
snyk-bot
Snyk Bot

crispywaffle's People

Contributors

akhtareimon avatar deepsource-autofix[bot] avatar dependabot[bot] avatar github-actions[bot] avatar guibranco avatar joaovaladares avatar looseling avatar simrangil avatar stack-file[bot] avatar tiagoschaffer avatar viktoriussuwandi avatar yousef-majidi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

crispywaffle's Issues

[BUG] Remove culture specific from codebase

Is your feature request related to a problem? Please describe.
Remove culture-specific code from the codebase.

Describe the solution you'd like

  • Remove the extensions method for Brazilian formats
  • Remove default CultureInfo for pt-BR
  • Remove any other specific code that might change or default to another based on implementation culture info.

Add SMTP and FTP clients in Utils projects

Is your feature request related to a problem? Please describe.
Add new project CrispyWaflle.Utils and add communications namespace with FTP and SMTP clients.

Describe the solution you'd like

  • Add FtpClient class.
  • Add SmtpClient class;

Remove manual .NET 8 installation in AppVeyor

Is your feature request related to a problem? Please describe.
Remove the manual installation of .NET 8 from appVeyor.yml file when AppVeyor releases a new image with built-in support for the .NET 8

Describe the solution you'd like
Remove lines 28 and 29 from the appVeyor.yml file when AppVeyor releases an official.NET 8 image.

Add README to NuGet

Is your feature request related to a problem? Please describe.
Add README to NuGet

Describe the solution you'd like
Add README to NuGet

[FEATURE] Implement `RollingTextFileLogAdapter`

Is your feature request related to a problem? Please describe.
Implement the class RollingTextFileLogAdapter

Describe the solution you'd like
I would like to have an implementation of the Rolling Text File Log Adapter.
It should be a text file log adapter and should handle the file size/name.
A new file must be created whenever the file reaches the configured maximum size or the number of messages per file.

The rules are:

  • file size (B, MB, GB, ...)
  • quantity of messages (number of messages to roll up)

Implement EnvironmentHelper

Implement the class EnvironmentHelper with the followin properties:

  • ApplicationName
  • DisplayApplicationName
  • ExecutionPath
  • Host
  • IpAddress
  • IpAddressExternal
  • OperationalSystemVersion
  • ProcessId
  • UserAgent
  • UserName
  • Version
  • VersionDate

Add SecureCredentialProvider

Add class and interface SecureCredetianlProvider

The class provides data for securing the Credential from configuration.

[FEATURE] Add Saga capability

Is your feature request related to a problem? Please describe.
It would be nice to have SAGA capabilities in the event handler process.

Describe the solution you'd like
Could you implement the SAGA pattern handling in the EventsConsumer class?

  • An event should trigger the saga (like any other event already present in the events consumer feature).
  • Multiple other messages can continue the SAGA (like the EventHandler can handle multiple types of events, the saga also can do it)
    • This will be different from standard event handler, since it will be a SAGA data class that will be correlated to all messages
    • The SAGA data will be present in all event handler, and needs to be correlated upon being handled by the new event/message
  • The SAGA needs to be persisted (SQL, noSQL, memory)
  • The SAGA needs to be completed
  • The SAGA needs to have a timeout feature

Extract `EventLog` and remove dependency `System.Diagnostics.EventLog` from `CrispyWaffle` project

Extract the System.Diagnostics.EventLog from Src/CrispyWaffle/Log/Providers and Src/CrispyWaffle/Log/Adapters to a dedicated project CrispyWaffle.EventLog and remove the dependency of System.Diagnostics.EventLog in CrispyWaffle project.

Files:

Steps to archive the goal:

  • Create a new project in the CrispyWaffle solution named CrispyWaffle.EventLog
  • Add a dependency to the main project in this newly created project
  • Uninstall the System.Diagnostics.EventLog from the main project
  • Install the System.Diagnostics.EventLog package in the new project
  • If you are new to .NET, you can just cut the line from one project and paste it in the other, this will be enough to uninstall/install a nugget package
  • Move the 4 files listed above in the main project to this newly created project
  • Keep the same file structure for the moved files, so it will be something like Src/CrispyWaffle.EventLog/Log/Adapters (for the adapter) and Src/CrispyWaffle.EventLog/Log/Providers (for the other 3 files)

Depfu Error: No dependency files found

Hello,

We've tried to activate or update your repository on Depfu and couldn't find any supported dependency files. If we were to guess, we would say that this is not actually a project Depfu supports and has probably been activated by error.

Monorepos

Please note that Depfu currently only searches for your dependency files in the root folder. We do support monorepos and non-root files, but don't auto-detect them. If that's the case with this repo, please send us a quick email with the folder you want Depfu to work on and we'll set it up right away!

How to deactivate the project

  • Go to the Settings page of either your own account or the organization you've used
  • Go to "Installed Integrations"
  • Click the "Configure" button on the Depfu integration
  • Remove this repo (guibranco/CrispyWaffle) from the list of accessible repos.

Please note that using the "All Repositories" setting doesn't make a lot of sense with Depfu.

If you think that this is a mistake

Please let us know by sending an email to [email protected].


This is an automated issue by Depfu. You're getting it because someone configured Depfu to automatically update dependencies on this project.

Add serializer for `System.Text.Json`

This issue is about adding a new serializer adapter to the project.

The new serializer should use the System.Text.Json instead of the Newtonsoft.Json used by JsonSerializerAdapter.

Currently, we have the following serializers in the project:

The proposed solution is to rename JsonSerializerAdapter to NewtonsoftJsonSerializerAdapter and also add the JsonSerializerAdapter that will implement the serialization and deserialization logic using the System.Text.Json.

The class should implement the ISerializerAdapter interface. More precisely, it should implement the BaseSerializerAdapter abstract class.

[FEATURE] Add Request/Response pattern in EventsDispatcher (maybe a CommandsDispatcher)

Description

Currently, we have the EventsDispatcher that receives an IEvent and dispatches it overall EventsHandlers.

The idea here is to have a CommandsDispatcher that will receive an ICommand as input, and dispatch/send it for one, and one only CommandHandler and send back to the caller the response.dispatch/send it for one and only one CommandHandler, and send the response back to the caller

Tech notes

Use memory transport for this (maybe in the future we can have distributed system arch for this).

Additional information

No response

Add explicitly support to `.NET 6`, `.NET 7` and `.NET 8`

Is your feature request related to a problem? Please describe.
This library currently targets .NET Standard 2.0 and .NET Standard 2.1. The goal is to also target it to .NET 6 (LTS - Nov/2024), .NET 7 (STS - May/2024) and .NET 8 (Nov/2026).

Describe the solution you'd like
Add the three versions to TargetFrameworks node in each .csproj.
No source code change, only configuration at this stage.
Subsequently we can consider having compiler conditionals for specific code that targets specific .NET versions/features.

[FEATURE] Add `SEQ` log provider

Is your feature request related to a problem? Please describe.
Add a project CrispyWaffle.Seq that should implement SeqLogProvider and SeqBatchLogAdapter classes that will forward logs to HTTP endpoint (the SEQ server).

Describe the solution you'd like

  • Create a new project (and NuGet package) named: CrispyWaffle.Seq
  • Create a class SeqLogProvider that implements ILogProvider
  • Create a class SeqBatchLogAdapter that implements ICategorizedLogAdapter
  • The class should forward the messages through HTTP using the SEQ Ingestion with HTTP or some of .NET implementation in a batch configurable behaviour (timeout or throughput or both)

Fix test tab on CI

Describe the bug
Fiz test report in AppVeyor

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'AppVeyor'
  2. Click on 'tests' tab, it is empty

Add self reference in methods

When registering a interface/class, allow the usage of ServiceLocator methods inside constructor

ServiceLocator.Register<T>(s => new T(s.Resolve<TDependency>());

So s is a reference to ServiceLocator class.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.