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); } }
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); }