public OperationResultValue <List <ServiceDataContracts.OrderToGo> > GetOrderToGoList(OrderToGoFilter filter, PageInfo page)
 {
     return(orderToGoService.GetOrderToGoList(filter, page));
 }
Esempio n. 2
0
        public OperationResultValue <List <ServiceDataContracts.OrderToGo> > GetOrderToGoList(OrderToGoFilter filter, PageInfo page)
        {
            try
            {
                try { log.Debug($"GetOrderToGoList Start: {filter?.DeliveryDateStart} End: {filter?.DeliveryDateEnd}"); } catch { }
                var query = db.OrderToGo.Where(o => true);

                #region Filter



                if (filter.Comment != null)
                {
                    query = query.Where(o => o.Comment == filter.Comment);
                }

                if (filter.CreatedById != null)
                {
                    query = query.Where(o => o.CreatedById == filter.CreatedById);
                }

                if (filter.CreationDateStart != null)
                {
                    query = query.Where(o => o.CreationDate >= filter.CreationDateStart);
                }

                if (filter.CreationDateEnd != null)
                {
                    query = query.Where(o => o.CreationDate <= filter.CreationDateEnd);
                }

                if (filter.DeliveryDateEnd != null)
                {
                    query = query.Where(o => o.DeliveryDate <= filter.DeliveryDateEnd);
                }

                if (filter.DeliveryDateStart != null)
                {
                    query = query.Where(o => o.DeliveryDate >= filter.DeliveryDateStart);
                }

                /*
                 * if (filter.DeliveryPlaceId != null)
                 * {
                 *  query = query.Where(o => o.DeliveryPlaceId >= filter.DeliveryPlaceId);
                 * }
                 */
                if (filter.ExportTimeEnd != null)
                {
                    query = query.Where(o => o.ExportTime <= filter.ExportTimeEnd);
                }

                if (filter.ExportTimeStart != null)
                {
                    query = query.Where(o => o.ExportTime <= filter.ExportTimeStart);
                }



                if (filter.OrderComment != null)
                {
                    query = query.Where(o => o.OrderComment == filter.OrderComment);
                }

                if (filter.OrderNumber != null)
                {
                    query = query.Where(o => o.OrderNumber == filter.OrderNumber);
                }

                if (filter.OrderStatus != null)
                {
                    query = query.Where(o => o.OrderStatus == (int)filter.OrderStatus);
                }

                if (filter.PhoneNumber != null)
                {
                    query = query.Where(o => o.PhoneNumber == filter.PhoneNumber);
                }

                if (filter.ReadyTimeEnd != null)
                {
                    query = query.Where(o => o.ReadyTime <= filter.ReadyTimeEnd);
                }

                if (filter.ReadyTimeStart != null)
                {
                    query = query.Where(o => o.ReadyTime >= filter.ReadyTimeStart);
                }



                #endregion Filter

                query = query.OrderByDescending(o => o.Id).Skip(page.Skip).Take(page.Take);

                var result =
                    //query.ToList().Select(order => Mapper.Map<Entities.OrderToGo, ServiceDataContracts.OrderToGo>(order)
                    query.Select(order =>
                                 new ServiceDataContracts.OrderToGo
                {
                    Id    = order.Id,
                    OldId = order.OldId,
                    //Comment = order.Comment,
                    DeliveryDate = order.DeliveryDate,
                    ExportTime   = order.ExportTime,

                    IsSHSent           = order.IsSHSent,
                    DriverId           = order.DriverId,
                    MarketingChannelId = order.MarketingChannelId,
                    CommentKitchen     = order.CommentKitchen,
                    OrderComment       = order.OrderComment,
                    Closed             = order.Closed,
                    OrderCustomerId    = order.OrderCustomerId,
                    OrderNumber        = order.OrderNumber,
                    OrderStatus        = (OrderStatus)order.OrderStatus,
                    PhoneNumber        = order.PhoneNumber,
                    ReadyTime          = order.ReadyTime,
                    CreatedById        = order.CreatedById,
                    CreationDate       = order.CreationDate,
                    Summ          = order.Summ,
                    DeliveryPrice = order.DeliveryPrice,

                    AddressId         = order.AddressId,
                    PreCheckPrinted   = order.PreCheckPrinted,
                    NeedPrintFR       = order.NeedPrintFR,
                    FRPrinted         = order.FRPrinted,
                    NeedPrintPrecheck = order.NeedPrintPrecheck,


                    //DishPackages = order.DishPackages.Select(pack =>
                    //            Mapper.Map<Entities.DishPackageToGoOrder, ServiceDataContracts.DishPackageToGoOrder>(pack)
                    //).ToList(),



                    DishPackages = order.DishPackages.Select(pack =>
                                                             new ServiceDataContracts.DishPackageToGoOrder
                    {
                        Id              = pack.Id,
                        Amount          = pack.Amount,
                        Comment         = pack.Comment,
                        DishId          = pack.DishId,
                        DishName        = pack.DishName,
                        OrderToGoId     = pack.OrderToGoId,
                        TotalPrice      = pack.TotalPrice,
                        PositionInOrder = pack.PositionInOrder,
                        Deleted         = pack.Deleted,
                        DeletedStatus   = pack.DeletedStatus,
                        SpisPaymentId   = pack.SpisPaymentId,
                        Code            = pack.Code
                    }).ToList(),

                    PaymentId       = order.PaymentId,
                    DiscountPercent = order.DiscountPercent
                }

                                 ).ToList();

                //result.ForEach(a => { a.DeliveryDate = a.DeliveryDate.ToUniversalTime(); });
                log.Debug($"GetOrderToGoList End");
                return(new OperationResultValue <List <ServiceDataContracts.OrderToGo> >
                {
                    Success = true,
                    Result = result
                });
            }
            catch (Exception e)
            {
                log.Error("Error", e);
                return(new OperationResultValue <List <ServiceDataContracts.OrderToGo> >
                {
                    Success = false,
                    ErrorMessage = e.Message
                });
            }
        }