Exemple #1
0
        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);
            }
        }
Exemple #2
0
        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);
            }
        }