public OperationResultValue <List <ServiceDataContracts.Dish> > GetDishPage(DishFilter filter, PageInfo page)
 {
     return(dishService.GetDishPage(filter, page));
 }
Esempio n. 2
0
        public OperationResultValue <List <ServiceDataContracts.Dish> > GetDishPage(DishFilter filter, PageInfo page)
        {
            var result = new List <ServiceDataContracts.Dish>();
            var list   = new List <Entities.Dish>();

            var querableList = db.Dish.Where(dish => true);

            if (!string.IsNullOrEmpty(filter.RussianNameLike))
            {
                querableList = querableList.Where(d => d.RussianName.Contains(filter.RussianNameLike));
            }

            if (filter.FlightPriceEnd != null)
            {
                querableList = querableList.Where(d => d.PriceForFlight <= filter.FlightPriceEnd);
            }

            if (filter.FlightPriceStart != null)
            {
                querableList = querableList.Where(d => d.PriceForFlight >= filter.FlightPriceStart);
            }

            if (filter.FlightPriceStart != null)
            {
                querableList = querableList.Where(d => d.PriceForFlight >= filter.FlightPriceStart);
            }

            if (filter.IsActive != null)
            {
                querableList = querableList.Where(d => d.IsActive == filter.IsActive);
            }

            if (filter.IsTemporary != null)
            {
                querableList = querableList.Where(d => d.IsActive == filter.IsTemporary);
            }

            if (filter.IsAlcohol != null)
            {
                querableList = querableList.Where(d => d.IsAlcohol == filter.IsAlcohol);
            }

            list = querableList.OrderBy(d => d.RussianName)
                   .Skip(page.Skip)
                   .Take(page.Take).ToList();

            //if (string.IsNullOrEmpty(filter.RussianNameLike))
            //{
            //    list = db.Dish.Where(d => d.PriceForFlight <= filter.FlightPriceEnd &&
            //    d.PriceForFlight >= filter.FlightPriceStart)
            //    //.OrderBy(d => d.RussianName)
            //    .OrderBy(d => d.Id)
            //    .Skip(page.Skip)
            //    .Take(page.Take).ToList();
            //}
            //else
            //{
            //    list = db.Dish.Where(d => d.RussianName.Contains(filter.RussianNameLike) &&
            //    d.PriceForFlight <= filter.FlightPriceEnd &&
            //    d.PriceForFlight >= filter.FlightPriceStart)
            //    .OrderBy(d => d.RussianName)
            //    .Skip(page.Skip)
            //    .Take(page.Take).ToList();
            //}



            result = list.Select(dish => new ServiceDataContracts.Dish
            {
                Id                 = dish.Id,
                Barcode            = dish.Barcode,
                EnglishName        = dish.EnglishName,
                SHId               = dish.SHId,
                Name               = dish.Name,
                NeedPrintInMenu    = dish.NeedPrintInMenu,
                IsActive           = dish.IsActive,
                IsTemporary        = dish.IsTemporary,
                IsToGo             = dish.IsToGo,
                IsAlcohol          = dish.IsAlcohol,
                PriceForDelivery   = dish.PriceForDelivery,
                PriceForFlight     = dish.PriceForFlight,
                RussianName        = dish.RussianName,
                LabelEnglishName   = dish.LabelEnglishName,
                LabelRussianName   = dish.LabelRussianName,
                DishKitсhenGroupId = dish.DishKitсhenGroupId,

                /*
                 * DishKitсhenGroup = dish.DishKitсhenGroup == null? null: new ServiceDataContracts.DishKitchenGroup
                 * {
                 *  Id = dish.DishKitсhenGroup.Id,
                 *  IsActive = dish.DishKitсhenGroup.IsActive,
                 *  Name = dish.DishKitсhenGroup.Name,
                 *  EnglishName = dish.DishKitсhenGroup.EnglishName,
                 *  PositionForPrint = dish.DishKitсhenGroup.PositionForPrint
                 * },
                 */
                DishLogicGroupId = dish.DishLogicGroupId,

                /*
                 * DishLogicGroup = dish.DishLogicGroup == null? null: new ServiceDataContracts.DishLogicGroup
                 * {
                 *  Id = dish.DishLogicGroup.Id,
                 *  IsActive = dish.DishLogicGroup.IsActive,
                 *  Name = dish.DishLogicGroup.Name,
                 *  PositionForPrint = dish.DishLogicGroup.PositionForPrint
                 * },
                 */
                ToFlyLabelSeriesCount = dish.ToFlyLabelSeriesCount,
                ToGoLabelSeriesCount  = dish.ToGoLabelSeriesCount
            }
                                 ).ToList();
            return(new OperationResultValue <List <ServiceDataContracts.Dish> > {
                Success = true, Result = result
            });
        }