public async Task <AbstractAnswer <Bill> > Handle(CreateBillCommand request, CancellationToken cancellationToken) { try { var tempId = Guid.NewGuid(); var foundedUser = await context.Users .FirstOrDefaultAsync(x => x.Id == request.UserId, cancellationToken); if (foundedUser is null) { return(CreateFailed(new[] { "User doesn't exists" })); } context.Bills.Add(new BillDB { Id = tempId, Title = request.Title, UserId = request.UserId, }); await context.SaveChangesAsync(cancellationToken); return(CreateSuccess(new Bill { Id = tempId, Title = request.Title, })); } catch { return(CreateFailed(new[] { "Database error" })); } }
private async Task Handle(CreateBillCommand command) { await HandleCommand(command, async x => { var recipientAddress = new AddressValueObject(command.City, command.Street, command.Number); var bill = await _billFactory.Create(command.Id, command.Metadata.TenantId, command.Name, (BillType)command.Type, command.RecipientName, recipientAddress); await _billRepository.SaveAsync(bill); }); }
public async Task <ActionResult> CreateBill(CreateBillCommand command) { var result = await _mediator.Send(command); return(result.IsSuccess ? Ok() : StatusCode(500)); }
public async Task <IActionResult> Post([FromBody] CreateBillCommand command) { return(await SendCommand(command)); }