public Tuple <IQueryable <UserFileInfo>, int> FolderFiles(string filepath, QueryByPage pages) { var node = GetNode(filepath, false, null); var list = context.UserFileInfos.AsQueryable(); if (node == null) { list = list.Where(f => f.Parent == null).Where(f => f.Path == filepath); } else { list = list.Where(f => f.Parent.Id == node.Id); } list = list.Where(f => f.Name != null).OrderByDescending(f => f.Create); return(list.SplitPage <UserFileInfo>(pages)); }
public Tuple <IEnumerable <string>, int> Folders(string filepath, QueryByPage pages) { var node = GetNode(filepath, false, null); var list = context.UserFileInfos.AsQueryable(); if (node == null) { list = list.Where(f => f.Parent == null); } else { list = list.Where(f => f.Parent.Id == node.Id); } list = list.Where(f => f.Name == null).OrderByDescending(f => f.Create); var result = list.SplitPage(pages); return(new Tuple <IEnumerable <string>, int>(result.Item1.Select(c => c.Path), result.Item2)); }
private IEnumerable <GradePhySubject> GetSubjects(PhyGradeQueryDataModel subject, UserGradeBaseInfo baseUser, QueryByPage pages) => phyGradeServices.GetSubjectsByName(new QueryUserGradeViewModel() { Names = new QueryByString() { Arrays = subject.Subject?.Split("|") }, Groups = new QueryByString() { Value = subject.Group } }, baseUser, pages);
public IActionResult ListOfMyAudit(int pageIndex = 0, int pageSize = 20, string status = null, int?MainStatus = null, string actionStatus = null, string executeStatus = null, string entityType = null) { var pages = new QueryByPage() { PageIndex = pageIndex, PageSize = pageSize }; var c = currentUserService.CurrentUser; var item = new { pages, status, actionStatus, executeStatus }; var ua = userActionServices.Log(UserOperation.AuditApply, c.Id, $"本人审批:{JsonConvert.SerializeObject(item)}", true, ActionRank.Infomation); var statusArr = status?.Split("##")?.Select(i => Convert.ToInt32(i)); IQueryable <IAppliable> r = entityType == "vacation"? context.AppliesDb:context.AppliesIndayDb; //.Where(a => a.NowAuditStep.MembersFitToAudit.Contains(c.Id)); if (statusArr != null && statusArr.Any()) { r = r.Where(a => statusArr.Contains((int)a.Status)); // 查出所有状态符合的 } if (MainStatus != null) { r = r.Where(a => (int)a.MainStatus == MainStatus); } r = r.Where(a => a.ApplyAllAuditStep.Any(s => s.MembersFitToAudit.Contains(c.Id))); // 查出所有涉及本人的 if (executeStatus != null) { _ = int.TryParse(executeStatus, out var executeStatusInt); r = r.Where(a => (int)a.ExecuteStatus == executeStatusInt); } if (actionStatus != null) { switch (actionStatus.ToLower()) { case "accept": { r = r.Where(a => a.Response.Any(res => res.AuditingBy.Id == c.Id && res.Status == Auditing.Accept)); break; } case "deny": { r = r.Where(a => a.Response.Any(res => res.AuditingBy.Id == c.Id && res.Status == Auditing.Denied)); break; } case "unreceive": { r = r.Where(a => a.Status == AuditStatus.AcceptAndWaitAdmin || a.Status == AuditStatus.Auditing); // 当前处于审批中的 r = r.Where(a => a.Response.All(res => res.AuditingBy.Id != c.Id)); // 我没有进行审批的 r = r.Where(a => a.NowAuditStep != null).Where(a => !a.NowAuditStep.MembersFitToAudit.Contains(c.Id)); // 并且当前页不该我审批的 break; } case "received": { r = r.Where(a => a.Status == AuditStatus.AcceptAndWaitAdmin || a.Status == AuditStatus.Auditing); // 当前处于审批中的 r = r.Where(a => a.NowAuditStep != null).Where(a => a.NowAuditStep.MembersFitToAudit.Contains(c.Id)); // 并且当前页该我审批的 r = r.Where(a => !a.NowAuditStep.MembersAcceptToAudit.Contains(c.Id)); // 并且当前我没有审核的 break; } default: return(new JsonResult(ActionStatusMessage.ApplyMessage.Operation.Default)); } } //r = r.Where(a => !a.NowAuditStep.MembersAcceptToAudit.Contains(c.Id)); var list = r.OrderByDescending(a => a.Create).ThenByDescending(a => a.Status); var result = list.SplitPage(pages); var ids = result.Item1.Select(i => i.Id); if (entityType == "vacation") { var result_items = result.Item1.ToList()?.Select(a => a.ToSummaryDto(((DAL.Entities.ApplyInfo.Apply)a).RequestInfo)); var f_result = new EntitiesListDataModel <ApplySummaryDto <ApplyRequest> >(result_items, result.Item2); return(new JsonResult(f_result)); } else { var result_items = result.Item1.ToList()?.Select(a => a.ToSummaryDto(((ApplyInday)a).RequestInfo)); var f_result = new EntitiesListDataModel <ApplySummaryDto <ApplyIndayRequest> >(result_items, result.Item2); return(new JsonResult(f_result)); } }
public IActionResult ListOfSelf(string id, int pageIndex = 0, int pageSize = 20, int?MainStatus = null, DateTime?start = null, DateTime?end = null, string entityType = null) { var pages = new QueryByPage() { PageIndex = pageIndex, PageSize = pageSize }; if (start == null) { start = new DateTime(DateTime.Today.XjxtNow().Year, 1, 1); } if (end == null) { end = DateTime.Today.XjxtNow(); } end = end.Value.AddDays(1); var currentUser = currentUserService.CurrentUser; var c = id == null ? currentUser : usersService.GetById(id); if (c == null) { return(new JsonResult(c.NotExist())); } var item = new { pages, id, start, end }; var ua = userActionServices.Log(UserOperation.AuditApply, c.Id, $"{entityType}-本人申请:{JsonConvert.SerializeObject(item)}", false, ActionRank.Infomation); if (id != null && id != currentUser.Id) { if (!userActionServices.Permission(currentUser.Application.Permission, DictionaryAllPermission.Apply.Default, Operation.Query, currentUser.Id, c.CompanyInfo.CompanyCode, $"{c.Id}的申请")) { return(new JsonResult(ActionStatusMessage.Account.Auth.Invalid.Default)); } } if (entityType == "vacation") { var list = context.AppliesDb .Where(a => a.BaseInfo.FromId == c.Id) .Where(a => a.RequestInfo.StampLeave >= start) .Where(a => a.RequestInfo.StampLeave <= end); if (MainStatus != null) { list = list.Where(a => (int)a.MainStatus == MainStatus); } list = list.OrderByDescending(a => a.RequestInfo.StampLeave).ThenByDescending(a => a.Status); var result = list.SplitPage(pages); userActionServices.Status(ua, true); return(new JsonResult(new EntitiesListViewModel <ApplySummaryDto <ApplyRequest> >(result.Item1.ToList()?.Select(a => a.ToSummaryDto(a.RequestInfo)), result.Item2))); } else { var list = context.AppliesIndayDb .Where(a => a.BaseInfo.FromId == c.Id) .Where(a => a.RequestInfo.StampLeave >= start) .Where(a => a.RequestInfo.StampLeave <= end); if (MainStatus != null) { list = list.Where(a => (int)a.MainStatus == MainStatus); } list = list.OrderByDescending(a => a.RequestInfo.StampLeave).ThenByDescending(a => a.Status); var result = list.SplitPage(pages); userActionServices.Status(ua, true); return(new JsonResult(new EntitiesListViewModel <ApplySummaryDto <ApplyIndayRequest> >(result.Item1.ToList()?.Select(a => a.ToSummaryDto(a.RequestInfo)), result.Item2))); } }
public static Tuple <IQueryable <TSource>, int> SplitPage <TSource>(this IQueryable <TSource> model, QueryByPage pages) { if (model == null) { return(null); } pages = pages.ValidSplitPage(); var totalCount = model.Count(); var res = pages.PageSize < 0 || pages.PageIndex < 0 ? model : model.Skip(pages.PageIndex * pages.PageSize).Take(pages.PageSize); return(new Tuple <IQueryable <TSource>, int>(res, totalCount)); }
public IEnumerable <GradePhySubject> GetSubjectsByName(QueryUserGradeViewModel model, UserGradeBaseInfo userBase, QueryByPage pages) { if (model == null) { model = new QueryUserGradeViewModel(); } var has = model.Names?.Arrays?.Any() ?? false; if (!has) { model.Names = new QueryByString() { Arrays = new List <string>() { "*" } } } ; var group = model.Groups?.Value; var subjectN = model.Names.Arrays; var result = new List <GradePhySubject>(); foreach (var sn in subjectN) { var list = _context.GradePhySubjects.AsQueryable(); if (sn != "*") { list = list.Where(s => s.Name == sn); } if (group != null) { list = list.Where(s => s.Group == group); } var r = list.GetSubjectsByUser(userBase).SplitPage(pages); result.AddRange(r.Item1); } return(result); }