initial commit

This commit is contained in:
2026-07-21 14:14:44 +07:00
commit fa7dbb970d
1359 changed files with 104110 additions and 0 deletions
@@ -0,0 +1,55 @@
using Indotalent.Infrastructure.Database;
using MediatR;
using Microsoft.EntityFrameworkCore;
using Indotalent.Data.Enums;
namespace Indotalent.Features.Pipeline.Campaign.Cqrs;
public class UpdateBudgetRequest
{
public string? Id { get; set; }
public string? Title { get; set; }
public string? Description { get; set; }
public DateTime? BudgetDate { get; set; }
public decimal? Amount { get; set; }
public BudgetStatus Status { get; set; }
}
public class UpdateBudgetResponse
{
public string? Id { get; set; }
public bool Success { get; set; }
}
public record UpdateBudgetCommand(UpdateBudgetRequest Data) : IRequest<UpdateBudgetResponse>;
public class UpdateBudgetHandler : IRequestHandler<UpdateBudgetCommand, UpdateBudgetResponse>
{
private readonly AppDbContext _context;
public UpdateBudgetHandler(AppDbContext context) => _context = context;
public async Task<UpdateBudgetResponse> Handle(UpdateBudgetCommand request, CancellationToken cancellationToken)
{
var entity = await _context.Budget
.FirstOrDefaultAsync(x => x.Id == request.Data.Id, cancellationToken);
if (entity == null)
{
return new UpdateBudgetResponse { Id = request.Data.Id, Success = false };
}
entity.Title = request.Data.Title;
entity.Description = request.Data.Description;
entity.BudgetDate = request.Data.BudgetDate;
entity.Amount = request.Data.Amount;
entity.Status = request.Data.Status;
await _context.SaveChangesAsync(cancellationToken);
return new UpdateBudgetResponse
{
Id = entity.Id,
Success = true
};
}
}