private IEnumerable <DjangoTimeEntry> ParseEntries(ResourceCalendar calendar) { foreach (var day in calendar.Days) { foreach (var res in day.Resources) { DateTime?startTime = null; foreach (var tick in res.Timeslots) { if (tick.IsSelected) { if (!startTime.HasValue) { startTime = new DateTime(calendar.Year, calendar.Month, day.DayNro, tick.Minutes / 60, tick.Minutes % 60, 0, DateTimeKind.Utc); } } else { if (startTime.HasValue) { var endTime = new DateTime(calendar.Year, calendar.Month, day.DayNro, tick.Minutes / 60, tick.Minutes % 60, 0, DateTimeKind.Utc); var dc = new DjangoTimeEntry() { CompanyID = calendar.CompanyId, Start = startTime.Value, End = endTime, Used = true }; startTime = null; yield return(dc); } } } if (startTime.HasValue) { var endTime = new DateTime(calendar.Year, calendar.Month, day.DayNro, 23, 59, 0, DateTimeKind.Utc); var dc = new DjangoTimeEntry() { CompanyID = calendar.CompanyId, Start = startTime.Value, End = endTime, Used = true }; startTime = null; yield return(dc); } } } }
private void FillReserved(DjangoTimeEntry reserved, ResourceCalendar calendar) { var dayNro = reserved.Start.Day; var beginDay = new DateTime(reserved.Start.Year, reserved.Start.Month, reserved.Start.Day); var day = calendar.Days.First(row => row.DayNro == dayNro); int startMin = (int)((reserved.Start - beginDay).TotalMinutes); int endMin = (int)((reserved.End - beginDay).TotalMinutes); foreach (var res in day.Resources) { foreach (var ts in res.Timeslots) { if (ts.Minutes >= startMin && ts.Minutes < endMin) { ts.IsSelected = true; } } } }