Beispiel #1
0
 public T Get<T>(string key)
     where T : new()
 {
     try
     {
         var log = new LogMessage(SeverityLevel.Info, $"Get setting for {key}");
         _logger?.Log(log);
         string path = Path.Combine(_configFolder, $"{key}.json");
         T result;
         if (File.Exists(path))
         {
             string json = File.ReadAllText(path);
             result = JsonConvert.DeserializeObject<T>(json);
         }
         else
         {
             result = new T();
             string json = JsonConvert.SerializeObject(result);
             File.WriteAllText(path, json);
         }
         return result;
     }
     catch (Exception ex)
     {
         var log = new LogMessage(SeverityLevel.Error, ex.ToString());
         _logger?.Log(log);
         throw;
     }
 }
        public WeekSlots From(AvailabilityWeek weekData)
        {
            try
            {
                _weekData = weekData;

                Condition.Requires(_weekData.SlotDurationMinutes, "slotDurationMinutes")
                .IsGreaterThan(0)
                .IsLessThan(120);

                var weekSlots = new WeekSlots();

                foreach (var day in Enum.GetValues(typeof(DayOfWeek))
                         .OfType <DayOfWeek>()
                         .OrderBy(x => ((int)x + 6) % 7)          //Monday first (Sunday is default order)
                         .ToList())
                {
                    var dayOfWeek = GetSpecificDataDay(day.ToString());

                    SetCurrentDayOfWeek(day, dayOfWeek);

                    var daySlots = SplitDayInSlots(dayOfWeek);

                    weekSlots.AddDayToWeek(_weekData.Facility.FacilityId, daySlots);
                }

                return(weekSlots);
            }
            catch (Exception err)
            {
                _loggerProvider.Log(err);
                return(WeekSlots.CreateAllDaysOfWeekWithNoAvailability(_weekData.Facility.FacilityId, _weekData.DayOfMonday));
            }
        }
Beispiel #3
0

        
Beispiel #4
0
        public async Task TakeAppointment(Appointment takeSlot)
        {
            try
            {
                await _httpClientProvider
                .CreateClient(URL_CLIENT)
                .WithBasicAuthenticator(USER, PSW)
                .PostAsync(TAKE_APPOINTMENT, takeSlot);
            }
            catch (Exception err)
            {
                await _loggerProvider.Log(err);

                throw (new TakeAppointmentException(Resources.FriendlyMessageException.TakeAppointmentExceptionMessage, err));
            }
        }
        public async Task <IActionResult> Post([FromBody] Appointment appointment)
        {
            try
            {
                Condition.Requires(appointment)
                .IsNotNull("Appointment is required");

                Condition.Requires(appointment)
                .Evaluate(x => x.IsValid(), "Appointment is invalid (startdate, enddate, patient phone and name are mandatory)");

                await _availabilityWeekService.TakeAppointment(appointment);

                return(Created("api/availability/takeslot", appointment));
            }
            catch (Exception err)
            {
                await _loggerProvider.Log(err);

                return(BadRequest(err));
            }
        }
        public async Task <IActionResult> List(string dayOfStartWeek)
        {
            try
            {
                Condition.Requires(dayOfStartWeek)
                .IsNotNullOrEmpty("Day start of weeb is mandatory");

                DateTime.TryParseExact(dayOfStartWeek, "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime dayOfStartWeekParsed);

                Condition.Requires(dayOfStartWeekParsed)
                .Evaluate(x => x.DayOfWeek == DayOfWeek.Monday, "Weekly based method: always expect Monday");

                var result = await _availabilityWeekService.GetAvailabilitySlots(dayOfStartWeekParsed);

                return(Ok(result));
            }
            catch (Exception err)
            {
                await _loggerProvider.Log(err);

                return(BadRequest(err));
            }
        }
Beispiel #12
0
        public static void Debug(object message)
        {
            if (_loggerProvider == null)
            {
                return;
            }

            _loggerProvider.Log(GameLogLevel.Debug, message);
        }