public async Task EditUserAsync(string username, UserDTO model) { Require.ThatStringIsNotNullOrEmpty(username, typeof(ArgumentException), ExceptionMessages.EditUserAsyncUsernameNullMessage); Require.ThatObjectIsNotNull(model, typeof(ArgumentNullException), ExceptionMessages.EditUserAsyncModelNullMessage); try { var usersRepository = this._unitOfWork.GetRepository <IUsersRepository>(); User user = await usersRepository.GetUserByUsernameAsync(username); user.FirstName = model.FirstName; user.LastName = model.LastName; user.Country = model.Country; user.Town = model.Town; user.Address = model.Address; user.PhoneNumber = model.PhoneNumber; await this._unitOfWork.DbContext.SaveChangesAsync(false); CommitTransactionModel commitTransaction = this._unitOfWork.CommitTransactions(); if (commitTransaction == null || !commitTransaction.IsSuccessful) { throw new ArgumentException(ExceptionMessages.CommitTransactionMessage, commitTransaction?.CommitException); } } catch (Exception ex) { throw new ArgumentException(ExceptionMessages.EditUserMessage, ex); } }
public async Task <OrderTaxCalculation> CommitTransactionAsync(string transactionCode) { if (ShouldMockAvalaraResponse()) { return(CreateMockTransactionModel()); } var model = new CommitTransactionModel() { commit = true }; var transaction = await _avaTax.CommitTransactionAsync(_companyCode, transactionCode, DocumentType.SalesInvoice, "", model); return(transaction.ToOrderTaxCalculation()); }
public async Task <int> ReOrder(int orderId) { try { var ordersRepository = this._unitOfWork.GetRepository <IOrdersRepository>(); GetOrderDTO orderDTO = await ordersRepository.GetOrder(orderId); List <OrderLine> orderLines = orderDTO.OrderLines .Select(p => new OrderLine { ProductId = p.Id, Quantity = p.Quantity, ProductName = p.ProductName }) .ToList(); var order = new Order { CreatedOn = DateTime.Now, OrderStatus = OrderStatus.Accepted, UserId = orderDTO.UserId, OrderLines = orderLines }; await this._unitOfWork.DbContext.Orders.AddAsync(order); await this._unitOfWork.DbContext.SaveChangesAsync(); CommitTransactionModel response = this._unitOfWork.CommitTransactions(); return(order.Id); } catch (Exception ex) { throw new ArgumentException(ExceptionMessages.ReOrderMessage, ex); } }
public async Task <int> AddOrderAsync(CreateOrderDTO orderDTO) { Require.ThatObjectIsNotNull(orderDTO.Products, typeof(ArgumentException), ExceptionMessages.AddOrderAsyncProductsNullMessage); try { List <OrderLine> orderLines = orderDTO.Products .Select(p => new OrderLine { ProductId = p.Id, Quantity = p.Quantity, ProductName = p.ProductName }) .ToList(); var order = new Order { CreatedOn = orderDTO.CreatedOn, OrderStatus = orderDTO.OrderStatus, UserId = orderDTO.UserId, OrderLines = orderLines }; await this._unitOfWork.DbContext.Orders.AddAsync(order); await this._unitOfWork.DbContext.SaveChangesAsync(); CommitTransactionModel response = this._unitOfWork.CommitTransactions(); return(order.Id); } catch (Exception ex) { throw new ArgumentException(ExceptionMessages.AddOrderAsyncMessage, ex); } }