Beispiel #1
0
 private static ConcertScheduleModel GetScheduleModel(ConcertSchedule model, ConcertDateRange range)
 {
     return(model != null ? new ConcertScheduleModel
     {
         Id = model.Id,
         DateStart = range.DateStart,
         DateEnd = range.DateEnd,
         IsRepeated = range.IsRepeated,
         Duration = model.Duration,
         TimeStart = model.TimeStart,
         TimeEnd = model.TimeEnd,
         IdRange = model.IdRange,
         Period = model.Period,
         WeekDay = model.WeekDay
     } : null);
 }
Beispiel #2
0
        /// <see cref="IConcertService.SaveConcertSchedules"/>
        public bool SaveConcertSchedules(ConcertDateRangeModel model)
        {
            var list             = new List <ConcertScheduleModel>();
            ConcertDateRange res = null;

            _concertRepository.DeleteConcertSchedule(model.IdEvent);
            if (model.IsRepeated)
            {
                if (model.WeekSchedules != null)
                {
                    list.AddRange(ConcertModelHelper.GetSchedules(model.WeekSchedules));
                }
                if (model.RangeSchedules != null)
                {
                    list.AddRange(ConcertModelHelper.GetSchedules(model.RangeSchedules));
                }
                var sort =
                    list.GroupBy(o => new { ds = o.DateStart, de = o.DateEnd }).Select(o => new ConcertDateRangeModel
                {
                    DateStart  = o.Key.ds,
                    DateEnd    = o.Key.de,
                    IdEvent    = model.IdEvent,
                    IsRepeated = true
                });
                foreach (var el in sort)
                {
                    var sched = list.Where(o => o.DateStart == el.DateStart && o.DateEnd == el.DateEnd);
                    res = _concertRepository.SaveConcertSchedule(ConcertModelHelper.GetDateRange(el),
                                                                 ConcertModelHelper.GetSchedules(sched));
                    if (res == null)
                    {
                        return(false);
                    }
                }
            }
            else
            {
                if (model.OneSchedule == null)
                {
                    return(true);
                }
                list.Add(model.OneSchedule);
                res = _concertRepository.SaveConcertSchedule(ConcertModelHelper.GetDateRange(model),
                                                             ConcertModelHelper.GetSchedules(list));
            }
            return(res != null);
        }
Beispiel #3
0
 /// <see cref="IConcertRepository.SaveConcertSchedule(ConcertDateRange, IEnumerable{ConcertSchedule})" />
 public ConcertDateRange SaveConcertSchedule(ConcertDateRange model, IEnumerable <ConcertSchedule> schedules)
 {
     if (model.Id == 0)
     {
         db.Entry(model).State = EntityState.Added;
     }
     try
     {
         db.SaveChanges();
         foreach (var sch in schedules.Select(item => SaveConcertSchedule(model.Id, item)).Where(sch => sch != null))
         {
             model.Schedules.Add(sch);
         }
         db.SaveChanges();
     }
     catch (Exception e)
     {
         return(null);
     }
     return(model);
 }