Exemplo n.º 1
0
        public async Task <IEnumerable <GroupDisciplineLoad> > Get(GroupDisciplineLoadGetOptions options)
        {
            var groupDisciplineLoad = await _groupDisciplineLoadDao.Get(options);

            var studyLoad = await _studyLoadService.Get(new StudyLoadGetOptions
            {
                GroupDisciplineLoadsIds = groupDisciplineLoad.Select(o => o.Id).ToList()
            });

            var disciplineTitles = await _disciplineTitleService.Get(new DisciplineTitleGetOptions
            {
                DepartmentLoadsIds = options.DepartmentLoadsIds
            });

            var studentGroups = await _studentGroupService.Get(new StudentGroupGetOptions
            {
                DepartmentLoadsIds = options.DepartmentLoadsIds
            });

            foreach (var load in groupDisciplineLoad)
            {
                load.DisciplineTitle = disciplineTitles.FirstOrDefault(o => o.Id == load.DisciplineTitleId);
                load.StudentGroup    = studentGroups.FirstOrDefault(o => o.Id == load.StudentGroupId);
                load.StudyLoad       = studyLoad.Where(o => o.GroupDisciplineLoadId == load.Id).ToList();
            }

            return(groupDisciplineLoad);
        }
Exemplo n.º 2
0
        public async Task <IEnumerable <GroupDisciplineLoad> > Get(GroupDisciplineLoadGetOptions options)
        {
            try
            {
                StringBuilder sql = new StringBuilder();

                _logger.LogInformation("Try to create get group discipline load sql query");

                sql.AppendLine(@"
                    select
                        gl.Id,
                        gl.DepartmentLoadId,
                        gl.DisciplineTitleId,
                        gl.StudentGroupId,
                        gl.FacultyName,
                        gl.SemesterNumber,
                        gl.StudyWeeksCount,
                        gl.Amount
                    from GroupDisciplineLoad gl
                    left join DepartmentLoad dl on gl.DepartmentLoadId = dl.Id
                ");

                int conditionIndex = 0;

                if (options.DepartmentLoadId.HasValue)
                {
                    sql.AppendLine($"{(conditionIndex++ == 0 ? "where" : "and")} (dl.Id = @DepartmentLoadId)");
                }

                if (options.DepartmentLoadsIds != null && options.DepartmentLoadsIds.Count > 0)
                {
                    sql.AppendLine($"{(conditionIndex++ == 0 ? "where" : "and")} (dl.Id in @DepartmentLoadsIds)");
                }

                _logger.LogInformation($"Sql query successfully created:\n{sql.ToString()}");

                _logger.LogInformation("Try to execute sql get group discipline load query");
                var result = await QueryAsync <GroupDisciplineLoad>(sql.ToString(), options);

                _logger.LogInformation("Sql get group discipline load query successfully executed");
                return(result);
            }
            catch (Exception exception)
            {
                _logger.LogError(exception.Message);
                throw exception;
            }
        }