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)); } }
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)); } }
public static void Debug(object message) { if (_loggerProvider == null) { return; } _loggerProvider.Log(GameLogLevel.Debug, message); }