private async Task <List <CalendarRawItem> > GetCalendarRawItemsInternal()
        {
            var calendarRawItemsString = await _fetcher.FetchCalendar();

            var calendarItems = RawStringParser.DeserializeCalendar(calendarRawItemsString);

            return(calendarItems);
        }
예제 #2
0
        private async Task <List <Group> > GetFacultiesGroupsInternal()
        {
            var faculties = await _facultiesProvider.GetFaculties();

            var facultiesGroups = new List <Group>();

            foreach (var faculty in faculties)
            {
                var groupsString = await _fetcher.FetchGroups(faculty.TypeId);

                var groups = RawStringParser.DeserializeGroups(groupsString, faculty);

                facultiesGroups.AddRange(groups);
            }

            return(facultiesGroups);
        }
예제 #3
0
        private async Task <List <Classroom> > GetClassroomsForFaculty(Faculty faculty)
        {
            try
            {
                var facultyClassroomsString = await _fetcher.FetchClassroom(faculty.TypeId);

                var facultyClassrooms = RawStringParser.DeserializeClassrooms(facultyClassroomsString);
                return(facultyClassrooms);
            }
            catch (Exception e) when(DeserializationOrFetchException(e))
            {
                if (_classroomsBackCache.TryGetValue(faculty, out var backCacheClassrooms))
                {
                    return(backCacheClassrooms);
                }

                throw;
            }
        }
예제 #4
0
        private async Task <List <Lecturer> > GetLecturersInternal(Faculty faculty)
        {
            try
            {
                var lecturersString = await _fetcher.FetchLecturers(faculty.TypeId);

                var lecturers = RawStringParser.DeserializeLecturers(lecturersString);
                return(lecturers);
            }
            catch (Exception e) when(DeserializationOrFetchException(e))
            {
                if (_lecturersBackCache.TryGetValue(faculty, out var backCacheResult))
                {
                    return(backCacheResult);
                }

                throw;
            }
        }