public async Task <IActionResult> CreateOrder([FromBody] CreateCreditCardOrderDto model) { var user = await _userService.GetFromIdentityAsync(User.Identity.Name); if (user.Status == DataHolderStatus.Unauthorized) { return(Unauthorized()); } var createResult = await _creditCardService.CreateOrderAsync(model, user.Data); if (createResult.Status == DataHolderStatus.Failure) { return(BadRequest(createResult.Message)); } return(Ok(_mapper.Map <CreditCardOrder, CreditCardOrderDto>(createResult.Data))); }
public async Task <DataHolder <CreditCardOrder> > CreateOrderAsync(CreateCreditCardOrderDto dto, User user) { var creditCardOrder = _mapper.Map <CreateCreditCardOrderDto, CreditCardOrder>(dto); if (creditCardOrder.DeliveryType == CreditCardOrderDeliveryType.Address && (string.IsNullOrWhiteSpace(dto.City) || string.IsNullOrWhiteSpace(dto.FlatNumber) || string.IsNullOrWhiteSpace(dto.HouseNumber))) { return(DataHolder <CreditCardOrder> .CreateFailure("City or flat number order house number is empty")); } creditCardOrder.Status = CreditCardOrderStatus.New; creditCardOrder.User = user; var insertResult = await _creditCardOrderRepository.InsertAsync(creditCardOrder); if (insertResult < 0) { return(DataHolder <CreditCardOrder> .CreateFailure("Cant create order")); } return(DataHolder <CreditCardOrder> .CreateSuccess(creditCardOrder)); }