private ScheduleRulesetAbridged ToAbridged(ScheduleRuleset obj) { var abridged = new ScheduleRulesetAbridged(obj.Identifier, obj.DaySchedules, obj.DefaultDaySchedule, obj.DisplayName, obj.UserData, obj.ScheduleRules, obj.HolidaySchedule, obj.SummerDesigndaySchedule, obj.WinterDesigndaySchedule, obj.ScheduleTypeLimit?.Identifier); //_typeLimits.Add(obj.ScheduleTypeLimit); return(abridged); }
private ScheduleRuleset AbridgedToReal(ScheduleRulesetAbridged obj) { var typeLimit = _typeLimits.FirstOrDefault(_ => _.Identifier == obj.ScheduleTypeLimit); var realObj = new ScheduleRuleset(obj.Identifier, obj.DaySchedules, obj.DefaultDaySchedule, obj.DisplayName, obj.UserData, obj.ScheduleRules, obj.HolidaySchedule, obj.SummerDesigndaySchedule, obj.WinterDesigndaySchedule, typeLimit); return(realObj); }
public static Profile ToSAM(this ScheduleRulesetAbridged scheduleRulesetAbridged, ProfileType?profileType) { if (scheduleRulesetAbridged == null) { return(null); } Dictionary <string, Profile> profiles = new Dictionary <string, Profile>(); List <ScheduleDay> scheduleDays = scheduleRulesetAbridged.DaySchedules; if (scheduleDays != null) { foreach (ScheduleDay scheduleDay in scheduleDays) { Profile profile = scheduleDay.ToSAM(); if (profile == null) { continue; } profiles[scheduleDay.Identifier] = profile; } } Profile result = null; if (profileType != null && profileType.HasValue) { result = new Profile(scheduleRulesetAbridged.Identifier, profileType.Value); } else { result = new Profile(scheduleRulesetAbridged.Identifier, scheduleRulesetAbridged.Type); } List <ScheduleRuleAbridged> scheduleRuleAbridges = scheduleRulesetAbridged.ScheduleRules; if (scheduleRuleAbridges == null || scheduleRuleAbridges.Count == 0) { string name = scheduleRulesetAbridged.DefaultDaySchedule; if (!string.IsNullOrWhiteSpace(name)) { if (profiles.TryGetValue(name, out Profile profile)) { result.Add(profile); } } } else { ScheduleRuleAbridged scheduleRuleAbridged = scheduleRuleAbridges[0]; //TODO: Not fully implemented assumtion: there is just one scheduleRuleAbrided string name = null; Profile profile = null; //Sunday name = null; scheduleRuleAbridged = scheduleRuleAbridges.Find(x => x.ApplySunday); if (scheduleRuleAbridged != null) { name = scheduleRuleAbridged.ScheduleDay; } if (string.IsNullOrWhiteSpace(name)) { name = scheduleRulesetAbridged.DefaultDaySchedule; } if (!string.IsNullOrWhiteSpace(name) && profiles.TryGetValue(name, out profile) && profile != null) { result.Add(profile); } //Monday name = null; scheduleRuleAbridged = scheduleRuleAbridges.Find(x => x.ApplyMonday); if (scheduleRuleAbridged != null) { name = scheduleRuleAbridged.ScheduleDay; } if (string.IsNullOrWhiteSpace(name)) { name = scheduleRulesetAbridged.DefaultDaySchedule; } if (!string.IsNullOrWhiteSpace(name) && profiles.TryGetValue(name, out profile) && profile != null) { result.Add(profile); } //Tuesday name = null; scheduleRuleAbridged = scheduleRuleAbridges.Find(x => x.ApplyTuesday); if (scheduleRuleAbridged != null) { name = scheduleRuleAbridged.ScheduleDay; } if (string.IsNullOrWhiteSpace(name)) { name = scheduleRulesetAbridged.DefaultDaySchedule; } if (!string.IsNullOrWhiteSpace(name) && profiles.TryGetValue(name, out profile) && profile != null) { result.Add(profile); } //Wednesday name = null; scheduleRuleAbridged = scheduleRuleAbridges.Find(x => x.ApplyWednesday); if (scheduleRuleAbridged != null) { name = scheduleRuleAbridged.ScheduleDay; } if (string.IsNullOrWhiteSpace(name)) { name = scheduleRulesetAbridged.DefaultDaySchedule; } if (!string.IsNullOrWhiteSpace(name) && profiles.TryGetValue(name, out profile) && profile != null) { result.Add(profile); } //Thursday name = null; scheduleRuleAbridged = scheduleRuleAbridges.Find(x => x.ApplyThursday); if (scheduleRuleAbridged != null) { name = scheduleRuleAbridged.ScheduleDay; } if (string.IsNullOrWhiteSpace(name)) { name = scheduleRulesetAbridged.DefaultDaySchedule; } if (!string.IsNullOrWhiteSpace(name) && profiles.TryGetValue(name, out profile) && profile != null) { result.Add(profile); } //Friday name = null; scheduleRuleAbridged = scheduleRuleAbridges.Find(x => x.ApplyFriday); if (scheduleRuleAbridged != null) { name = scheduleRuleAbridged.ScheduleDay; } if (string.IsNullOrWhiteSpace(name)) { name = scheduleRulesetAbridged.DefaultDaySchedule; } if (!string.IsNullOrWhiteSpace(name) && profiles.TryGetValue(name, out profile) && profile != null) { result.Add(profile); } //Saturday name = null; scheduleRuleAbridged = scheduleRuleAbridges.Find(x => x.ApplySaturday); if (scheduleRuleAbridged != null) { name = scheduleRuleAbridged.ScheduleDay; } if (string.IsNullOrWhiteSpace(name)) { name = scheduleRulesetAbridged.DefaultDaySchedule; } if (!string.IsNullOrWhiteSpace(name) && profiles.TryGetValue(name, out profile) && profile != null) { result.Add(profile); } } return(result); }