public ShopWorkingCalendarDto ConvertObsolete(ShopCalendarMonth <WorkerScheduleRecord> model, HashSet <Guid> workerIdSet, int version)
        {
            var workingCalendarMap = new Dictionary <Guid, WorkingCalendarDayInfoDto[]>();
            var month = model.Month;

            foreach (var grouping in model.ShopCalendarDays
                     .SelectMany(x => x.WorkerCalendarDays)
                     .GroupBy(x => x.WorkerId)
                     .Where(x => workerIdSet.Contains(x.Key)))
            {
                var dict = grouping.ToDictionary(x => x.Date.Day, x => mapperWrapper.Map <WorkingCalendarDayInfoDto>(x));

                var daysForWorker = Enumerable.Range(1, DateTime.DaysInMonth(month.Year, month.Month))
                                    .Select(x => dict.TryGetValue(x, out var dto) ? dto : GetDefaultDay(new DateTime(month.Year, month.Month, x)))
                                    .ToArray();

                workingCalendarMap.Add(grouping.Key, daysForWorker);
            }

            return(new ShopWorkingCalendarDto
            {
                Version = version,
                Month = month,
                WorkingCalendarMap = workingCalendarMap,
            });
        }
Exemplo n.º 2
0
 private ShopCalendarMonthBuilder(Guid shopId, DateTime month)
 {
     shopCalendarMonth = new ShopCalendarMonth <T>
     {
         ShopId           = shopId,
         Month            = month,
         ShopCalendarDays = new ShopCalendarDay <T> [0],
     };
 }
 private static ShopCalendarMonth <T> GetCalendarByRange(ShopCalendarMonth <T> shopCalendarMonth, DateTime from, DateTime to)
 {
     return(new ShopCalendarMonth <T>
     {
         ShopId = shopCalendarMonth.ShopId,
         Month = shopCalendarMonth.Month,
         ShopCalendarDays = shopCalendarMonth.ShopCalendarDays
                            .Where(t => t.Date >= from && t.Date <= to)
                            .ToArray()
     });
 }