public async Task <DataResult> Handle(Command request, CancellationToken cancellationToken) { Model.Domain.Pass pass = await _context.Passes .Where(x => x.Id == request.Id) .Include(x => x.ParticipantClassTimes) .FirstOrDefaultAsync(cancellationToken); if (pass is null) { return(DataResult.Error(PolishReadableMessage.Pass.NotFound)); } if (pass.Used == 0 && !pass.ParticipantClassTimes.Any()) { _context.Remove(pass); await _context.SaveChangesAsync(cancellationToken); return(DataResult.Success()); } PassAggregate.FromState(pass) .AsRemoved(); _context.Update(pass); await _context.SaveChangesAsync(cancellationToken); return(DataResult.Success()); }
public async Task <DataResult <ViewModel> > Handle(Query request, CancellationToken cancellationToken) { Model.Domain.Pass pass = await _context.Passes.Where(x => x.Id == request.Id).FirstOrDefaultAsync(cancellationToken); if (pass is null) { return(DataResult <ViewModel> .Error(PolishReadableMessage.Pass.NotFound)); } var serializedParent = JsonConvert.SerializeObject(PassDto.FromPass(pass)); ViewModel viewModel = JsonConvert.DeserializeObject <ViewModel>(serializedParent); viewModel.MemberId = request.RedirectMemberId; return(DataResult <ViewModel> .Success(viewModel)); }
public static PassDto FromPass(Model.Domain.Pass pass) { return(new PassDto() { NumberOfEntry = pass.NumberOfEntry, Price = pass.Price, Start = pass.Start, WasPaid = pass.Paid, PassNumber = pass.PassNumber, Used = pass.Used, Id = pass.Id, IsStudent = pass.IsStudent }); }
public async Task <DataResult> Handle(Command request, CancellationToken cancellationToken) { Model.Domain.Pass pass = await _context.Passes.Where(x => x.Id == request.Id).FirstOrDefaultAsync(cancellationToken); if (pass is null) { return(DataResult.Error(PolishReadableMessage.Pass.NotFound)); } PassAggregate.FromState(pass).UpdateByCommand(request); _context.Passes.Update(pass); await _context.SaveChangesAsync(cancellationToken); return(DataResult.Success()); }