Exemplo n.º 1
0
        public static SetAsPrevDto GetSetAsPrevDtoById(this IRepositoryAsync <WeekOrderMenu> repository, int weekordid)
        {
            WeekOrderMenu curOrderMenu = repository.FindOrderMenuById(weekordid);
            WeekYearDto   curwyDto     = new WeekYearDto
            {
                Week = curOrderMenu.MenuForWeek.WorkingWeek.WeekNumber,
                Year = curOrderMenu.MenuForWeek.WorkingWeek.Year.YearNumber
            };
            WeekYearDto preWeekYearDto = YearWeekHelp.GetPrevWeekYear(curwyDto);

            WeekOrderMenu prevWeekOrder = repository.Query()
                                          .Include(om => om.User)
                                          .Include(om => om.MenuForWeek.WorkingWeek.Year)
                                          .Select().FirstOrDefault(om =>
                                                                   string.Equals(om.User.Id, curOrderMenu.User.Id) &&
                                                                   om.MenuForWeek.WorkingWeek.WeekNumber == preWeekYearDto.Week &&
                                                                   om.MenuForWeek.WorkingWeek.Year.YearNumber == preWeekYearDto.Year);

            if (prevWeekOrder != null)
            {
                return new SetAsPrevDto
                       {
                           PrevWeekOrdId = prevWeekOrder.Id,
                           DayNames      = repository.Context.GetDayNames(preWeekYearDto, true).Result,
                           Prevquants    = repository.Context.FactDishQuantByWeekOrderId(prevWeekOrder.Id).Result
                       }
            }
            ;
            return(null);
        }
Exemplo n.º 2
0
        public static void PrevOrdersMenuById(this IRepositoryAsync <WeekOrderMenu> repository, int weekordid)
        {
            WeekOrderMenu curOrderMenu = repository.FindOrderMenuById(weekordid);
            WeekYearDto   curwyDto     = new WeekYearDto
            {
                Week = curOrderMenu.MenuForWeek.WorkingWeek.WeekNumber,
                Year = curOrderMenu.MenuForWeek.WorkingWeek.Year.YearNumber
            };
            WeekYearDto preWeekYearDto = YearWeekHelp.GetPrevWeekYear(curwyDto);


            WeekOrderMenu prevWeekOrder = repository.Query()
                                          .Include(om => om.User)
                                          .Include(om => om.MenuForWeek.WorkingWeek.Year)
                                          .Include(wm => wm.MenuForWeek.WorkingWeek.WorkingDays.Select(d => d.DayOfWeek))
                                          .Include(om => om.DayOrderMenus.Select(dm => dm.MenuForDay.DishPriceMfdRelations.Select(dp => dp.Dish.DishType)))
                                          .Include(om => om.DayOrderMenus.Select(dm => dm.MenuForDay.DishPriceMfdRelations.Select(dp => dp.Dish.DishDetail)))
                                          .Include(om => om.DayOrderMenus.Select(dm => dm.MenuForDay.DishPriceMfdRelations.Select(dp => dp.DishPrice)))
                                          .Select().FirstOrDefault(om =>
                                                                   string.Equals(om.User.Id, curOrderMenu.User.Id) &&
                                                                   om.MenuForWeek.WorkingWeek.WeekNumber == preWeekYearDto.Week &&
                                                                   om.MenuForWeek.WorkingWeek.Year.YearNumber == preWeekYearDto.Year);

            if (prevWeekOrder == null)
            {
                return;
            }
            List <DayOrderMenu> curDayOrderMenus  = repository.DayOrdsByWeekOrdId(weekordid);
            List <DayOrderMenu> prevDayOrderMenus = repository.DayOrdsByWeekOrdId(prevWeekOrder.Id);

            curDayOrderMenus.ForEach(curdayord =>
            {
                if (curdayord.MenuForDay.WorkingDay.IsWorking && curdayord.MenuForDay.OrderCanBeChanged)
                {
                    DayOrderMenu prevDayOrd =
                        prevDayOrderMenus.FirstOrDefault(dord => dord.MenuForDay.WorkingDay.DayOfWeek.Id == curdayord.MenuForDay.WorkingDay.DayOfWeek.Id);
                    List <DishQuantityRelations> curdrels =
                        repository.GetRepositoryAsync <DishQuantityRelations>().GetRelationsListByDayOrdId(curdayord.Id);
                    List <DishQuantityRelations> prevdrels =
                        repository.GetRepositoryAsync <DishQuantityRelations>().GetRelationsListByDayOrdId(prevDayOrd.Id);
                    for (int i = 0; i < curdrels.Count; i++)
                    {
                        DishQuantityRelations rel = curdrels[i];
                        rel.DishQuantityId        = prevdrels.Count == 0
                          ? repository.GetRepositoryAsync <MfdDishPriceRelations>().GetDishPrice(0.00).Id
                          : prevdrels[i].DishQuantityId;
                        repository.Context.Entry(rel).State = EntityState.Modified;
                    }
                }
            });
        }