public ClientMedicalPracticeData(IEnumerable <Room> rooms, string name, uint version, Guid id,
                                  HoursOfOpening hoursOfOpening)
 {
     Rooms          = rooms.ToList();
     Name           = name;
     Version        = version;
     Id             = id;
     HoursOfOpening = hoursOfOpening;
 }
Example #2
0
 public static MedicalPractice Create(string name)
 {
     return(new MedicalPractice(new List <Room>(),
                                name,
                                0,
                                Guid.NewGuid(),
                                null,
                                HoursOfOpening.CreateDefault()));
 }
Example #3
0
 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));
        }
Example #5
0
        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));
        }