public ClientMedicalPracticeData(IEnumerable <Room> rooms, string name, uint version, Guid id, HoursOfOpening hoursOfOpening) { Rooms = rooms.ToList(); Name = name; Version = version; Id = id; HoursOfOpening = hoursOfOpening; }
public static MedicalPractice Create(string name) { return(new MedicalPractice(new List <Room>(), name, 0, Guid.NewGuid(), null, HoursOfOpening.CreateDefault())); }
public MedicalPractice(IEnumerable <Room> rooms, string name, uint version, Guid id, MedicalPractice previousVersion, HoursOfOpening hoursOfOpening) { Rooms = rooms.ToList(); Name = name; Version = version; Id = id; PreviousVersion = previousVersion; HoursOfOpening = hoursOfOpening; }
public static ClientMedicalPracticeData Deserialize(string s) { var parts = s.Split('|'); var practiceId = Guid.Parse(parts[0]); var practiceName = parts[1]; var practiceVersion = uint.Parse(parts[2]); var allRoomData = parts[3]; var allRoomParts = allRoomData.Split(':'); var roomList = new List <Room>(); foreach (var roomData in allRoomParts) { var roomParts = roomData.Split(';'); var roomId = Guid.Parse(roomParts[0]); var roomName = roomParts[1]; var roomDisplayColor = (Color)ColorConverter.ConvertFromString(roomParts[2]); var allTherapyPlaceData = roomParts[3]; var allTherapyPlaceParts = allTherapyPlaceData.Split('#'); var therapyPlaceList = new List <TherapyPlace>(); foreach (var therapyPlaceData in allTherapyPlaceParts) { var therapyPlaceParts = therapyPlaceData.Split('('); var therapyPlaceId = Guid.Parse(therapyPlaceParts[0]); var therapyPlaceName = therapyPlaceParts[1]; var theralyPlaceTypeId = Guid.Parse(therapyPlaceParts[2]); therapyPlaceList.Add(new TherapyPlace(therapyPlaceId, theralyPlaceTypeId, therapyPlaceName)); } roomList.Add(new Room(roomId, roomName, therapyPlaceList, roomDisplayColor)); } var hoursOfOpeningData = parts.Last(); var hoursOfOpeningParts = hoursOfOpeningData.Split(new[] { ';' }, StringSplitOptions.None); var openingTimeMonday = Time.Parse(hoursOfOpeningParts[0]); var openingTimeTuesday = Time.Parse(hoursOfOpeningParts[1]); var openingTimeWednesday = Time.Parse(hoursOfOpeningParts[2]); var openingTimeThursday = Time.Parse(hoursOfOpeningParts[3]); var openingTimeFriday = Time.Parse(hoursOfOpeningParts[4]); var openingTimeSaturday = Time.Parse(hoursOfOpeningParts[5]); var openingTimeSunday = Time.Parse(hoursOfOpeningParts[6]); var closingTimeMonday = Time.Parse(hoursOfOpeningParts[7]); var closingTimeTuesday = Time.Parse(hoursOfOpeningParts[8]); var closingTimeWednesday = Time.Parse(hoursOfOpeningParts[9]); var closingTimeThursday = Time.Parse(hoursOfOpeningParts[10]); var closingTimeFriday = Time.Parse(hoursOfOpeningParts[11]); var closingTimeSaturday = Time.Parse(hoursOfOpeningParts[12]); var closingTimeSunday = Time.Parse(hoursOfOpeningParts[13]); var isOpenOnMonday = bool.Parse(hoursOfOpeningParts[14]); var isOpenOnTuesday = bool.Parse(hoursOfOpeningParts[15]); var isOpenOnWednesday = bool.Parse(hoursOfOpeningParts[16]); var isOpenOnThursday = bool.Parse(hoursOfOpeningParts[17]); var isOpenOnFriday = bool.Parse(hoursOfOpeningParts[18]); var isOpenOnSaturday = bool.Parse(hoursOfOpeningParts[19]); var isOpenOnSunday = bool.Parse(hoursOfOpeningParts[20]); var closedDaydata = hoursOfOpeningParts[21]; var closedDays = closedDaydata.Split('(') .Where(part => !string.IsNullOrWhiteSpace(part)) .Select(Date.Parse) .ToList(); var openedDaydata = hoursOfOpeningParts[22]; var openedDays = openedDaydata.Split('(') .Where(part => !string.IsNullOrWhiteSpace(part)) .Select(Date.Parse) .ToList(); var hoursOfOpening = new HoursOfOpening(openingTimeMonday, openingTimeTuesday, openingTimeWednesday, openingTimeThursday, openingTimeFriday, openingTimeSaturday, openingTimeSunday, closingTimeMonday, closingTimeTuesday, closingTimeWednesday, closingTimeThursday, closingTimeFriday, closingTimeSaturday, closingTimeSunday, isOpenOnMonday, isOpenOnTuesday, isOpenOnWednesday, isOpenOnThursday, isOpenOnFriday, isOpenOnSaturday, isOpenOnSunday, openedDays, closedDays); return(new ClientMedicalPracticeData(roomList, practiceName, practiceVersion, practiceId, hoursOfOpening)); }
public static MedicalPractice SetNewHoursOfOpening(this MedicalPractice medPractice, HoursOfOpening newHoursOfOpening) { var updatedVersion = medPractice.Version + 1; return(new MedicalPractice(medPractice.Rooms, medPractice.Name, updatedVersion, medPractice.Id, medPractice, newHoursOfOpening)); }