private ScheduleBlock CreateLanguageLevelBlock(List <ScheduleItem> items, string name) { var baseSegment = new ScheduleSegment { ScheduleItems = items, }; return(new ScheduleBlock { ScheduleSegments = new[] { baseSegment }, Name = name }); }
private void SetScheduleSegmentAgr(ScheduleSegment segment) { var query = segment .ScheduleItems .Where(it => it.PaymentPeriod == PaymentPeriodEnum.Course); if (query.Any()) { segment.MinPrice = query.Min(it => it.Price); segment.MaxPrice = query.Max(it => it.Price); } segment.Duration = string.Join(", ", segment .ScheduleItems .Select(it => it.Duration) .Distinct()); }
public List <ScheduleSegment> Split(ScheduleSegment segment) { var groups = segment .ScheduleItems .GroupBy(gr => gr.LanguageLevel.Id); var result = new List <ScheduleSegment>(); foreach (var gr in groups) { var level = gr.FirstOrDefault().LanguageLevel; result.Add(new ScheduleSegment { Title = GetTitle(level), SortPriority = level.Rang, ScheduleItems = gr }); } return(result); }
public List <ScheduleSegment> Split(ScheduleSegment segment) { var groups = segment .ScheduleItems .GroupBy(it => it.Bunch) .Where(gr => gr.Any()) .ToArray(); var result = new List <ScheduleSegment>(); foreach (var gr in groups) { result.Add(new ScheduleSegment { Title = GetTitle(gr.Key, segment.Title), SortPriority = segment.SortPriority + gr.FirstOrDefault().BunchPriority *coefPriority, ScheduleItems = gr }); } return(result); }