├── .gitignore ├── CodeAnalysis.ruleset ├── CodeAnalysis.targets ├── README.md ├── StyleCop.json └── src ├── Api ├── Api.csproj ├── Controllers │ ├── ApiController.cs │ ├── BudgetsController.cs │ ├── ExpensesController.cs │ └── UsersController.cs ├── Middleware │ └── CustomExceptionHandlerMiddleware.cs ├── Program.cs ├── Startup.cs ├── appsettings.Development.json └── appsettings.json ├── Application.Commands ├── Application.Commands.csproj ├── AssemblyProvider.cs ├── Budgets │ └── CreateBudget │ │ ├── CreateBudgetCommand.cs │ │ ├── CreateBudgetCommandHandler.cs │ │ └── CreateBudgetCommandValidator.cs ├── Expenses │ ├── CreateExpense │ │ ├── CreateExpenseCommand.cs │ │ ├── CreateExpenseCommandHandler.cs │ │ └── CreateExpenseCommandValidator.cs │ ├── DeleteExpense │ │ ├── DeleteExpenseCommand.cs │ │ ├── DeleteExpenseCommandHandler.cs │ │ └── DeleteExpenseCommandValidator.cs │ └── UpdateExpense │ │ ├── UpdateExpenseCommand.cs │ │ ├── UpdateExpenseCommandHandler.cs │ │ └── UpdateExpenseCommandValidator.cs ├── ICommand.cs ├── Infrastructure │ └── EntityCreatedResponse.cs └── Users │ └── CreateUser │ ├── CreateUserCommand.cs │ ├── CreateUserCommandHandler.cs │ └── CreateUserCommandValidator.cs ├── Application.Documents ├── Abstractions │ └── IMappable.cs ├── Application.Documents.csproj ├── AssemblyProvider.cs ├── Documents │ ├── Expense.cs │ └── User.cs └── Infrastructure │ └── MappingProfile.cs ├── Application.Events ├── Application.Events.csproj ├── AssemblyProvider.cs ├── Expenses │ ├── ExpenseAmountChangedEventHandler.cs │ ├── ExpenseCreatedEventHandler.cs │ ├── ExpenseDateChangedEventHandler.cs │ ├── ExpenseDeletedEventHandler.cs │ └── ExpenseNameChangedEventHandler.cs └── Users │ └── UserCreatedEventHandler.cs ├── Application.Queries ├── Application.Queries.csproj ├── AssemblyProvider.cs ├── Expenses │ ├── GetExpense │ │ ├── GetExpenseQuery.cs │ │ └── GetExpenseQueryHandler.cs │ └── GetExpenses │ │ ├── GetExpensesForUserQuery.cs │ │ └── GetExpensesForUserQueryHandler.cs ├── IQuery.cs ├── Indexes │ └── Expenses_ByUserId.cs └── Users │ └── GetUser │ ├── GetUserQuery.cs │ └── GetUserQueryHandler.cs ├── Application.UnitTests └── Application.UnitTests.csproj ├── Application ├── Abstractions │ ├── IDateTime.cs │ ├── IDbContext.cs │ ├── IDocumentStoreProvider.cs │ └── IUnitOfWork.cs ├── Application.csproj ├── Behaviors │ ├── LoggingBehavior.cs │ ├── PerformanceMonitorBehavior.cs │ ├── TransactionBehavior.cs │ ├── UnitOfWorkBehavior.cs │ └── ValidationBehavior.cs ├── DependencyInjection.cs ├── Extensions │ └── RequestExtensions.cs └── QuerySpecifications │ ├── IQuerySpecification.cs │ └── QuerySpecificationBase.cs ├── Domain.Core ├── Domain.Core.csproj ├── Events │ ├── BaseDomainEvent.cs │ ├── IDomainEvent.cs │ └── IDomainEventHandler.cs ├── Exceptions │ ├── DomainException.cs │ ├── EntityNotFoundException.cs │ ├── EnumerationInvalidException.cs │ └── ValidationException.cs ├── Extensions │ └── ResultExtensions.cs └── Primitives │ ├── AggregateRoot.cs │ ├── Entity.cs │ ├── Enumeration.cs │ ├── IAuditableEntity.cs │ ├── ISoftDeletableEntity.cs │ ├── Result.cs │ └── ValueObject.cs ├── Domain.UnitTests ├── Domain.UnitTests.csproj └── ValueObjects │ ├── EmailTests.cs │ └── MoneyTests.cs ├── Domain ├── Budgets │ ├── Budget.cs │ ├── Events │ │ ├── BudgetAmountDeposited.cs │ │ └── BudgetAmountWithdrawn.cs │ └── IBudgetRepository.cs ├── Domain.csproj ├── Exceptions │ ├── EmptyMoneyException.cs │ ├── EndDatePrecedesStartDateException.cs │ └── NegativeAmountException.cs ├── Expenses │ ├── Currency.cs │ ├── Events │ │ ├── ExpenseAmountChangedEvent.cs │ │ ├── ExpenseCreatedEvent.cs │ │ ├── ExpenseDateChangedEvent.cs │ │ ├── ExpenseDeletedEvent.cs │ │ └── ExpenseNameChangedEvent.cs │ ├── Expense.cs │ ├── IExpenseRepository.cs │ └── Money.cs ├── Infrastructure │ └── Check.cs └── Users │ ├── Email.cs │ ├── Events │ └── UserCreatedEvent.cs │ ├── IUserRepository.cs │ └── User.cs ├── ExpenseTracker.sln ├── Infrastructure ├── DependencyInjection.cs ├── Infrastructure.csproj └── MachineDateTime.cs ├── Persistence.RavenDb ├── DependencyInjection.cs ├── DocumentStoreProvider.cs ├── Persistence.RavenDb.csproj └── RavenDbSettings.cs ├── Persistence.SqlServer ├── Configuration │ ├── ExpenseConfiguration.cs │ └── UserConfiguration.cs ├── DependencyInjection.cs ├── ExpenseTrackerDbContext.cs ├── Infrastructure │ ├── EntityTypeConfiguration.cs │ ├── ExpenseTrackerDbContextFactory.cs │ ├── IEntityTypeConfiguration.cs │ └── QuerySpecificationEvaluator.cs ├── Persistence.SqlServer.csproj ├── QuerySpecifications │ ├── BudgetQuerySpecification.cs │ └── UserQuerySpecification.cs └── Repository │ ├── BudgetRepository.cs │ ├── ExpenseRepository.cs │ └── UserRepository.cs └── Presentation ├── App.razor ├── Pages └── Index.razor ├── Presentation.csproj ├── Program.cs ├── Shared └── MainLayout.razor ├── Startup.cs ├── _Imports.razor └── wwwroot ├── css └── site.css └── index.html /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/.gitignore -------------------------------------------------------------------------------- /CodeAnalysis.ruleset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/CodeAnalysis.ruleset -------------------------------------------------------------------------------- /CodeAnalysis.targets: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/CodeAnalysis.targets -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/README.md -------------------------------------------------------------------------------- /StyleCop.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/StyleCop.json -------------------------------------------------------------------------------- /src/Api/Api.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Api/Api.csproj -------------------------------------------------------------------------------- /src/Api/Controllers/ApiController.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Api/Controllers/ApiController.cs -------------------------------------------------------------------------------- /src/Api/Controllers/BudgetsController.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Api/Controllers/BudgetsController.cs -------------------------------------------------------------------------------- /src/Api/Controllers/ExpensesController.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Api/Controllers/ExpensesController.cs -------------------------------------------------------------------------------- /src/Api/Controllers/UsersController.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Api/Controllers/UsersController.cs -------------------------------------------------------------------------------- /src/Api/Middleware/CustomExceptionHandlerMiddleware.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Api/Middleware/CustomExceptionHandlerMiddleware.cs -------------------------------------------------------------------------------- /src/Api/Program.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Api/Program.cs -------------------------------------------------------------------------------- /src/Api/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Api/Startup.cs -------------------------------------------------------------------------------- /src/Api/appsettings.Development.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Api/appsettings.Development.json -------------------------------------------------------------------------------- /src/Api/appsettings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Api/appsettings.json -------------------------------------------------------------------------------- /src/Application.Commands/Application.Commands.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.Commands/Application.Commands.csproj -------------------------------------------------------------------------------- /src/Application.Commands/AssemblyProvider.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.Commands/AssemblyProvider.cs -------------------------------------------------------------------------------- /src/Application.Commands/Budgets/CreateBudget/CreateBudgetCommand.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.Commands/Budgets/CreateBudget/CreateBudgetCommand.cs -------------------------------------------------------------------------------- /src/Application.Commands/Budgets/CreateBudget/CreateBudgetCommandHandler.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.Commands/Budgets/CreateBudget/CreateBudgetCommandHandler.cs -------------------------------------------------------------------------------- /src/Application.Commands/Budgets/CreateBudget/CreateBudgetCommandValidator.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.Commands/Budgets/CreateBudget/CreateBudgetCommandValidator.cs -------------------------------------------------------------------------------- /src/Application.Commands/Expenses/CreateExpense/CreateExpenseCommand.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.Commands/Expenses/CreateExpense/CreateExpenseCommand.cs -------------------------------------------------------------------------------- /src/Application.Commands/Expenses/CreateExpense/CreateExpenseCommandHandler.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.Commands/Expenses/CreateExpense/CreateExpenseCommandHandler.cs -------------------------------------------------------------------------------- /src/Application.Commands/Expenses/CreateExpense/CreateExpenseCommandValidator.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.Commands/Expenses/CreateExpense/CreateExpenseCommandValidator.cs -------------------------------------------------------------------------------- /src/Application.Commands/Expenses/DeleteExpense/DeleteExpenseCommand.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.Commands/Expenses/DeleteExpense/DeleteExpenseCommand.cs -------------------------------------------------------------------------------- /src/Application.Commands/Expenses/DeleteExpense/DeleteExpenseCommandHandler.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.Commands/Expenses/DeleteExpense/DeleteExpenseCommandHandler.cs -------------------------------------------------------------------------------- /src/Application.Commands/Expenses/DeleteExpense/DeleteExpenseCommandValidator.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.Commands/Expenses/DeleteExpense/DeleteExpenseCommandValidator.cs -------------------------------------------------------------------------------- /src/Application.Commands/Expenses/UpdateExpense/UpdateExpenseCommand.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.Commands/Expenses/UpdateExpense/UpdateExpenseCommand.cs -------------------------------------------------------------------------------- /src/Application.Commands/Expenses/UpdateExpense/UpdateExpenseCommandHandler.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.Commands/Expenses/UpdateExpense/UpdateExpenseCommandHandler.cs -------------------------------------------------------------------------------- /src/Application.Commands/Expenses/UpdateExpense/UpdateExpenseCommandValidator.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.Commands/Expenses/UpdateExpense/UpdateExpenseCommandValidator.cs -------------------------------------------------------------------------------- /src/Application.Commands/ICommand.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.Commands/ICommand.cs -------------------------------------------------------------------------------- /src/Application.Commands/Infrastructure/EntityCreatedResponse.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.Commands/Infrastructure/EntityCreatedResponse.cs -------------------------------------------------------------------------------- /src/Application.Commands/Users/CreateUser/CreateUserCommand.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.Commands/Users/CreateUser/CreateUserCommand.cs -------------------------------------------------------------------------------- /src/Application.Commands/Users/CreateUser/CreateUserCommandHandler.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.Commands/Users/CreateUser/CreateUserCommandHandler.cs -------------------------------------------------------------------------------- /src/Application.Commands/Users/CreateUser/CreateUserCommandValidator.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.Commands/Users/CreateUser/CreateUserCommandValidator.cs -------------------------------------------------------------------------------- /src/Application.Documents/Abstractions/IMappable.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.Documents/Abstractions/IMappable.cs -------------------------------------------------------------------------------- /src/Application.Documents/Application.Documents.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.Documents/Application.Documents.csproj -------------------------------------------------------------------------------- /src/Application.Documents/AssemblyProvider.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.Documents/AssemblyProvider.cs -------------------------------------------------------------------------------- /src/Application.Documents/Documents/Expense.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.Documents/Documents/Expense.cs -------------------------------------------------------------------------------- /src/Application.Documents/Documents/User.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.Documents/Documents/User.cs -------------------------------------------------------------------------------- /src/Application.Documents/Infrastructure/MappingProfile.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.Documents/Infrastructure/MappingProfile.cs -------------------------------------------------------------------------------- /src/Application.Events/Application.Events.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.Events/Application.Events.csproj -------------------------------------------------------------------------------- /src/Application.Events/AssemblyProvider.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.Events/AssemblyProvider.cs -------------------------------------------------------------------------------- /src/Application.Events/Expenses/ExpenseAmountChangedEventHandler.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.Events/Expenses/ExpenseAmountChangedEventHandler.cs -------------------------------------------------------------------------------- /src/Application.Events/Expenses/ExpenseCreatedEventHandler.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.Events/Expenses/ExpenseCreatedEventHandler.cs -------------------------------------------------------------------------------- /src/Application.Events/Expenses/ExpenseDateChangedEventHandler.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.Events/Expenses/ExpenseDateChangedEventHandler.cs -------------------------------------------------------------------------------- /src/Application.Events/Expenses/ExpenseDeletedEventHandler.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.Events/Expenses/ExpenseDeletedEventHandler.cs -------------------------------------------------------------------------------- /src/Application.Events/Expenses/ExpenseNameChangedEventHandler.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.Events/Expenses/ExpenseNameChangedEventHandler.cs -------------------------------------------------------------------------------- /src/Application.Events/Users/UserCreatedEventHandler.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.Events/Users/UserCreatedEventHandler.cs -------------------------------------------------------------------------------- /src/Application.Queries/Application.Queries.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.Queries/Application.Queries.csproj -------------------------------------------------------------------------------- /src/Application.Queries/AssemblyProvider.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.Queries/AssemblyProvider.cs -------------------------------------------------------------------------------- /src/Application.Queries/Expenses/GetExpense/GetExpenseQuery.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.Queries/Expenses/GetExpense/GetExpenseQuery.cs -------------------------------------------------------------------------------- /src/Application.Queries/Expenses/GetExpense/GetExpenseQueryHandler.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.Queries/Expenses/GetExpense/GetExpenseQueryHandler.cs -------------------------------------------------------------------------------- /src/Application.Queries/Expenses/GetExpenses/GetExpensesForUserQuery.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.Queries/Expenses/GetExpenses/GetExpensesForUserQuery.cs -------------------------------------------------------------------------------- /src/Application.Queries/Expenses/GetExpenses/GetExpensesForUserQueryHandler.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.Queries/Expenses/GetExpenses/GetExpensesForUserQueryHandler.cs -------------------------------------------------------------------------------- /src/Application.Queries/IQuery.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.Queries/IQuery.cs -------------------------------------------------------------------------------- /src/Application.Queries/Indexes/Expenses_ByUserId.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.Queries/Indexes/Expenses_ByUserId.cs -------------------------------------------------------------------------------- /src/Application.Queries/Users/GetUser/GetUserQuery.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.Queries/Users/GetUser/GetUserQuery.cs -------------------------------------------------------------------------------- /src/Application.Queries/Users/GetUser/GetUserQueryHandler.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.Queries/Users/GetUser/GetUserQueryHandler.cs -------------------------------------------------------------------------------- /src/Application.UnitTests/Application.UnitTests.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application.UnitTests/Application.UnitTests.csproj -------------------------------------------------------------------------------- /src/Application/Abstractions/IDateTime.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application/Abstractions/IDateTime.cs -------------------------------------------------------------------------------- /src/Application/Abstractions/IDbContext.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application/Abstractions/IDbContext.cs -------------------------------------------------------------------------------- /src/Application/Abstractions/IDocumentStoreProvider.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application/Abstractions/IDocumentStoreProvider.cs -------------------------------------------------------------------------------- /src/Application/Abstractions/IUnitOfWork.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application/Abstractions/IUnitOfWork.cs -------------------------------------------------------------------------------- /src/Application/Application.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application/Application.csproj -------------------------------------------------------------------------------- /src/Application/Behaviors/LoggingBehavior.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application/Behaviors/LoggingBehavior.cs -------------------------------------------------------------------------------- /src/Application/Behaviors/PerformanceMonitorBehavior.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application/Behaviors/PerformanceMonitorBehavior.cs -------------------------------------------------------------------------------- /src/Application/Behaviors/TransactionBehavior.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application/Behaviors/TransactionBehavior.cs -------------------------------------------------------------------------------- /src/Application/Behaviors/UnitOfWorkBehavior.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application/Behaviors/UnitOfWorkBehavior.cs -------------------------------------------------------------------------------- /src/Application/Behaviors/ValidationBehavior.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application/Behaviors/ValidationBehavior.cs -------------------------------------------------------------------------------- /src/Application/DependencyInjection.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application/DependencyInjection.cs -------------------------------------------------------------------------------- /src/Application/Extensions/RequestExtensions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application/Extensions/RequestExtensions.cs -------------------------------------------------------------------------------- /src/Application/QuerySpecifications/IQuerySpecification.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application/QuerySpecifications/IQuerySpecification.cs -------------------------------------------------------------------------------- /src/Application/QuerySpecifications/QuerySpecificationBase.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Application/QuerySpecifications/QuerySpecificationBase.cs -------------------------------------------------------------------------------- /src/Domain.Core/Domain.Core.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Domain.Core/Domain.Core.csproj -------------------------------------------------------------------------------- /src/Domain.Core/Events/BaseDomainEvent.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Domain.Core/Events/BaseDomainEvent.cs -------------------------------------------------------------------------------- /src/Domain.Core/Events/IDomainEvent.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Domain.Core/Events/IDomainEvent.cs -------------------------------------------------------------------------------- /src/Domain.Core/Events/IDomainEventHandler.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Domain.Core/Events/IDomainEventHandler.cs -------------------------------------------------------------------------------- /src/Domain.Core/Exceptions/DomainException.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Domain.Core/Exceptions/DomainException.cs -------------------------------------------------------------------------------- /src/Domain.Core/Exceptions/EntityNotFoundException.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Domain.Core/Exceptions/EntityNotFoundException.cs -------------------------------------------------------------------------------- /src/Domain.Core/Exceptions/EnumerationInvalidException.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Domain.Core/Exceptions/EnumerationInvalidException.cs -------------------------------------------------------------------------------- /src/Domain.Core/Exceptions/ValidationException.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Domain.Core/Exceptions/ValidationException.cs -------------------------------------------------------------------------------- /src/Domain.Core/Extensions/ResultExtensions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Domain.Core/Extensions/ResultExtensions.cs -------------------------------------------------------------------------------- /src/Domain.Core/Primitives/AggregateRoot.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Domain.Core/Primitives/AggregateRoot.cs -------------------------------------------------------------------------------- /src/Domain.Core/Primitives/Entity.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Domain.Core/Primitives/Entity.cs -------------------------------------------------------------------------------- /src/Domain.Core/Primitives/Enumeration.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Domain.Core/Primitives/Enumeration.cs -------------------------------------------------------------------------------- /src/Domain.Core/Primitives/IAuditableEntity.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Domain.Core/Primitives/IAuditableEntity.cs -------------------------------------------------------------------------------- /src/Domain.Core/Primitives/ISoftDeletableEntity.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Domain.Core/Primitives/ISoftDeletableEntity.cs -------------------------------------------------------------------------------- /src/Domain.Core/Primitives/Result.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Domain.Core/Primitives/Result.cs -------------------------------------------------------------------------------- /src/Domain.Core/Primitives/ValueObject.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Domain.Core/Primitives/ValueObject.cs -------------------------------------------------------------------------------- /src/Domain.UnitTests/Domain.UnitTests.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Domain.UnitTests/Domain.UnitTests.csproj -------------------------------------------------------------------------------- /src/Domain.UnitTests/ValueObjects/EmailTests.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Domain.UnitTests/ValueObjects/EmailTests.cs -------------------------------------------------------------------------------- /src/Domain.UnitTests/ValueObjects/MoneyTests.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Domain.UnitTests/ValueObjects/MoneyTests.cs -------------------------------------------------------------------------------- /src/Domain/Budgets/Budget.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Domain/Budgets/Budget.cs -------------------------------------------------------------------------------- /src/Domain/Budgets/Events/BudgetAmountDeposited.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Domain/Budgets/Events/BudgetAmountDeposited.cs -------------------------------------------------------------------------------- /src/Domain/Budgets/Events/BudgetAmountWithdrawn.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Domain/Budgets/Events/BudgetAmountWithdrawn.cs -------------------------------------------------------------------------------- /src/Domain/Budgets/IBudgetRepository.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Domain/Budgets/IBudgetRepository.cs -------------------------------------------------------------------------------- /src/Domain/Domain.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Domain/Domain.csproj -------------------------------------------------------------------------------- /src/Domain/Exceptions/EmptyMoneyException.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Domain/Exceptions/EmptyMoneyException.cs -------------------------------------------------------------------------------- /src/Domain/Exceptions/EndDatePrecedesStartDateException.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Domain/Exceptions/EndDatePrecedesStartDateException.cs -------------------------------------------------------------------------------- /src/Domain/Exceptions/NegativeAmountException.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Domain/Exceptions/NegativeAmountException.cs -------------------------------------------------------------------------------- /src/Domain/Expenses/Currency.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Domain/Expenses/Currency.cs -------------------------------------------------------------------------------- /src/Domain/Expenses/Events/ExpenseAmountChangedEvent.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Domain/Expenses/Events/ExpenseAmountChangedEvent.cs -------------------------------------------------------------------------------- /src/Domain/Expenses/Events/ExpenseCreatedEvent.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Domain/Expenses/Events/ExpenseCreatedEvent.cs -------------------------------------------------------------------------------- /src/Domain/Expenses/Events/ExpenseDateChangedEvent.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Domain/Expenses/Events/ExpenseDateChangedEvent.cs -------------------------------------------------------------------------------- /src/Domain/Expenses/Events/ExpenseDeletedEvent.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Domain/Expenses/Events/ExpenseDeletedEvent.cs -------------------------------------------------------------------------------- /src/Domain/Expenses/Events/ExpenseNameChangedEvent.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Domain/Expenses/Events/ExpenseNameChangedEvent.cs -------------------------------------------------------------------------------- /src/Domain/Expenses/Expense.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Domain/Expenses/Expense.cs -------------------------------------------------------------------------------- /src/Domain/Expenses/IExpenseRepository.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Domain/Expenses/IExpenseRepository.cs -------------------------------------------------------------------------------- /src/Domain/Expenses/Money.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Domain/Expenses/Money.cs -------------------------------------------------------------------------------- /src/Domain/Infrastructure/Check.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Domain/Infrastructure/Check.cs -------------------------------------------------------------------------------- /src/Domain/Users/Email.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Domain/Users/Email.cs -------------------------------------------------------------------------------- /src/Domain/Users/Events/UserCreatedEvent.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Domain/Users/Events/UserCreatedEvent.cs -------------------------------------------------------------------------------- /src/Domain/Users/IUserRepository.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Domain/Users/IUserRepository.cs -------------------------------------------------------------------------------- /src/Domain/Users/User.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Domain/Users/User.cs -------------------------------------------------------------------------------- /src/ExpenseTracker.sln: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/ExpenseTracker.sln -------------------------------------------------------------------------------- /src/Infrastructure/DependencyInjection.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Infrastructure/DependencyInjection.cs -------------------------------------------------------------------------------- /src/Infrastructure/Infrastructure.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Infrastructure/Infrastructure.csproj -------------------------------------------------------------------------------- /src/Infrastructure/MachineDateTime.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Infrastructure/MachineDateTime.cs -------------------------------------------------------------------------------- /src/Persistence.RavenDb/DependencyInjection.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Persistence.RavenDb/DependencyInjection.cs -------------------------------------------------------------------------------- /src/Persistence.RavenDb/DocumentStoreProvider.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Persistence.RavenDb/DocumentStoreProvider.cs -------------------------------------------------------------------------------- /src/Persistence.RavenDb/Persistence.RavenDb.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Persistence.RavenDb/Persistence.RavenDb.csproj -------------------------------------------------------------------------------- /src/Persistence.RavenDb/RavenDbSettings.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Persistence.RavenDb/RavenDbSettings.cs -------------------------------------------------------------------------------- /src/Persistence.SqlServer/Configuration/ExpenseConfiguration.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Persistence.SqlServer/Configuration/ExpenseConfiguration.cs -------------------------------------------------------------------------------- /src/Persistence.SqlServer/Configuration/UserConfiguration.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Persistence.SqlServer/Configuration/UserConfiguration.cs -------------------------------------------------------------------------------- /src/Persistence.SqlServer/DependencyInjection.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Persistence.SqlServer/DependencyInjection.cs -------------------------------------------------------------------------------- /src/Persistence.SqlServer/ExpenseTrackerDbContext.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Persistence.SqlServer/ExpenseTrackerDbContext.cs -------------------------------------------------------------------------------- /src/Persistence.SqlServer/Infrastructure/EntityTypeConfiguration.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Persistence.SqlServer/Infrastructure/EntityTypeConfiguration.cs -------------------------------------------------------------------------------- /src/Persistence.SqlServer/Infrastructure/ExpenseTrackerDbContextFactory.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Persistence.SqlServer/Infrastructure/ExpenseTrackerDbContextFactory.cs -------------------------------------------------------------------------------- /src/Persistence.SqlServer/Infrastructure/IEntityTypeConfiguration.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Persistence.SqlServer/Infrastructure/IEntityTypeConfiguration.cs -------------------------------------------------------------------------------- /src/Persistence.SqlServer/Infrastructure/QuerySpecificationEvaluator.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Persistence.SqlServer/Infrastructure/QuerySpecificationEvaluator.cs -------------------------------------------------------------------------------- /src/Persistence.SqlServer/Persistence.SqlServer.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Persistence.SqlServer/Persistence.SqlServer.csproj -------------------------------------------------------------------------------- /src/Persistence.SqlServer/QuerySpecifications/BudgetQuerySpecification.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Persistence.SqlServer/QuerySpecifications/BudgetQuerySpecification.cs -------------------------------------------------------------------------------- /src/Persistence.SqlServer/QuerySpecifications/UserQuerySpecification.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Persistence.SqlServer/QuerySpecifications/UserQuerySpecification.cs -------------------------------------------------------------------------------- /src/Persistence.SqlServer/Repository/BudgetRepository.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Persistence.SqlServer/Repository/BudgetRepository.cs -------------------------------------------------------------------------------- /src/Persistence.SqlServer/Repository/ExpenseRepository.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Persistence.SqlServer/Repository/ExpenseRepository.cs -------------------------------------------------------------------------------- /src/Persistence.SqlServer/Repository/UserRepository.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Persistence.SqlServer/Repository/UserRepository.cs -------------------------------------------------------------------------------- /src/Presentation/App.razor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Presentation/App.razor -------------------------------------------------------------------------------- /src/Presentation/Pages/Index.razor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Presentation/Pages/Index.razor -------------------------------------------------------------------------------- /src/Presentation/Presentation.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Presentation/Presentation.csproj -------------------------------------------------------------------------------- /src/Presentation/Program.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Presentation/Program.cs -------------------------------------------------------------------------------- /src/Presentation/Shared/MainLayout.razor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Presentation/Shared/MainLayout.razor -------------------------------------------------------------------------------- /src/Presentation/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Presentation/Startup.cs -------------------------------------------------------------------------------- /src/Presentation/_Imports.razor: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Presentation/_Imports.razor -------------------------------------------------------------------------------- /src/Presentation/wwwroot/css/site.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | } 4 | -------------------------------------------------------------------------------- /src/Presentation/wwwroot/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m-jovanovic/expense-tracker/HEAD/src/Presentation/wwwroot/index.html --------------------------------------------------------------------------------