Пример #1
0
        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());
        }
Пример #2
0
        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));
        }
Пример #3
0
 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
     });
 }
Пример #4
0
        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());
        }