public BaseResponse <GetOrganListResult> GetOrganList(GetOrganInfoListParameter parameter) { if (Validate(parameter)) { return(organManager.GetOrganList(parameter)); } else { BaseResponse <GetOrganListResult> response = new BaseResponse <GetOrganListResult>(); response.IsSuccessful = false; response.Reason = "JWT_ERR"; return(response); } }
public BaseResponse <GetOrganListResult> GetOrganList(GetOrganInfoListParameter parameter) { return(organManager.GetOrganList(parameter)); }
public BaseResponse <GetOrganListResult> GetOrganList(GetOrganInfoListParameter parameter) { BaseResponse <GetOrganListResult> response = new BaseResponse <GetOrganListResult>(); GetOrganListResult result = new GetOrganListResult(); if (string.IsNullOrEmpty(parameter.Sort)) { parameter.Sort = "OrganCode"; } if (string.IsNullOrEmpty(parameter.Order)) { parameter.Order = "asc"; } if (parameter.Page == 0) { parameter.Page = 1; } if (parameter.PageSize == 0) { parameter.PageSize = 10; } try { using (iCMSDbContext dbContext = new iCMSDbContext()) { var organQuerable = dbContext.Organizations.Where(t => !t.IsDeleted); if (parameter.OrganTypeID.HasValue && parameter.OrganTypeID.Value > 0) { organQuerable = organQuerable.Where(t => t.OrganTypeID == parameter.OrganTypeID.Value); } if (!string.IsNullOrEmpty(parameter.Keyword)) { string matchedWord = parameter.Keyword.ToUpper(); organQuerable = organQuerable.Where(t => t.OrganCode.ToUpper().Contains(matchedWord) || t.OrganFullName.ToUpper().Contains(matchedWord)); } var organListLinq = from organ in organQuerable join organType in dbContext.MainOrganTypes.Where(t => !t.IsDeleted) on organ.OrganTypeID equals organType.OrganTypeID into group1 from g1 in group1 //join category in dbContext.OrganCategories.Where(t => !t.IsDeleted) on g1.CategoryID equals category.CategoryID //into group2 //from g2 in group2 join item in dbContext.Officers.Where(t => !t.IsDeleted && t.IsOnService).GroupBy(t => t.OrganizationID) on organ.OrganID equals item.Key into group3 from g3 in group3.DefaultIfEmpty() select new OrganInfo { OrganID = organ.OrganID, OrganCode = organ.OrganCode, OrganFullName = organ.OrganFullName, OrganShortName = organ.OrganShortName, OrganTypeID = organ.OrganTypeID, OrganTypeName = g1.OrganTypeName, //OrganCategoryID = g2.CategoryID, //OrganCategoryName = g2.CategoryName, OfficerQuanlity = g3.Count(), AddDate = organ.AddDate, AreaID = organ.AreaID }; ListSortDirection sortOrder = parameter.Order.ToLower().Equals("asc") ? ListSortDirection.Ascending : ListSortDirection.Descending; PropertySortCondition[] sortList = new PropertySortCondition[] { new PropertySortCondition(parameter.Sort, sortOrder), new PropertySortCondition("OrganID", sortOrder), }; organListLinq = organListLinq.OrderBy(sortList); int count = organListLinq.Count(); if (parameter.Page > -1) { organListLinq = organListLinq .Skip((parameter.Page - 1) * parameter.PageSize) .Take(parameter.PageSize); } result.OrganInfoList.AddRange(organListLinq.ToList()); result.Total = count; response.Result = result; #region 操作日志 new LogManager().AddOperationLog(parameter.CurrentUserID, "获取部门列表", parameter.RequestIP); #endregion return(response); } } catch (Exception e) { response.IsSuccessful = false; response.Reason = e.Message; return(response); } }
public BaseResponse <GetOrganListResult> GetOrganList(GetOrganInfoListParameter parameter) { BaseResponse <GetOrganListResult> response = new BaseResponse <GetOrganListResult>(); GetOrganListResult result = new GetOrganListResult(); try { using (iCMSDbContext dbContext = new iCMSDbContext()) { var organQuerable = dbContext.Organizations.Where(t => !t.IsDeleted); if (parameter.OrganTypeID.HasValue && parameter.OrganTypeID.Value > 0) { organQuerable = organQuerable.Where(t => t.OrganTypeID == parameter.OrganTypeID.Value); } if (!string.IsNullOrEmpty(parameter.Keyword)) { organQuerable = organQuerable.Where(t => t.OrganCode.ToUpper().Equals(parameter.Keyword.ToUpper()) || t.OrganFullName.ToUpper().Equals(parameter.Keyword.ToUpper())); } var organListLinq = from organ in organQuerable join organType in dbContext.OrganTypes on organ.OrganTypeID equals organType.OrganTypeID into group1 from g1 in group1 join category in dbContext.OrganCategories on g1.CategoryID equals category.CategoryID into group2 from g2 in group2 join item in dbContext.Officers.GroupBy(t => t.OrganizationID) on organ.OrganID equals item.Key into group3 from g3 in group3 select new OrganInfo { OrganID = organ.OrganID, OrganCode = organ.OrganCode, OrganFullName = organ.OrganFullName, OrganTypeID = organ.OrganTypeID, OrganTypeName = g1.OrganTypeName, OrganCategoryID = g2.CategoryID, OrganCategoryName = g2.CategoryName, OfficerQuanlity = g3.Count(), AddDate = organ.AddDate }; ListSortDirection sortOrder = parameter.Order.ToLower().Equals("asc") ? ListSortDirection.Ascending : ListSortDirection.Descending; PropertySortCondition[] sortList = new PropertySortCondition[] { new PropertySortCondition(parameter.Sort, sortOrder), new PropertySortCondition("UserID", sortOrder), }; organListLinq = organListLinq.OrderBy(sortList); int count = organQuerable.Count(); if (parameter.Page > -1) { organListLinq = organListLinq .Skip((parameter.Page - 1) * parameter.PageSize) .Take(parameter.PageSize); } result.OrganInfoList.AddRange(organListLinq.ToList()); result.Total = count; response.Result = result; return(response); } } catch (Exception e) { response.IsSuccessful = false; response.Reason = e.Message; return(response); } }