// Проверяет входит ли дата, запрошенная пользователем в учебный семестр, если нет, то дополнительно проверяет доступность экзаменов protected bool DateBoundariesCheck(State state, BsuirScheduleResponse schedule, out string result, out string errorMessage) { if (Date > DateTime.Parse(schedule.dateEnd, CultureInfo.GetCultureInfo("ru-RU")) || Date < DateTime.Parse(schedule.dateStart, CultureInfo.GetCultureInfo("ru-RU"))) { if (schedule.examSchedules.Count() != 0) { var exam = schedule.examSchedules.FirstOrDefault(exam => DateTime.Parse(exam.weekDay, CultureInfo.GetCultureInfo("ru-RU")) == Date); if (exam == null) { errorMessage = "В этот день нет ни одной пары"; result = ""; return(false); } else { errorMessage = ""; // 1 - с какого номера начинать нумеровать выводимый список экзаменов result = FormExamSchedule(exam, state.User, 1); return(true); } } result = ""; errorMessage = $"Вы указали слишком большую, или слишком маленьку дату ({Date.ToString("d", CultureInfo.GetCultureInfo("ru-RU"))}), которая не входит в ваш учебный семестр!"; return(false); } result = ""; errorMessage = ""; return(true); }
// Отправляет запрос на сервер с просьбой предоставить расписание protected bool TrySendScheduleResponse(ISchedulesRepository schedulesRepo, State state, out BsuirScheduleResponse result, out string errorMessage) { using var client = new HttpClient(); var schedule = new BsuirScheduleResponse(); var bsuirResponse = client.GetAsync($"https://journal.bsuir.by/api/v1/studentGroup/schedule?studentGroup={state.User.Group}").Result; if (bsuirResponse.IsSuccessStatusCode) { var stringResponse = bsuirResponse.Content.ReadAsStringAsync().Result; if (String.IsNullOrWhiteSpace(stringResponse)) { result = null; errorMessage = "Похоже, что расписания вашей группы нет на сервере, сочувствую :("; return(false); } schedule = JsonConvert.DeserializeObject <BsuirScheduleResponse>(stringResponse); schedule.Group = int.Parse(schedule.studentGroup.name); schedulesRepo.AddSchedule(schedule); } else { result = null; errorMessage = $"Простите, сервер не отвечает, а сохраненного расписания этой группы у меня нет :((("; return(false); } result = schedule; errorMessage = ""; return(true); }
private string GetSchedule(BsuirScheduleResponse schedule, State state) { var mondayThisWeek = DateTime.Today.AddDays(-((int)DateTime.Today.DayOfWeek == 0 ? 6 : (int)DateTime.Today.DayOfWeek - 1)); var weeksAdd = (Date - mondayThisWeek).Days / 7; var week = (weeksAdd + SchedulesRepository.CurrentWeek - 1) % 4 + 1; var responseText = FormResponse(week, schedule.schedules, state.User.DisplayAuditory, state.User.DisplayEmployeeName, state.User.DisplaySubjectTime, state.User.DisplaySubjectType); responseText = String.IsNullOrWhiteSpace(responseText) ? "В этот день нет ни одной пары" : responseText; return(responseText); }
public async void AddSchedule(BsuirScheduleResponse schedule) { await Schedules.InsertOneAsync(schedule); }
public async void UpdateSchedule(int group, BsuirScheduleResponse newSchedule) { await Schedules.ReplaceOneAsync(new BsonDocument("_id", group), newSchedule); }