Beispiel #1
0
        public async Task CreateOrderAsync(Models.Orders.Order newOrder, string token)
        {
            await Task.Delay(500);

            if (!string.IsNullOrEmpty(token))
            {
                MockOrders.Add(newOrder);
            }
        }
Beispiel #2
0
        public async Task CreateOrderAsync(Models.Orders.Order newOrder, string token)
        {
            UriBuilder builder = new UriBuilder(GlobalSetting.Instance.OrdersEndpoint);

            builder.Path = "api/v1/orders/new";
            string uri = builder.ToString();

            await _requestProvider.PostAsync(uri, newOrder, token, "x-requestid");
        }
        public async Task CreateOrderAsync(Models.Orders.Order newOrder, string token)
        {
            await Task.Delay(500);

            if (!string.IsNullOrEmpty(token))
            {
                newOrder.OrderNumber = $"{MockOrders.Count + 1}";
                MockOrders.Insert(0, newOrder);
            }
        }
 public BasketCheckout MapOrderToBasket(Models.Orders.Order order)
 {
     return(new BasketCheckout()
     {
         CardExpiration = order.CardExpiration,
         CardHolderName = order.CardHolderName,
         CardNumber = order.CardNumber,
         CardSecurityNumber = order.CardSecurityNumber,
         CardTypeId = order.CardTypeId,
         City = order.ShippingCity,
         Country = order.ShippingCountry,
         ZipCode = order.ShippingZipCode,
         Street = order.ShippingStreet
     });
 }
        public async Task <Models.Orders.Order> GetOrderAsync(int orderId, string token)
        {
            try
            {
                var uri = UriHelper.CombineUri(GlobalSetting.Instance.GatewayShoppingEndpoint, $"{ApiUrlBase}/{orderId}");

                Models.Orders.Order order =
                    await _requestProvider.GetAsync <Models.Orders.Order>(uri, token);

                return(order);
            }
            catch
            {
                return(new Models.Orders.Order());
            }
        }
        public bool PurchaseOrders(Models.Orders.Order order, List <Models.Orders.OrderLine> orderLines, Models.Vendors.Vendor administrativeVendor, Models.Vendors.Vendor vendor, bool directShipment, DataAccess.UnitOfWork.IUnitOfWork unit, log4net.ILog logger)
        {
            try
            {
                var webShopStockType = unit.Scope.Repository <VendorStockType>().GetSingle(x => x.StockType == "Webshop");

                if (webShopStockType == null)
                {
                    throw new Exception("Stocklocation Webshop does not exists, skip order process");
                }



                orderLines.Where(c => (!c.Product.IsNonAssortmentItem.HasValue || (c.Product.IsNonAssortmentItem.HasValue && !c.Product.IsNonAssortmentItem.Value))).ToList().ForEach(line =>
                {
                    var webshopStock = line.Product.VendorStocks.FirstOrDefault(x => x.VendorStockTypeID == webShopStockType.VendorStockTypeID && x.VendorID == int.Parse(ConfigurationManager.AppSettings["ATVendorID"]));
                    if (webshopStock == null)
                    {
                        throw new Exception(string.Format("Stocklocation Webshop does not exists for product {0}, skip order process", line.ProductID));
                    }



                    if (line.Quantity > webshopStock.QuantityOnHand)
                    {
                        //CANCEL LINE
                        int qtyCancelled = Math.Abs(line.Quantity - Math.Abs(webshopStock.QuantityOnHand));
                        line.SetStatus(OrderLineStatus.Cancelled, unit.Scope.Repository <OrderLedger>(), qtyCancelled);
                        CancelLine(line, unit, qtyCancelled, "Out of stock");
                    }
                    else
                    {
                        webshopStock.QuantityOnHand -= line.GetDispatchQuantity();
                        line.SetStatus(OrderLineStatus.ReadyToOrder, unit.Scope.Repository <OrderLedger>());
                    }
                });
            }
            catch (Exception e)
            {
                logger.Debug(e);
            }

            unit.Save();

            return(false);
        }
Beispiel #7
0
        public async Task <Models.Orders.Order> GetOrderAsync(int orderId, string token)
        {
            try
            {
                UriBuilder builder = new UriBuilder(GlobalSetting.Instance.OrdersEndpoint);
                builder.Path = $"api/v1/orders/{orderId}";
                string uri = builder.ToString();

                Models.Orders.Order order =
                    await _requestProvider.GetAsync <Models.Orders.Order>(uri, token);

                return(order);
            }
            catch
            {
                return(new Models.Orders.Order());
            }
        }
Beispiel #8
0
        public async Task <OrderDetails> AddManager(Models.Orders.Order order, Models.Employees.Employee manager, CancellationToken cancellationToken = default)
        {
            var orderDb =
                await DbContext.Orders.FirstOrDefaultAsync(x => x.OrderId == order.OrderId, cancellationToken);

            if (orderDb == null)
            {
                throw new Exception("Order not found");
            }

            var managerDb =
                await DbContext.Employees.FirstOrDefaultAsync(x => x.EmployeeId == manager.EmployeeId, cancellationToken);

            if (managerDb == null)
            {
                throw new Exception("Employee not found");
            }

            orderDb.EmployeeId = managerDb.EmployeeId;
            DbContext.Orders.Update(orderDb);
            await DbContext.SaveChangesAsync(cancellationToken);

            return(await GetDetailModel(orderDb, cancellationToken));
        }
 public Task CreateOrderAsync(Models.Orders.Order newOrder, string token)
 {
     throw new Exception("Only available in Mock Services!");
 }
Beispiel #10
0
 public BasketCheckout MapOrderToBasket(Models.Orders.Order order)
 {
     return(MockBasketCheckout);
 }