Exemple #1
0
        public async Task <OperationDetailDTO <RepositoryDTO> > GetRepositoryByID(int id)
        {
            var detail = new OperationDetailDTO <RepositoryDTO>();

            try
            {
                var repoEntity = await _context.RepositoryModels
                                 .Include(r => r.Files)
                                 .FirstOrDefaultAsync(r => r.Id == id);

                if (repoEntity != null)
                {
                    var dto = RepositoryDTO.Map(repoEntity);
                    detail.Data      = dto;
                    detail.Succeeded = true;
                }
                else
                {
                    detail.ErrorMessages.Add("Репозиторий не найден");
                }
                return(detail);
            }

            catch (Exception e)
            {
                detail.ErrorMessages.Add(_serverErrorMessage + e.Message);
                return(detail);
            }
        }
Exemple #2
0
        public async Task <OperationDetailDTO <List <RepositoryDTO> > > GetRepositoriesFromDBAsync(FilterDTO[] filters)
        {
            var detail = new OperationDetailDTO <List <RepositoryDTO> >();

            try
            {
                var resultList = new List <RepositoryDTO>();

                var repos = from r in _context.RepositoryModels
                            .Include(r => r.Subject)
                            .Include(r => r.Files)
                            .Include(r => r.Teacher)
                            select r;

                repos.OrderBy(r => r.Teacher.Name);

                if (filters != null)
                {
                    foreach (var filter in filters)
                    {
                        switch (filter.Name)
                        {
                        case "subjectId":
                        {
                            var value = Convert.ToInt32(filter.Value);
                            if (value > 0)
                            {
                                repos = repos.Where(r => r.SubjectId == value);
                            }
                            break;
                        }
                        }
                    }
                }

                foreach (var entity in repos)
                {
                    var repoDTO = RepositoryDTO.Map(entity);
                    resultList.Add(repoDTO);
                }

                detail.Data      = resultList;
                detail.Succeeded = true;
            }
            catch (Exception e)
            {
                detail.ErrorMessages.Add(_serverErrorMessage + e.Message);
            }

            return(detail);
        }
        // test
        public async Task <OperationDetailDTO <List <RepositoryDTO> > > GetRepositoriesFromDBAsync(FilterDTO[] filters = null)
        {
            var detail = new OperationDetailDTO <List <RepositoryDTO> >();

            var resultList = new List <RepositoryDTO>();

            var currentUserEntity = await GetUserFromClaimsAsync();

            var teacherEntity = await _context.Teachers
                                .Include(t => t.User)
                                .Where(t => t.UserId == currentUserEntity.Id)
                                .FirstOrDefaultAsync();


            var repos = from r in _context.RepositoryModels
                        .Where(r => r.TeacherId == teacherEntity.Id)
                        .Include(r => r.Subject)
                        .Include(r => r.Files)
                        select r;

            repos.OrderBy(r => r.Name);

            if (filters != null)
            {
                foreach (var filter in filters)
                {
                    switch (filter.Name)
                    {
                    case "subjectId":
                    {
                        var value = Convert.ToInt32(filter.Value);
                        if (value > 0)
                        {
                            repos = repos.Where(r => r.SubjectId == value);
                        }
                        break;
                    }
                    }
                }
            }

            foreach (var entity in repos)
            {
                var repoDTO = RepositoryDTO.Map(entity);
                resultList.Add(repoDTO);
            }

            detail.Data      = resultList;
            detail.Succeeded = true;
            return(detail);
        }