public IActionResult GroupList(int folderId) { try { var currentUser = userManager.GetUserAsync(User).Result; var depList = db.UserDepartments.Where(m => m.UserId == currentUser.Id).Select(m => m.DepartmentId); IQueryable <DocGroupFolder> list = null; DocCardFolder folder = (DocCardFolder)folderId; switch (folder) { case DocCardFolder.In: var allDocs = db.DocCards .Where(d => depList.Contains(d.DepartmentToId)) .Select(m => new { docGroup = m.DocumentType.DocumentGroup, isNew = (m.DocumentStatus.Value == "1" ? 1 : 0) }); list = allDocs.GroupBy(m => m.docGroup) .Select(g => new DocGroupFolder { id = g.Key.Id, name = g.Key.DisplayName, badge = g.Sum(s => s.isNew) }) .OrderBy(d => d.name); break; case DocCardFolder.Out: list = db.DocCards .Where(d => depList.Contains(d.DepartmentFromId)) .Select(d => d.DocumentType.DocumentGroup) .Distinct() .Select(d => new DocGroupFolder { id = d.Id, name = d.DisplayName, badge = 0 }) .OrderBy(d => d.name); break; default: break; } return(Json(list)); } catch (Exception ex) { return(BadRequest(ExceptionTools.GetExceptionMessage(ex))); } }
public IActionResult DocList(int folderId, int?groupId) { try { var currentUser = userManager.GetUserAsync(User).Result; var depList = db.UserDepartments.Where(m => m.UserId == currentUser.Id).Select(m => m.DepartmentId); IQueryable <DocCard> list = null; DocCardFolder folder = (DocCardFolder)folderId; switch (folder) { case DocCardFolder.In: list = db.DocCards.Where(d => depList.Contains(d.DepartmentToId)).OrderByDescending(d => d.DisplayName); break; case DocCardFolder.Out: list = db.DocCards.Where(d => depList.Contains(d.DepartmentFromId)).OrderByDescending(d => d.DisplayName); break; default: break; } if (list == null) { return(BadRequest("Ошибка определения списка документов")); } if (groupId.HasValue) { list = list.Where(m => m.DocumentType.DocumentGroupId == groupId.Value); } var ret = list.Select(d => new DocCardViewModel { Id = d.Id, AuthorId = d.AuthorId, AuthorName = d.Author.DisplayName, Barcode = d.Barcode, Content1 = d.Content1, Content2 = d.Content2, Content3 = d.Content3, Content4 = d.Content4, Content5 = d.Content5, ContractorFromId = d.ContractorFromId, ContractorFromName = d.ContractorFrom.DisplayName, ContractorToId = d.ContractorToId, ContractorToName = d.ContractorTo.DisplayName, CreatedBy = d.CreatedBy, CreatedDate = d.CreatedDate, DisplayName = d.DisplayName, DocDate = d.DocDate, DocNumber = d.DocNumber, DocumentStatusId = d.DocumentStatusId, DocumentStatusName = d.DocumentStatus.DisplayName, DocumentTypeId = d.DocumentTypeId, DocumentTypeName = d.DocumentType.DisplayName, LastUpdatedBy = d.LastUpdatedBy, LastUpdatedDate = d.LastUpdatedDate, DepartmentFromId = d.DepartmentFromId, DepartmentFromName = d.DepartmentFrom.DisplayName, DepartmentToId = d.DepartmentToId, DepartmentToName = d.DepartmentTo.DisplayName }).ToList(); return(Json(ret)); } catch (Exception ex) { return(BadRequest(ExceptionTools.GetExceptionMessage(ex))); } }