public async Task CanOrderToGo(MenuItem[] menuItems) { // Arrange await _helper.AddMenuItems(menuItems); var menuItemNumbers = menuItems .Select(i => i.Number) .ToArray(); var commandToTest = new OrderToGo { Id = Guid.NewGuid(), ItemNumbers = menuItemNumbers }; // Act var result = await _fixture.SendAsync(commandToTest); // Assert await _helper.AssertOrderExists( commandToTest.Id, order => order.Status == ToGoOrderStatus.Pending && order.OrderedItems.Count == menuItemNumbers.Length && order.OrderedItems.All(i => menuItemNumbers.Contains(i.Number))); }
public override Style SelectStyle(object item, DependencyObject container) { if (item is OrderFlight) { OrderFlight club = item as OrderFlight; if (club.OrderStatus == OrderStatus.InWork) { return(WhiteStyle); } else if (club.OrderStatus == OrderStatus.Sent) { return(LightBlueStyle); } else if (club.OrderStatus == OrderStatus.Cancelled) { return(RedStyle); } else if (club.OrderStatus == OrderStatus.CancelledWithRemains) { return(RoseStyle); } else if (club.OrderStatus == OrderStatus.Closed) { return(CloseStyle); } else { return(WhiteStyle); } } if (item is OrderToGo) { OrderToGo club = item as OrderToGo; if (club.OrderStatus == OrderStatus.InWork) { return(WhiteStyle); } else if (club.OrderStatus == OrderStatus.Sent) { return(LightBlueStyle); } else if (club.OrderStatus == OrderStatus.Cancelled) { return(RedStyle); } else if (club.OrderStatus == OrderStatus.CancelledWithRemains) { return(RoseStyle); } else if (club.OrderStatus == OrderStatus.Closed) { return(CloseStyle); } else { return(WhiteStyle); } } return(null); }
public Task OrderToGoShouldReturnProperHypermediaLinks(MenuItem[] menuItems, Fixture fixture) => _apiHelper.InTheContextOfACashier( cashier => async httpClient => { // Arrange await _orderHelper.AddMenuItems(menuItems); var command = new OrderToGo { Id = Guid.NewGuid(), ItemNumbers = menuItems.Select(i => i.Number).ToArray() }; // Act var response = await httpClient .PostAsJsonAsync(OrderRoute(), command); // Assert var expectedLinks = new List <string> { LinkNames.Self, LinkNames.Order.Get, LinkNames.Order.GetAll, LinkNames.Order.Confirm }; await response.ShouldBeAResource <OrderToGoResource>(expectedLinks); }, fixture);
private static void CloseCheck(OrderToGo o) { /* * if (o.OrderStatus != OrderStatus.Sent) * { * * return; * } */ o.Closed = true; o.OrderStatus = OrderStatus.Closed; var p = o.PaymentType; o.NeedPrintFR = p.FRSend > 0; //o.NeedPrintPrecheck = p.FiskalId == 0; o.IsSHSent = true; /* * string err = ""; * var CreateSHres = SH.SHWrapper.CreateSalesInvoiceSync(o, out err); * if (!CreateSHres) * { * UI.UIModify.ShowAlert($"{err + Environment.NewLine} Накладная будет создана при появлении связи со StoreHouse"); * } */ DBProvider.UpdateOrderToGo(o); }
public bool UpdateClosingCheck(OrderToGo ord, bool FRPreented, bool PreCheckPreented) { try { Utils.ToLog("UpdateClosingCheck " + ord.Id); var client = GetClient(); if (client == null) { return(false);; } ord.NeedPrintFR = false; ord.NeedPrintPrecheck = false; ord.FRPrinted = FRPreented; ord.PreCheckPrinted = PreCheckPreented; var res = client.UpdateOrderToGo(ord); if (!res.Success) { Utils.ToLog("Error UpdateClosingCheck from service" + res.ErrorMessage); return(false); } Utils.ToLog("UpdateClosingCheck ok" + ord.Id); return(true); } catch (Exception e) { Utils.ToLog("Error UpdateClosingCheck " + e.Message); return(false); } }
public bool AddOrder(OrderToGo order, List <DishPackageToGoOrder> OrderDishez) { order.DishPackages = OrderDishez.ToList(); var res = DataCatalogsSingleton.Instance.OrdersToGoData.EndEdit(order); return(res.Succeess); }
public void SetOrder(OrderToGo order) { orderToGo = order; if (orderToGo != null) { orderToGo.PropertyChanged += Order_PropertyChanged; } ChangeOrder(); }
public async Task CannotOrderUnexistingMenuItemsToGo(OrderToGo commandToTest) { // Arrange // Purposefully not adding any menu items // Act var result = await _fixture.SendAsync(commandToTest); // Assert result.ShouldHaveErrorOfType(ErrorType.NotFound); }
/// <summary> /// Creates a new order. Takes care of adding the menu items prior to sending an OrderToGo command. /// </summary> public async Task OrderToGo(Guid orderId, MenuItem[] items) { await AddMenuItems(items); var command = new OrderToGo { Id = orderId, ItemNumbers = items.Select(i => i.Number).ToArray() }; await _fixture.SendAsync(command); }
private void mCreateSHToGoInvoice(OrderToGo order) { string ErrMess = ""; if (SH.SHWrapper.CreateSalesInvoiceSync(order, out ErrMess)) { DBProvider.Client.SetToGoSHValue(true, order.Id); } else { ReturnMessage += $"Ошибка выгрузки заказа ToGo №{order.Id} {Environment.NewLine} {ErrMess}"; } }
public bool DeleteOrder(OrderToGo order) { try { order.OrderStatus = OrderStatus.Cancelled; var res = DataCatalogsSingleton.Instance.OrdersToGoData.EndEdit(order); return(res.Succeess); } catch (Exception e) { _logger.Error($"ToGoOrdersModelSingleton.DeleteOrder: {e.Message}"); return(false); } }
public static UserControl GetCtrlAddToGoOrder(OrderToGo curentOrder) { var ctrlOrder = new CtrlAddToGoOrder(); //var flightOrder = new Order var addOrderModel = new Models.AddToGoOrderModel(curentOrder); var addOrderVM = new Models.AddToGoOrderViewModel(addOrderModel) { Header = $"Изменение заказа {curentOrder.Id}" }; ctrlOrder.DataContext = addOrderVM; // addOrderVM.CloseAction = new Action(() => { MainClass.HideUC(ctrlOrder); }); ctrlOrder.Tag = $"Изменение заказа {curentOrder.Id}"; return(ctrlOrder); }
public static bool AddOrderToGo(OrderToGo order, List <DishPackageToGoOrder> dishes) { try { logger.Debug($"AddOrderToGo {order.Id}"); var Client = GetClient(); if (Client == null) { return(false); } order.OrderCustomerId = order.OrderCustomer?.Id; order.MarketingChannelId = order.MarketingChannel?.Id; order.DriverId = order.Driver?.Id; order.CreatedById = order.CreatedBy?.Id; order.AddressId = order.Address?.Id; foreach (var d in dishes) { d.DishId = d.Dish.Id; d.OrderToGo = null; } OperationResult res = Client.CreateOrderToGo(order); if (!res.Success) { DBError(res.ErrorMessage); return(false); } order.Id = res.CreatedObjectId; foreach (var d in dishes) { d.OrderToGoId = res.CreatedObjectId; OperationResult res2 = Client.CreateDishPackageToGoOrder(d); d.Id = res2.CreatedObjectId; } logger.Debug($"AddOrderToGo {order.Id} res = {res.Success}; err: {res.ErrorMessage} "); return(res.Success); } catch (Exception e) { DBError($"Error AddOrderToGo Mess: {e.Message}"); return(false); } }
public static bool UpdateOrderToGo(OrderToGo order) { try { logger.Debug($"UpdateOrderToGo Mess: {order.Id}"); var Client = GetClient(); if (Client == null) { return(false); } order.AddressId = order.Address?.Id; order.OrderCustomerId = order.OrderCustomer?.Id; order.MarketingChannelId = order.MarketingChannel?.Id; order.DriverId = order.Driver?.Id; order.CreatedById = order.CreatedBy?.Id; foreach (var d in order.DishPackages) { d.OrderToGo = null; d.OrderToGoId = order.Id; d.DishId = d.Dish.Id; } var res = Client.UpdateOrderToGo(order); if (!res.Success) { DBError(res.ErrorMessage); return(false); } //order = res.Result; return(res.Success); } catch (Exception e) { DBError($"Error UpdateOrderFlight Mess: {e.Message}"); return(false); } }
public AddToGoOrderModel() { Order = new OrderToGo(); NewOrder = true; Order = new OrderToGo() { CreatedBy = Authorization.CurentUser, OrderStatus = OrderStatus.InWork, }; OrderDishez = new FullyObservableCollection <DishPackageToGoOrder>(); EventsInit(); //Хлеб и приборы в новый заказ OrderDishez.Add(new DishPackageToGoOrder() { Amount = 1, Code = 2244, Dish = DataCatalogsSingleton.Instance.Dishes.FirstOrDefault(a => a.Barcode == 2244), DishName = DataCatalogsSingleton.Instance.Dishes.FirstOrDefault(a => a.Barcode == 2244)?.Name, DishId = DataCatalogsSingleton.Instance.Dishes.FirstOrDefault(a => a.Barcode == 2244)?.Id ?? 0, PositionInOrder = 1, TotalPrice = 0, Printed = false }); OrderDishez.Add(new DishPackageToGoOrder() { Amount = 1, Code = 2245, Dish = DataCatalogsSingleton.Instance.Dishes.FirstOrDefault(a => a.Barcode == 2245), DishName = DataCatalogsSingleton.Instance.Dishes.FirstOrDefault(a => a.Barcode == 2245)?.Name, DishId = DataCatalogsSingleton.Instance.Dishes.FirstOrDefault(a => a.Barcode == 2245)?.Id ?? 0, PositionInOrder = 2, TotalPrice = 0, Printed = false }); Order.DeliveryDate = DateTime.Now; Order.ExportTime = DateTime.Now; Order.CreationDate = DateTime.Now; Order.ReadyTime = DateTime.Now; }
public static void CloseSingleCheck(OrderToGo ord) { if (ord == null) { return; } //if (ord.AirCompany.PaymentType == null) { UI.UIModify.ShowAlert($"Для закрытия чеков авиакомпания {ord.AirCompany.Name} должна содержать вид оплаты"); return; } if ((ord.OrderStatus != OrderStatus.Sent) && (ord.OrderStatus != OrderStatus.InWork)) { UI.UIModify.ShowAlert($"Чек {ord.Id} имеет статус {ord.OrderStatus} и не может быть закрыт"); } UI.CtrlSetPayment sp = new UI.CtrlSetPayment(); sp.ShowDialog(); long pId = sp.Pid; if (pId > 0) { var p = DataExtension.DataCatalogsSingleton.Instance.Payments.Where(a => a.ToGo).SingleOrDefault(a => a.Id == pId); string promtStr = $"Закрыть чек {ord.Id}. {Environment.NewLine} Вид оплаты: {p.Name} {Environment.NewLine} На сумму: {ord.OrderTotalSumm}? "; ord.PaymentId = pId; ord.PaymentType = p; var CreateSHres = SH.SHWrapper.CreateSalesInvoiceSync(ord, out string err); if (!CreateSHres) { UI.UIModify.ShowAlert($"{err + Environment.NewLine} Накладная будет создана при появлении связи со StoreHouse"); Models.ToGoOrdersModelSingleton.Instance.UpdateOrder(ord); } UI.UIModify.ShowConfirm(promtStr, (_) => { if (_) { CloseCheck(ord); } }); } }
public async Task CanOrderMultiplesOfSameItems(MenuItem[] menuItems) { // Arrange const int timesToOrderEachItem = 3; await _helper.AddMenuItems(menuItems); var commandToTest = new OrderToGo { Id = Guid.NewGuid(), ItemNumbers = menuItems .SelectMany(i => Enumerable.Repeat(i.Number, timesToOrderEachItem)) .ToList() }; // Act var result = await _fixture.SendAsync(commandToTest); // Assert await _helper.AssertOrderExists(commandToTest.Id, order => order.OrderedItems.Count == menuItems.Length *timesToOrderEachItem && menuItems.All(i => order.OrderedItems.Any(oi => oi.Number == i.Number))); }
public async Task CannotSubmitToGoOrderWithConflictingId(MenuItem[] menuItems) { // Arrange await _helper.AddMenuItems(menuItems); var menuItemNumbers = menuItems .Select(i => i.Number) .ToArray(); var commandToTest = new OrderToGo { Id = Guid.NewGuid(), ItemNumbers = menuItemNumbers }; // Note that we're sending the command before the Act phase await _fixture.SendAsync(commandToTest); // Act var result = await _fixture.SendAsync(commandToTest); // Assert result.ShouldHaveErrorOfType(ErrorType.Conflict); }
public OrderToGoViewModel(OrderToGo _order) { order = _order; }
public bool UpdateOrder(OrderToGo order) { var res = DataCatalogsSingleton.Instance.OrdersToGoData.EndEdit(order); return(res.Succeess); }
public async Task <IActionResult> OrderToGo([FromBody] OrderToGo command) => (await Mediator.Send(command) .MapAsync(_ => ToEmptyResourceAsync <OrderToGoResource>(x => x.OrderId = command.Id))) .Match(Ok, Error);
public static FiskalDrivers.FiskalCheck GetFiskalCheckFromOrder(OrderToGo ord) { FiskalDrivers.FiskalCheck Tmp = new FiskalDrivers.FiskalCheck(); Tmp.CheckNum = ord.Id.ToString(); Tmp.TimeofOpen = ord.DeliveryDate; /* * Tmp.Cassir = ord.AirCompany.Name; * Tmp.Waiter = ord.FlightNumber; * */ Tmp.FlyCheck = false; double tmpSumm = 0; foreach (var oi in ord.DishPackages.Where(a => a.TotalPrice > 0 && !a.Dish.IsAlcohol)) { FiskalDrivers.FiskalDish fd = new FiskalDrivers.FiskalDish() { Name = oi.DishName, Price = (double)oi.TotalPrice * (1 - (double)ord.DiscountPercent / 100), Quantity = (double)oi.Amount }; tmpSumm += fd.Price * fd.Quantity; Tmp.Dishes.Add(fd); } if (ord.DiscountPercent > 0) { Tmp.Discount = (double)(ord.DishPackages.Sum(a => a.TotalPrice * a.Amount) * (ord.DiscountPercent / 100)); Tmp.DiscountName = "Скидка "; } var diff = tmpSumm - ((double)ord.DishPackages.Sum(a => a.TotalPrice * a.Amount) - Tmp.Discount); if (Math.Abs(diff) > 0.001) { if (Tmp.Dishes.Any(a => a.Price * a.Quantity > diff)) { var d = Tmp.Dishes.Where(a => a.Price * a.Quantity > diff).FirstOrDefault(); d.Price = d.Price - diff / d.Quantity; } } if (ord.DeliveryPrice > 0) { FiskalDrivers.FiskalDish fd = new FiskalDrivers.FiskalDish() { Name = "Доставка", Price = (double)ord.DeliveryPrice, Quantity = 1 }; Tmp.Dishes.Add(fd); } // double DSumm = (double)ord.DishPackages.Sum(a => a.TotalPrice * a.Amount) + (double)ord.DeliveryPrice; double DSumm = (double)Tmp.Dishes.Sum(a => a.Price * a.Quantity); /* * double ExCh = 0; * Tmp.Discount = 0; * if ((Tmp.Discount > 0) && (ExCh > 0)) * { * if (Tmp.Discount > ExCh) * { * Tmp.Discount -= ExCh; * } * else * { * * Tmp.Charge = ExCh - Tmp.Discount; * Tmp.Discount = 0; * } * } * else if (ExCh > 0) * { * Tmp.Charge = ExCh; * } */ //double DSummTotal = DSumm - Tmp.Discount + Tmp.Charge; var op = ord.PaymentType; //OrderToAlohaSrv.OrderPayment op = ord.OrderPayments; FiskalDrivers.FiskalPayment fp = new FiskalDrivers.FiskalPayment() { Name = op.Name, Summ = DSumm, PaymentType = (int)op.FiskalId // NonFiskalPayment = op.TNDR. }; Tmp.Payments.Add(fp); Tmp.Summ = DSumm; return(Tmp); }
private void InitFunctions() { if (typeof(T) == (typeof(OrderCustomer))) { createFunc = itm => { return(DBProvider.Client.CreateOrderCustomer(itm as OrderCustomer)); }; updateFunc = itm => { return(DBProvider.Client.UpdateOrderCustomer(itm as OrderCustomer)); }; getFunc = itm => { return(DBProvider.Client.GetOrderCustomer2(itm) as OperationResultValue <T>); }; deleteFunc = itm => { return(DBProvider.Client.DeleteOrderCustomer(itm) as OperationResult); }; preUpdateFunc = itm => { var tItm = itm as OrderCustomer; tItm.LastUpdatedSession = RealTimeUpdaterSingleton.Instance.Transaction; return(tItm as T); }; } else if (typeof(T) == (typeof(OrderCustomerPhone))) { createFunc = itm => { return(DBProvider.Client.CreateOrderCustomerPhone(itm as OrderCustomerPhone)); }; updateFunc = itm => { return(DBProvider.Client.UpdateOrderCustomerPhone(itm as OrderCustomerPhone)); }; getFunc = itm => { return(DBProvider.Client.GetOrderCustomerPhone(itm) as OperationResultValue <T>); }; deleteFunc = itm => { return(DBProvider.Client.DeleteOrderCustomerPhone(itm) as OperationResult); }; preUpdateFunc = itm => { var tItm = itm as OrderCustomerPhone; tItm.LastUpdatedSession = RealTimeUpdaterSingleton.Instance.Transaction; return(tItm as T); }; } else if (typeof(T) == (typeof(OrderCustomerAddress))) { createFunc = itm => { return(DBProvider.Client.CreateOrderCustomerAddress(itm as OrderCustomerAddress)); }; updateFunc = itm => { return(DBProvider.Client.UpdateOrderCustomerAddress(itm as OrderCustomerAddress)); }; getFunc = itm => { return(DBProvider.Client.GetOrderCustomerAddress(itm) as OperationResultValue <T>); }; deleteFunc = itm => { return(DBProvider.Client.DeleteOrderCustomerAddress(itm) as OperationResult); }; preUpdateFunc = itm => { var tItm = itm as OrderCustomerAddress; tItm.LastUpdatedSession = RealTimeUpdaterSingleton.Instance.Transaction; return(tItm as T); }; } else if (typeof(T) == (typeof(OrderToGo))) { createFunc = itm => { return(DBProvider.Client.CreateOrderToGoWithPackage(itm as OrderToGo)); }; updateFunc = itm => { return(DBProvider.Client.UpdateOrderToGo(itm as OrderToGo)); }; getFunc = itm => { return(DBProvider.Client.GetOrderToGo(itm) as OperationResultValue <T>); }; deleteFunc = itm => { return(DBProvider.Client.DeleteOrderToGo(itm) as OperationResult); }; preUpdateFunc = itm => { if (itm == null) { return(itm); } OrderToGo order = itm as OrderToGo; order.OrderCustomerId = order.OrderCustomer?.Id; order.MarketingChannelId = order.MarketingChannel?.Id; order.DriverId = order.Driver?.Id; order.CreatedById = order.CreatedBy?.Id; order.AddressId = order.Address?.Id; order.LastUpdatedSession = RealTimeUpdaterSingleton.Instance.Transaction; foreach (var d in order.DishPackages) { d.OrderToGoId = order.Id; d.DishId = d.Dish.Id; d.Dish = null; d.OrderToGo = null; } return(order as T); }; postGetFunc = itm => { OrderToGo ord = itm as OrderToGo; if (ord == null) { return(itm); } ord.OrderCustomer = DataExtension.DataCatalogsSingleton.Instance.OrderCustomerData.Data.SingleOrDefault(a => a.Id == ord.OrderCustomerId); if (ord.CreatedById != null) { ord.CreatedBy = DataExtension.DataCatalogsSingleton.Instance.ManagerOperator.SingleOrDefault(a => a.Id == ord.CreatedById); } if (ord.PaymentId != null) { ord.PaymentType = DataExtension.DataCatalogsSingleton.Instance.Payments.SingleOrDefault(a => a.Id == ord.PaymentId); } if (ord.MarketingChannelId != null) { ord.MarketingChannel = DataExtension.DataCatalogsSingleton.Instance.MarketingChannels.SingleOrDefault(a => a.Id == ord.MarketingChannelId); } if (ord.DriverId != null) { ord.Driver = DataExtension.DataCatalogsSingleton.Instance.Drivers.SingleOrDefault(a => a.Id == ord.DriverId); } if (ord.AddressId != 0) { ord.Address = DataExtension.DataCatalogsSingleton.Instance.OrderCustomerAddressData.Data.SingleOrDefault(a => a.Id == ord.AddressId); } if (ord.DishPackages != null) { foreach (var d in ord.DishPackages) { d.Printed = true; d.Dish = DataExtension.DataCatalogsSingleton.Instance.Dishes.SingleOrDefault(a => a.Id == d.DishId); if (d.Deleted && d.DeletedStatus == 1) { d.UpDateSpisPayment(); } } } return(ord as T); }; } else { throw new ArgumentException("Not supported type"); } }
public void PrintKitchenDocumentToGo(OrderToGo order) { if (order == null) { return; } try { logger.Debug($"PrintKitchenDocumentToGo {order.Id}"); // Создаём объект приложения Word.Application app = new Word.Application(); app.Visible = true; // Путь до шаблона документа // Открываем document = app.Documents.Add(System.AppDomain.CurrentDomain.BaseDirectory + SampleDocumentPath); document.Paragraphs.Add(); int ParNum = 1; AddLeftCaptionText(document.Paragraphs[1], $"Заказ {order.Id}", true); document.Paragraphs.Add(); AddLeftCaptionText(document.Paragraphs.Last, $"Клиент {order.OrderCustomer?.FullName}"); document.Paragraphs.Add(); AddLeftCaptionText(document.Paragraphs.Last, $"Телефон {order.PhoneNumber}"); document.Paragraphs.Add(); AddLeftCaptionText(document.Paragraphs.Last, $"Адрес {order.Address.AddressExt}"); document.Paragraphs.Add(); AddLeftCaptionText(document.Paragraphs.Last, $"Дата {order.DeliveryDate.ToString("dd.MM.yyyy HH:mm")}"); document.Paragraphs.Add(); AddLeftCaptionText(document.Paragraphs.Last, $"Машина забирает: {order.ExportTime.ToString("HH:mm")}"); document.Paragraphs.Add(); AddMiddleCaptionText(document.Paragraphs.Last, $"Готовность в ресторане в {order.ReadyTime.ToString("HH:mm")}", true); string comment = order.CommentKitchen; if (comment != null && comment != "") { document.Paragraphs.Add(); AddMiddleCaptionText(document.Paragraphs.Last, comment); } foreach (var KGroup in order.DishPackagesNoSpis.Select(a => a.Dish.DishKitсhenGroupId).Distinct().OrderBy(a => a.Value)) { foreach (var Pak in order.DishPackagesNoSpis.Where(a => ((a.Dish.DishKitсhenGroupId != null && a.Dish.DishKitсhenGroupId == KGroup))).OrderBy(a => a.PositionInOrder)) { document.Paragraphs.Add(); AddDishparagraph(document.Paragraphs.Last, (DishPackageToGoOrder)Pak); } document.Paragraphs.Add(); AddDishparagraph(document.Paragraphs.Last, null); } foreach (var Pak in order.DishPackagesNoSpis.Where(a => (a.Dish.DishKitсhenGroupId == null))) { document.Paragraphs.Add(); AddDishparagraph(document.Paragraphs.Last, (DishPackageToGoOrder)Pak); } } catch (Exception e) { logger.Error($"Error PrintKitchenDocumentToGo {order.Id} Mess: {e.Message}"); } }
public AddToGoOrderModel(OrderToGo order) { Order = order; OrderDishez = new FullyObservableCollection <DishPackageToGoOrder>(Order.DishPackages); EventsInit(); }
public OrderInfoViewModel(OrderToGo order) { orderToGo = order; }
static void ExportOrders() { _logger.Debug("ExportOrders "); DateTime dtstart = new DateTime(2019, 01, 31); var existsD = AlohaFly.DBProvider.Client.GetDishList().Result.Where(a => a.IsToGo); var existsOrders = AlohaFly.DBProvider.Client.GetOrderToGoList(new OrderToGoFilter() { DeliveryDateStart = dtstart.AddDays(-5), DeliveryDateEnd = DateTime.Now.AddDays(5) }, new PageInfo() { Skip = 0, Take = 1000 } ).Result.Select(a => a.OldId).ToList(); var custs = AlohaFly.DBProvider.Client.GetOrderCustomerList().Result; var oldOrders = db.Orders.Where(a => a.DateDelivery >= dtstart && !existsOrders.Contains(a.ID)); List <OrderCustomerAddress> addresses = new List <OrderCustomerAddress>(); foreach (var addrList in custs.Select(a => a.Addresses)) { addresses.AddRange(addrList); } foreach (var ord in oldOrders) { try { _logger.Debug("ToGoOrder " + ord.ID); OrderToGo ordNew = new OrderToGo(); ordNew.OldId = ord.ID; ordNew.AddressId = addresses.Single(a => a.OldId == ord.AddressID).Id; ordNew.PhoneNumber = db.Tel.Single(a => a.ID == ord.TelID).Number; // ordNew.Comment = ord.CommentCourier; ordNew.CommentKitchen = ord.CommentKitchen; ordNew.CreatedById = GetOpenId(ord.Operator); _logger.Debug("ordNew.CreatedById "); ordNew.CreationDate = ord.CreateDate + ord.CreateTime; ordNew.DeliveryDate = ord.DateDelivery.GetValueOrDefault();// + ord.TimeDelivery.GetValueOrDefault(); ordNew.DiscountPercent = 0; ordNew.IsSHSent = false; ordNew.MarketingChannelId = ord.SaleChannelID; ordNew.ReadyTime = ord.DateReady.GetValueOrDefault();//+ord.TimeReady _logger.Debug("ordNew.ReadyTime"); ordNew.OrderCustomerId = custs.Single(a => a.OldId == ord.ClientID).Id; _logger.Debug("ordNew.OrderCustomerId "); ordNew.DriverId = GetDriverId(ord.Courier); _logger.Debug("ordNew.DriverId "); ordNew.OrderStatus = GetStatus(ord.Status.GetValueOrDefault()); _logger.Debug("ordNew.OrderStatus "); ordNew.Summ = ord.Summ.GetValueOrDefault(); _logger.Debug("ordNew.Summ "); ordNew.DeliveryPrice = ord.DeliveryPrice.GetValueOrDefault(); var packs = new List <DishPackageToGoOrder>(); foreach (var d in db.OrderContent.Where(a => a.OrderID == ord.ID)) { _logger.Debug("d.Name; 0"); var nd = new DishPackageToGoOrder(); nd.DishName = d.Name; nd.Amount = d.Amount.GetValueOrDefault(); nd.Comment = d.WarmUP; nd.TotalPrice = d.Price.GetValueOrDefault(); nd.Code = d.Code; if (existsD.Any(a => a.Barcode == d.Code)) { nd.DishId = existsD.FirstOrDefault(a => a.Barcode == d.Code).Id; } else { nd.DishId = existsD.FirstOrDefault(a => a.Barcode == 17).Id; } _logger.Debug("d.Name; 1"); packs.Add(nd); } var res = AlohaFly.DBProvider.Client.CreateOrderToGo(ordNew); if (!res.Success) { _logger.Debug($"ExportOrders error "); } // var id = res.CreatedObjectId; foreach (var d in packs) { d.OrderToGoId = res.CreatedObjectId; OperationResult res2 = AlohaFly.DBProvider.Client.CreateDishPackageToGoOrder(d); d.Id = res2.CreatedObjectId; } //ordNew. } catch (Exception e) { _logger.Debug("Error ToGoOrder " + e.Message); } } }