/// <summary> /// 升级的校验 /// </summary> /// <param name="organization"></param> /// <returns></returns> private OperationResult ValidateUpdate(DetailedOrganizationDTO organization, out OrganizationDAO organizationDao, out OrganizationAttributeDAO organizationAttributeDao) { OperationResult result = new OperationResult(true); organizationDao = null; organizationAttributeDao = null; if (organization == null) { result.Success = false; result.Messages.Add("传入参数不能为空!"); return(result); } if (string.IsNullOrWhiteSpace(organization.Id)) { result.Success = false; result.Messages.Add("id 不能为空"); return(result); } var filter = new OrganizationFilter(); filter.Id = organization.Id; filter.IsActive = true; organizationDao = _dal.GetOrganization(filter); organizationAttributeDao = _dal.GetOrganizationAttribute(filter); //组织不存在 if (organizationDao == null || organizationAttributeDao == null) { result.Success = false; result.Messages.Add("组织不存在"); return(result); } OperationResult dataValidateResult = Validate(organization, true); if (!dataValidateResult.Success) { result.Success = false; result.Messages.AddRange(dataValidateResult.Messages); } #region 向导部分校验 OperationResult validateWizardStepResult = ValidateWizardSetp(organization, organizationAttributeDao); if (!validateWizardStepResult.Success) { result.Success = false; result.Messages.AddRange(validateWizardStepResult.Messages); } #endregion return(result); }
/// <summary> /// 转换为DTO /// </summary> /// <param name="organization"></param> /// <returns></returns> public OrganizationDTO Convert(OrganizationDAO organization) { if (organization == null) { return(null); } OrganizationDTO dto = new OrganizationDTO(); dto.Id = organization.MItemID; dto.DisplayName = organization.MName; dto.LegalTradingName = organization.MLegalTradingName; dto.MasterId = organization.MMasterID; dto.VersionId = organization.MVersionID; dto.OrgTypeId = organization.MOrgTypeID; dto.PostalNo = organization.MPostalNo; dto.RegionId = organization.MRegionID; dto.StateId = organization.MStateID; dto.CountryId = organization.MCountryID; dto.CityId = organization.MCityID; dto.Street = organization.MStreet; dto.IsActive = organization.MIsActive; return(dto); }
/// <summary> /// 设置更新的值 /// </summary> /// <param name="organizationDTO"></param> /// <param name="organization"></param> private void SetUpdateValue(DetailedOrganizationDTO organization, OrganizationDAO organizationDao, OrganizationAttributeDAO organizationAttribute) { organizationDao.MName = string.IsNullOrWhiteSpace(organization.DisplayName) ? organizationDao.MName : organization.DisplayName; organizationDao.MLegalTradingName = string.IsNullOrWhiteSpace(organization.LegalTradingName) ? organizationDao.MLegalTradingName : organization.LegalTradingName; organizationAttribute.MBaseCurrencyID = string.IsNullOrWhiteSpace(organization.BaseCurrencyId) ? organizationAttribute.MBaseCurrencyID : organization.BaseCurrencyId; }
/// <summary> /// 创建一个组织 /// </summary> /// <param name="organization"></param> /// <returns></returns> public OrganizationDTO CreateOrganization(OrganizationDTO organization) { OrganizationDAO dao = organization.Convert(); dao.MItemID = GuidUtility.GetGuid(); dao.MIsActive = false; dao.MIsDelete = false; OrganizationAttributeDAO attributeDao = new OrganizationAttributeDAO(); attributeDao.MItemID = GuidUtility.GetGuid(); attributeDao.MOrgID = dao.MItemID; attributeDao.MConversionDate = DateTime.Now; attributeDao.MExpiredDate = DateTime.Now.AddDays(30); attributeDao.MRegProgress = (int)WizardStepType.Created; attributeDao.MIsActive = true; OrganizationUserRelationDAO organizationUserRelation = new OrganizationUserRelationDAO(); organizationUserRelation.MItemID = GuidUtility.GetGuid(); organizationUserRelation.MOrgID = dao.MItemID; organizationUserRelation.MUserID = GetCurrentUserId(); organizationUserRelation.MIsActive = true; var client = _orm.GetSqlClient <SqlSugarClient>(); try { client.BeginTran(); client.Insertable(dao).ExecuteCommand(); client.Insertable(attributeDao).ExecuteCommand(); client.Insertable(organizationUserRelation).ExecuteCommand(); client.CommitTran(); organization.Id = dao.MItemID; return(organization); } catch (Exception ex) { client.RollbackTran(); throw ex; } }
/// <summary> /// /// </summary> /// <param name="OrganizationId"></param> /// <param name="AppUserService"></param> /// <param name="OrganizationService"></param> /// <param name="CurrentContext"></param> /// <param name="DataContext"></param> /// <returns> AppUserIds, OrganizationIds </returns> protected async Task <(List <long>, List <long>)> FilterOrganizationAndUser(IdFilter OrganizationId, IAppUserService AppUserService, IOrganizationService OrganizationService, ICurrentContext CurrentContext, DataContext DataContext) { List <long> OrganizationIds = await FilterOrganization(OrganizationService, CurrentContext); List <OrganizationDAO> OrganizationDAOs = await DataContext.Organization.Where(o => o.DeletedAt == null && (OrganizationIds.Count == 0 || OrganizationIds.Contains(o.Id))).ToListAsync(); OrganizationDAO OrganizationDAO = null; if (OrganizationId?.Equal != null) { OrganizationDAO = await DataContext.Organization.Where(o => o.Id == OrganizationId.Equal.Value).FirstOrDefaultAsync(); OrganizationDAOs = OrganizationDAOs.Where(o => o.Path.StartsWith(OrganizationDAO.Path)).ToList(); } OrganizationIds = OrganizationDAOs.Select(o => o.Id).ToList(); List <long> AppUserIds = await FilterAppUser(AppUserService, OrganizationService, CurrentContext); return(AppUserIds, OrganizationIds); }
/// <summary> /// 转换为DAO /// </summary> /// <returns></returns> public OrganizationDAO Convert() { OrganizationDAO dao = new OrganizationDAO(); dao.MItemID = Id; dao.MName = DisplayName; dao.MLegalTradingName = LegalTradingName; dao.MMasterID = MasterId; dao.MVersionID = VersionId; dao.MOrgTypeID = OrgTypeId; dao.MPostalNo = PostalNo; dao.MRegionID = RegionId; dao.MStateID = StateId; dao.MCountryID = CountryId; dao.MCityID = CityId; dao.MStreet = Street; return(dao); }
/// <summary> /// 更新组织状态 /// </summary> /// <param name="id"></param> /// <returns></returns> public OperationResult UpdateOrganization(string id, bool isActive) { OperationResult result = new OperationResult(); if (string.IsNullOrWhiteSpace(id)) { result.Success = false; result.Messages.Add("参数id为空"); return(result); } var filter = new OrganizationFilter() { IsActive = !isActive, Id = id }; OrganizationDAO organization = _dal.GetOrganization(filter); if (organization == null) { result.Success = false; result.Messages.Add($"Organization is not exist:{id}"); return(result); } organization.MIsActive = isActive; result.Success = _dal.Update(organization); //给组织分配业务数据库 if (result.Success) { DatabaseRouter.SetOrganizationStorageRelation(organization.MItemID); } return(result); }
/// <summary> /// 更新组织信息 /// </summary> /// <param name="organization"></param> /// <param name="organizationAttribute"></param> /// <returns></returns> public bool Update(OrganizationDAO organization, OrganizationAttributeDAO organizationAttribute) { var client = _orm.GetSqlClient <SqlSugarClient>(); try { client.BeginTran(); client.GetSimpleClient <OrganizationDAO>().Update(organization); client.GetSimpleClient <OrganizationAttributeDAO>().Update(organizationAttribute); client.CommitTran(); return(true); } catch (Exception ex) { client.RollbackTran(); throw ex; } }
/// <summary> /// 新增组织部门 /// </summary> /// <param name="data">组织结构实体数据集</param> /// <param name="nOpStaffId">操作员工编码</param> /// <param name="strOpStaffName">操作员工姓名</param> /// <param name="strErrText">出错信息</param> /// <returns>成功返回True,否则返回False</returns> public bool InsertOrganization(Organization data, long nOpStaffId, string strOpStaffName, out string strErrText) { try { using (TransactionScope transScope = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(2, 0, 0))) { using (OrganizationDAO dao = new OrganizationDAO()) { if (!dao.InsertOrganization(data, nOpStaffId, strOpStaffName, out strErrText)) { return(false); } } transScope.Complete(); } return(true); } catch (Exception e) { strErrText = e.Message; return(false); } }
/// <summary> /// 读取指定组织部门记录 /// </summary> /// <param name="nOrganId"></param> /// <param name="nOpStaffId"></param> /// <param name="strOpStaffName"></param> /// <param name="strErrText"></param> /// <returns></returns> public Organization LoadOrganization(long nOrganId, long nOpStaffId, string strOpStaffName, out string strErrText) { try { Organization dataResult = null; strErrText = String.Empty; using (TransactionScope transScope = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(2, 0, 0))) { using (OrganizationDAO dao = new OrganizationDAO()) { dataResult = dao.LoadOrganization(nOrganId, nOpStaffId, strOpStaffName, out strErrText); } transScope.Complete(); } return(dataResult); } catch (Exception e) { strErrText = e.Message; return(null); } }
private IQueryable<AppUserDAO> OrFilter(IQueryable<AppUserDAO> query, AppUserFilter filter) { if (filter.OrFilter == null || filter.OrFilter.Count == 0) return query; IQueryable<AppUserDAO> initQuery = query.Where(q => false); foreach (AppUserFilter AppUserFilter in filter.OrFilter) { IQueryable<AppUserDAO> queryable = query; if (AppUserFilter.Id != null) queryable = queryable.Where(q => q.Id, AppUserFilter.Id); if (AppUserFilter.Username != null) queryable = queryable.Where(q => q.Username, AppUserFilter.Username); if (AppUserFilter.DisplayName != null) queryable = queryable.Where(q => q.DisplayName, AppUserFilter.DisplayName); if (AppUserFilter.Address != null) queryable = queryable.Where(q => q.Address, AppUserFilter.Address); if (AppUserFilter.Email != null) queryable = queryable.Where(q => q.Email, AppUserFilter.Email); if (AppUserFilter.Phone != null) queryable = queryable.Where(q => q.Phone, AppUserFilter.Phone); if (AppUserFilter.StatusId != null) queryable = queryable.Where(q => q.StatusId, AppUserFilter.StatusId); if (AppUserFilter.SexId != null) queryable = queryable.Where(q => q.SexId, AppUserFilter.SexId); if (AppUserFilter.Birthday != null) queryable = queryable.Where(q => q.Birthday, AppUserFilter.Birthday); if (AppUserFilter.Department != null) queryable = queryable.Where(q => q.Department, AppUserFilter.Department); if (AppUserFilter.OrganizationId != null) { if (AppUserFilter.OrganizationId.Equal != null) { OrganizationDAO OrganizationDAO = DataContext.Organization .Where(o => o.Id == AppUserFilter.OrganizationId.Equal.Value).FirstOrDefault(); queryable = queryable.Where(q => q.Organization.Path.StartsWith(OrganizationDAO.Path)); } if (AppUserFilter.OrganizationId.NotEqual != null) { OrganizationDAO OrganizationDAO = DataContext.Organization .Where(o => o.Id == AppUserFilter.OrganizationId.NotEqual.Value).FirstOrDefault(); queryable = queryable.Where(q => !q.Organization.Path.StartsWith(OrganizationDAO.Path)); } if (AppUserFilter.OrganizationId.In != null) { List<OrganizationDAO> OrganizationDAOs = DataContext.Organization .Where(o => o.DeletedAt == null && o.StatusId == 1).ToList(); List<OrganizationDAO> Parents = OrganizationDAOs.Where(o => AppUserFilter.OrganizationId.In.Contains(o.Id)).ToList(); List<OrganizationDAO> Branches = OrganizationDAOs.Where(o => Parents.Any(p => o.Path.StartsWith(p.Path))).ToList(); List<long> Ids = Branches.Select(o => o.Id).ToList(); queryable = queryable.Where(q => Ids.Contains(q.OrganizationId)); } if (AppUserFilter.OrganizationId.NotIn != null) { List<OrganizationDAO> OrganizationDAOs = DataContext.Organization .Where(o => o.DeletedAt == null && o.StatusId == 1).ToList(); List<OrganizationDAO> Parents = OrganizationDAOs.Where(o => AppUserFilter.OrganizationId.NotIn.Contains(o.Id)).ToList(); List<OrganizationDAO> Branches = OrganizationDAOs.Where(o => Parents.Any(p => o.Path.StartsWith(p.Path))).ToList(); List<long> Ids = Branches.Select(o => o.Id).ToList(); queryable = queryable.Where(q => !Ids.Contains(q.OrganizationId)); } } initQuery = initQuery.Union(queryable); } return initQuery; }
private IQueryable <KpiItemDAO> DynamicFilter(IQueryable <KpiItemDAO> query, KpiItemFilter filter) { if (filter == null) { return(query.Where(q => false)); } query = query.Where(q => !q.DeletedAt.HasValue); if (filter.CreatedAt != null) { query = query.Where(q => q.CreatedAt, filter.CreatedAt); } if (filter.UpdatedAt != null) { query = query.Where(q => q.UpdatedAt, filter.UpdatedAt); } if (filter.Id != null) { query = query.Where(q => q.Id, filter.Id); } if (filter.OrganizationId != null) { if (filter.OrganizationId.Equal != null) { OrganizationDAO OrganizationDAO = DataContext.Organization .Where(o => o.Id == filter.OrganizationId.Equal.Value).FirstOrDefault(); query = query.Where(q => q.Organization.Path.StartsWith(OrganizationDAO.Path)); } if (filter.OrganizationId.NotEqual != null) { OrganizationDAO OrganizationDAO = DataContext.Organization .Where(o => o.Id == filter.OrganizationId.NotEqual.Value).FirstOrDefault(); query = query.Where(q => !q.Organization.Path.StartsWith(OrganizationDAO.Path)); } if (filter.OrganizationId.In != null) { List <OrganizationDAO> OrganizationDAOs = DataContext.Organization .Where(o => o.DeletedAt == null && o.StatusId == 1).ToList(); List <OrganizationDAO> Parents = OrganizationDAOs.Where(o => filter.OrganizationId.In.Contains(o.Id)).ToList(); List <OrganizationDAO> Branches = OrganizationDAOs.Where(o => Parents.Any(p => o.Path.StartsWith(p.Path))).ToList(); List <long> Ids = Branches.Select(o => o.Id).ToList(); query = query.Where(q => Ids.Contains(q.OrganizationId)); } if (filter.OrganizationId.NotIn != null) { List <OrganizationDAO> OrganizationDAOs = DataContext.Organization .Where(o => o.DeletedAt == null && o.StatusId == 1).ToList(); List <OrganizationDAO> Parents = OrganizationDAOs.Where(o => filter.OrganizationId.NotIn.Contains(o.Id)).ToList(); List <OrganizationDAO> Branches = OrganizationDAOs.Where(o => Parents.Any(p => o.Path.StartsWith(p.Path))).ToList(); List <long> Ids = Branches.Select(o => o.Id).ToList(); query = query.Where(q => !Ids.Contains(q.OrganizationId)); } } if (filter.KpiYearId != null) { query = query.Where(q => q.KpiYearId, filter.KpiYearId); } if (filter.KpiPeriodId != null) { query = query.Where(q => q.KpiPeriodId, filter.KpiPeriodId); } if (filter.StatusId != null) { query = query.Where(q => q.StatusId, filter.StatusId); } if (filter.AppUserId != null) { query = query.Where(q => q.EmployeeId, filter.AppUserId); } if (filter.CreatorId != null) { query = query.Where(q => q.CreatorId, filter.CreatorId); } query = OrFilter(query, filter); return(query); }
/// <summary> /// 更新组织 /// </summary> /// <param name="organization"></param> /// <returns></returns> public bool Update(OrganizationDAO organization) { var result = _orm.GetSqlClient <SqlSugarClient>().GetSimpleClient <OrganizationDAO>().Update(organization); return(result); }
/// <summary> Retrieves Entity rows in a datatable which match the specified filter. It will always create a new connection to the database.</summary> /// <param name="selectFilter">A predicate or predicate expression which should be used as filter for the entities to retrieve.</param> /// <param name="maxNumberOfItemsToReturn"> The maximum number of items to return with this retrieval query.</param> /// <param name="sortClauses">The order by specifications for the sorting of the resultset. When not specified, no sorting is applied.</param> /// <param name="relations">The set of relations to walk to construct to total query.</param> /// <param name="pageNumber">The page number to retrieve.</param> /// <param name="pageSize">The page size of the page to retrieve.</param> /// <returns>DataTable with the rows requested.</returns> public static DataTable GetMultiAsDataTable(IPredicate selectFilter, long maxNumberOfItemsToReturn, ISortExpression sortClauses, IRelationCollection relations, int pageNumber, int pageSize) { OrganizationDAO dao = DAOFactory.CreateOrganizationDAO(); return(dao.GetMultiAsDataTable(maxNumberOfItemsToReturn, sortClauses, selectFilter, relations, pageNumber, pageSize)); }
private IQueryable <OrganizationDAO> DynamicFilter(IQueryable <OrganizationDAO> query, OrganizationFilter filter) { if (filter == null) { return(query.Where(q => false)); } query = query.Where(q => !q.DeletedAt.HasValue); if (filter.Id != null) { if (filter.Id.Equal != null) { OrganizationDAO OrganizationDAO = DataContext.Organization .Where(o => o.Id == filter.Id.Equal.Value).FirstOrDefault(); query = query.Where(q => q.Path.StartsWith(OrganizationDAO.Path)); } if (filter.Id.NotEqual != null) { OrganizationDAO OrganizationDAO = DataContext.Organization .Where(o => o.Id == filter.Id.NotEqual.Value).FirstOrDefault(); query = query.Where(q => !q.Path.StartsWith(OrganizationDAO.Path)); } if (filter.Id.In != null) { List <OrganizationDAO> OrganizationDAOs = DataContext.Organization .Where(o => o.DeletedAt == null && o.StatusId == 1).ToList(); List <OrganizationDAO> Parents = OrganizationDAOs.Where(o => filter.Id.In.Contains(o.Id)).ToList(); List <OrganizationDAO> Branches = OrganizationDAOs.Where(o => Parents.Any(p => o.Path.StartsWith(p.Path))).ToList(); List <long> Ids = Branches.Select(o => o.Id).ToList(); query = query.Where(q => Ids.Contains(q.Id)); } if (filter.Id.NotIn != null) { List <OrganizationDAO> OrganizationDAOs = DataContext.Organization .Where(o => o.DeletedAt == null && o.StatusId == 1).ToList(); List <OrganizationDAO> Parents = OrganizationDAOs.Where(o => filter.Id.NotIn.Contains(o.Id)).ToList(); List <OrganizationDAO> Branches = OrganizationDAOs.Where(o => Parents.Any(p => o.Path.StartsWith(p.Path))).ToList(); List <long> Ids = Branches.Select(o => o.Id).ToList(); query = query.Where(q => !Ids.Contains(q.Id)); } } if (filter.Code != null) { query = query.Where(q => q.Code, filter.Code); } if (filter.Name != null) { query = query.Where(q => q.Name, filter.Name); } if (filter.ParentId != null) { if (filter.ParentId.Equal != null) { OrganizationDAO OrganizationDAO = DataContext.Organization .Where(o => o.Id == filter.ParentId.Equal.Value).FirstOrDefault(); query = query.Where(q => q.Path.StartsWith(OrganizationDAO.Path)); } if (filter.ParentId.NotEqual != null) { OrganizationDAO OrganizationDAO = DataContext.Organization .Where(o => o.Id == filter.ParentId.NotEqual.Value).FirstOrDefault(); query = query.Where(q => !q.Path.StartsWith(OrganizationDAO.Path)); } if (filter.ParentId.In != null) { List <OrganizationDAO> OrganizationDAOs = DataContext.Organization .Where(o => o.DeletedAt == null && o.StatusId == 1).ToList(); List <OrganizationDAO> Parents = OrganizationDAOs.Where(o => filter.ParentId.In.Contains(o.Id)).ToList(); List <OrganizationDAO> Branches = OrganizationDAOs.Where(o => Parents.Any(p => o.Path.StartsWith(p.Path))).ToList(); List <long> Ids = Branches.Select(o => o.Id).ToList(); query = query.Where(q => q.ParentId.HasValue && Ids.Contains(q.ParentId.Value)); } if (filter.ParentId.NotIn != null) { List <OrganizationDAO> OrganizationDAOs = DataContext.Organization .Where(o => o.DeletedAt == null && o.StatusId == 1).ToList(); List <OrganizationDAO> Parents = OrganizationDAOs.Where(o => filter.ParentId.NotIn.Contains(o.Id)).ToList(); List <OrganizationDAO> Branches = OrganizationDAOs.Where(o => Parents.Any(p => o.Path.StartsWith(p.Path))).ToList(); List <long> Ids = Branches.Select(o => o.Id).ToList(); query = query.Where(q => q.ParentId.HasValue && !Ids.Contains(q.ParentId.Value)); } } if (filter.Path != null) { query = query.Where(q => q.Path, filter.Path); } if (filter.Level != null) { query = query.Where(q => q.Level, filter.Level); } if (filter.StatusId != null) { query = query.Where(q => q.StatusId, filter.StatusId); } if (filter.Phone != null) { query = query.Where(q => q.Phone, filter.Phone); } if (filter.Email != null) { query = query.Where(q => q.Email, filter.Email); } if (filter.Address != null) { query = query.Where(q => q.Address, filter.Address); } query = OrFilter(query, filter); return(query); }
private IQueryable <DirectSalesOrderDAO> DynamicFilter(IQueryable <DirectSalesOrderDAO> query, DirectSalesOrderFilter filter) { if (filter == null) { return(query.Where(q => false)); } if (filter.Id != null) { query = query.Where(q => q.Id, filter.Id); } if (filter.OrganizationId != null) { if (filter.OrganizationId.Equal != null) { OrganizationDAO OrganizationDAO = DataContext.Organization .Where(o => o.Id == filter.OrganizationId.Equal.Value).FirstOrDefault(); query = query.Where(q => q.Organization.Path.StartsWith(OrganizationDAO.Path)); } if (filter.OrganizationId.NotEqual != null) { OrganizationDAO OrganizationDAO = DataContext.Organization .Where(o => o.Id == filter.OrganizationId.NotEqual.Value).FirstOrDefault(); query = query.Where(q => !q.Organization.Path.StartsWith(OrganizationDAO.Path)); } if (filter.OrganizationId.In != null) { List <OrganizationDAO> OrganizationDAOs = DataContext.Organization .Where(o => o.DeletedAt == null && o.StatusId == 1).ToList(); List <OrganizationDAO> Parents = OrganizationDAOs.Where(o => filter.OrganizationId.In.Contains(o.Id)).ToList(); List <OrganizationDAO> Branches = OrganizationDAOs.Where(o => Parents.Any(p => o.Path.StartsWith(p.Path))).ToList(); List <long> Ids = Branches.Select(o => o.Id).ToList(); query = query.Where(q => Ids.Contains(q.OrganizationId)); } if (filter.OrganizationId.NotIn != null) { List <OrganizationDAO> OrganizationDAOs = DataContext.Organization .Where(o => o.DeletedAt == null && o.StatusId == 1).ToList(); List <OrganizationDAO> Parents = OrganizationDAOs.Where(o => filter.OrganizationId.NotIn.Contains(o.Id)).ToList(); List <OrganizationDAO> Branches = OrganizationDAOs.Where(o => Parents.Any(p => o.Path.StartsWith(p.Path))).ToList(); List <long> Ids = Branches.Select(o => o.Id).ToList(); query = query.Where(q => !Ids.Contains(q.OrganizationId)); } } if (filter.Code != null) { query = query.Where(q => q.Code, filter.Code); } if (filter.BuyerStoreId != null) { query = query.Where(q => q.BuyerStoreId, filter.BuyerStoreId); } if (filter.PhoneNumber != null) { query = query.Where(q => q.PhoneNumber, filter.PhoneNumber); } if (filter.StoreAddress != null) { query = query.Where(q => q.StoreAddress, filter.StoreAddress); } if (filter.DeliveryAddress != null) { query = query.Where(q => q.DeliveryAddress, filter.DeliveryAddress); } if (filter.AppUserId != null) { query = query.Where(q => q.SaleEmployeeId, filter.AppUserId); } if (filter.OrderDate != null) { query = query.Where(q => q.OrderDate, filter.OrderDate); } if (filter.DeliveryDate != null) { query = query.Where(q => q.DeliveryDate, filter.DeliveryDate); } if (filter.EditedPriceStatusId != null) { query = query.Where(q => q.EditedPriceStatusId, filter.EditedPriceStatusId); } if (filter.Note != null) { query = query.Where(q => q.Note, filter.Note); } if (filter.RequestStateId != null) { query = query.Where(q => q.RequestStateId, filter.RequestStateId); } if (filter.SubTotal != null) { query = query.Where(q => q.SubTotal, filter.SubTotal); } if (filter.GeneralDiscountPercentage != null) { query = query.Where(q => q.GeneralDiscountPercentage, filter.GeneralDiscountPercentage); } if (filter.GeneralDiscountAmount != null) { query = query.Where(q => q.GeneralDiscountAmount, filter.GeneralDiscountAmount); } if (filter.PromotionCode != null && filter.PromotionCode.HasValue) { query = query.Where(q => q.PromotionCode, filter.PromotionCode); } if (filter.TotalTaxAmount != null) { query = query.Where(q => q.TotalTaxAmount, filter.TotalTaxAmount); } if (filter.Total != null) { query = query.Where(q => q.Total, filter.Total); } if (filter.StoreStatusId != null) { query = query.Where(q => q.BuyerStore.StoreStatusId, filter.StoreStatusId); } if (filter.CustomerId != null && filter.CustomerId.HasValue) { var StoreIds = DataContext.Store.Where(x => x.CustomerId, filter.CustomerId).Select(x => x.Id).ToList(); query = query.Where(x => StoreIds.Contains(x.BuyerStoreId)); } if (filter.CompanyId != null && filter.CompanyId.HasValue) { var CustomerIds = DataContext.Customer.Where(x => x.CompanyId, filter.CompanyId).Select(x => x.Id).ToList(); var StoreIds = DataContext.Store.Where(x => x.CustomerId.HasValue && CustomerIds.Contains(x.CustomerId.Value)).Select(x => x.Id).ToList(); query = query.Where(x => StoreIds.Contains(x.BuyerStoreId)); } query = OrFilter(query, filter); return(query); }
private IQueryable <DirectSalesOrderDAO> OrFilter(IQueryable <DirectSalesOrderDAO> query, DirectSalesOrderFilter filter) { if (filter.OrFilter == null || filter.OrFilter.Count == 0) { return(query); } IQueryable <DirectSalesOrderDAO> initQuery = query.Where(q => false); foreach (DirectSalesOrderFilter DirectSalesOrderFilter in filter.OrFilter) { IQueryable <DirectSalesOrderDAO> queryable = query; if (DirectSalesOrderFilter.UserId != null) { if (DirectSalesOrderFilter.UserId.Equal != null) { AppUserDAO AppUserDAO = DataContext.AppUser.Where(p => p.Id == DirectSalesOrderFilter.UserId.Equal).FirstOrDefault(); OrganizationDAO OrganizationDAO = DataContext.Organization .Where(o => o.Id == AppUserDAO.OrganizationId).FirstOrDefault(); queryable = queryable.Where(q => q.Creator.Organization.Path.StartsWith(OrganizationDAO.Path)); } if (DirectSalesOrderFilter.UserId.NotEqual != null) { AppUserDAO AppUserDAO = DataContext.AppUser.Where(p => p.Id == DirectSalesOrderFilter.UserId.NotEqual).FirstOrDefault(); OrganizationDAO OrganizationDAO = DataContext.Organization .Where(o => o.Id != AppUserDAO.OrganizationId).FirstOrDefault(); queryable = queryable.Where(q => !q.Creator.Organization.Path.StartsWith(OrganizationDAO.Path)); } } if (DirectSalesOrderFilter.AppUserId != null) { queryable = queryable.Where(q => q.CreatorId, DirectSalesOrderFilter.AppUserId); } if (DirectSalesOrderFilter.OrganizationId != null) { if (DirectSalesOrderFilter.OrganizationId.Equal != null) { OrganizationDAO OrganizationDAO = DataContext.Organization .Where(o => o.Id == DirectSalesOrderFilter.OrganizationId.Equal.Value).FirstOrDefault(); queryable = queryable.Where(q => q.Creator.Organization.Path.StartsWith(OrganizationDAO.Path)); } if (DirectSalesOrderFilter.OrganizationId.NotEqual != null) { OrganizationDAO OrganizationDAO = DataContext.Organization .Where(o => o.Id == DirectSalesOrderFilter.OrganizationId.NotEqual.Value).FirstOrDefault(); queryable = queryable.Where(q => !q.Creator.Organization.Path.StartsWith(OrganizationDAO.Path)); } if (DirectSalesOrderFilter.OrganizationId.In != null) { List <OrganizationDAO> OrganizationDAOs = DataContext.Organization .Where(o => o.DeletedAt == null && o.StatusId == 1).ToList(); List <OrganizationDAO> Parents = OrganizationDAOs.Where(o => DirectSalesOrderFilter.OrganizationId.In.Contains(o.Id)).ToList(); List <OrganizationDAO> Branches = OrganizationDAOs.Where(o => Parents.Any(p => o.Path.StartsWith(p.Path))).ToList(); List <long> Ids = Branches.Select(o => o.Id).ToList(); queryable = queryable.Where(q => Ids.Contains(q.Creator.OrganizationId)); } if (DirectSalesOrderFilter.OrganizationId.NotIn != null) { List <OrganizationDAO> OrganizationDAOs = DataContext.Organization .Where(o => o.DeletedAt == null && o.StatusId == 1).ToList(); List <OrganizationDAO> Parents = OrganizationDAOs.Where(o => DirectSalesOrderFilter.OrganizationId.NotIn.Contains(o.Id)).ToList(); List <OrganizationDAO> Branches = OrganizationDAOs.Where(o => Parents.Any(p => o.Path.StartsWith(p.Path))).ToList(); List <long> Ids = Branches.Select(o => o.Id).ToList(); queryable = queryable.Where(q => !Ids.Contains(q.Creator.OrganizationId)); } } //if (DirectSalesOrderFilter.OrganizationId != null) //{ // if (DirectSalesOrderFilter.OrganizationId.Equal != null) // { // OrganizationDAO OrganizationDAO = DataContext.Organization // .Where(o => o.Id == DirectSalesOrderFilter.OrganizationId.Equal.Value).FirstOrDefault(); // queryable = queryable.Where(q => q.Organization.Path.StartsWith(OrganizationDAO.Path)); // } // if (DirectSalesOrderFilter.OrganizationId.NotEqual != null) // { // OrganizationDAO OrganizationDAO = DataContext.Organization // .Where(o => o.Id == DirectSalesOrderFilter.OrganizationId.NotEqual.Value).FirstOrDefault(); // queryable = queryable.Where(q => !q.Organization.Path.StartsWith(OrganizationDAO.Path)); // } // if (DirectSalesOrderFilter.OrganizationId.In != null) // { // List<OrganizationDAO> OrganizationDAOs = DataContext.Organization // .Where(o => o.DeletedAt == null && o.StatusId == 1).ToList(); // List<OrganizationDAO> Parents = OrganizationDAOs.Where(o => DirectSalesOrderFilter.OrganizationId.In.Contains(o.Id)).ToList(); // List<OrganizationDAO> Branches = OrganizationDAOs.Where(o => Parents.Any(p => o.Path.StartsWith(p.Path))).ToList(); // List<long> Ids = Branches.Select(o => o.Id).ToList(); // queryable = queryable.Where(q => Ids.Contains(q.OrganizationId)); // } // if (DirectSalesOrderFilter.OrganizationId.NotIn != null) // { // List<OrganizationDAO> OrganizationDAOs = DataContext.Organization // .Where(o => o.DeletedAt == null && o.StatusId == 1).ToList(); // List<OrganizationDAO> Parents = OrganizationDAOs.Where(o => DirectSalesOrderFilter.OrganizationId.NotIn.Contains(o.Id)).ToList(); // List<OrganizationDAO> Branches = OrganizationDAOs.Where(o => Parents.Any(p => o.Path.StartsWith(p.Path))).ToList(); // List<long> Ids = Branches.Select(o => o.Id).ToList(); // queryable = queryable.Where(q => !Ids.Contains(q.OrganizationId)); // } //} initQuery = initQuery.Union(queryable); } return(initQuery); }
private IQueryable <KnowledgeArticleDAO> OrFilter(IQueryable <KnowledgeArticleDAO> query, KnowledgeArticleFilter filter) { if (filter.OrFilter == null || filter.OrFilter.Count == 0) { return(query); } IQueryable <KnowledgeArticleDAO> initQuery = query.Where(q => false); foreach (KnowledgeArticleFilter KnowledgeArticleFilter in filter.OrFilter) { IQueryable <KnowledgeArticleDAO> queryable = query; if (KnowledgeArticleFilter.AppUserId != null) { queryable = queryable.Where(q => q.CreatorId, KnowledgeArticleFilter.AppUserId); } //if (KnowledgeArticleFilter.OrganizationId != null) //{ // if (KnowledgeArticleFilter.OrganizationId.Equal != null) // { // OrganizationDAO OrganizationDAO = DataContext.Organization // .Where(o => o.Id == KnowledgeArticleFilter.OrganizationId.Equal.Value).FirstOrDefault(); // queryable = queryable.Where(q => q.KnowledgeArticleOrganizationMappings.Any(p => p.Organization.Path.StartsWith(OrganizationDAO.Path))); // } // if (KnowledgeArticleFilter.OrganizationId.NotEqual != null) // { // OrganizationDAO OrganizationDAO = DataContext.Organization // .Where(o => o.Id == KnowledgeArticleFilter.OrganizationId.NotEqual.Value).FirstOrDefault(); // queryable = queryable.Where(q => !q.KnowledgeArticleOrganizationMappings.Any(p => p.Organization.Path.StartsWith(OrganizationDAO.Path))); // } // if (KnowledgeArticleFilter.OrganizationId.In != null) // { // List<OrganizationDAO> OrganizationDAOs = DataContext.Organization // .Where(o => o.DeletedAt == null && o.StatusId == 1).ToList(); // List<OrganizationDAO> Parents = OrganizationDAOs.Where(o => KnowledgeArticleFilter.OrganizationId.In.Contains(o.Id)).ToList(); // List<OrganizationDAO> Branches = OrganizationDAOs.Where(o => Parents.Any(p => o.Path.StartsWith(p.Path))).ToList(); // List<long> Ids = Branches.Select(o => o.Id).ToList(); // foreach (var id in Ids) // { // queryable = queryable.Where(q => q.KnowledgeArticleOrganizationMappings.Any(p => Ids.Contains(p.OrganizationId))); // } // } // if (KnowledgeArticleFilter.OrganizationId.NotIn != null) // { // List<OrganizationDAO> OrganizationDAOs = DataContext.Organization // .Where(o => o.DeletedAt == null && o.StatusId == 1).ToList(); // List<OrganizationDAO> Parents = OrganizationDAOs.Where(o => KnowledgeArticleFilter.OrganizationId.NotIn.Contains(o.Id)).ToList(); // List<OrganizationDAO> Branches = OrganizationDAOs.Where(o => Parents.Any(p => o.Path.StartsWith(p.Path))).ToList(); // List<long> Ids = Branches.Select(o => o.Id).ToList(); // foreach (var id in Ids) // { // queryable = queryable.Where(q => q.KnowledgeArticleOrganizationMappings.Any(p => !Ids.Contains(p.OrganizationId))); // } // } //} if (KnowledgeArticleFilter.OrganizationId != null) { if (KnowledgeArticleFilter.OrganizationId.Equal != null) { OrganizationDAO OrganizationDAO = DataContext.Organization .Where(o => o.Id == KnowledgeArticleFilter.OrganizationId.Equal.Value).FirstOrDefault(); queryable = queryable.Where(q => q.Creator.Organization.Path.StartsWith(OrganizationDAO.Path)); } if (KnowledgeArticleFilter.OrganizationId.NotEqual != null) { OrganizationDAO OrganizationDAO = DataContext.Organization .Where(o => o.Id == KnowledgeArticleFilter.OrganizationId.NotEqual.Value).FirstOrDefault(); queryable = queryable.Where(q => !q.Creator.Organization.Path.StartsWith(OrganizationDAO.Path)); } if (KnowledgeArticleFilter.OrganizationId.In != null) { List <OrganizationDAO> OrganizationDAOs = DataContext.Organization .Where(o => o.DeletedAt == null && o.StatusId == 1).ToList(); List <OrganizationDAO> Parents = OrganizationDAOs.Where(o => KnowledgeArticleFilter.OrganizationId.In.Contains(o.Id)).ToList(); List <OrganizationDAO> Branches = OrganizationDAOs.Where(o => Parents.Any(p => o.Path.StartsWith(p.Path))).ToList(); List <long> Ids = Branches.Select(o => o.Id).ToList(); queryable = queryable.Where(q => Ids.Contains(q.Creator.OrganizationId)); } if (KnowledgeArticleFilter.OrganizationId.NotIn != null) { List <OrganizationDAO> OrganizationDAOs = DataContext.Organization .Where(o => o.DeletedAt == null && o.StatusId == 1).ToList(); List <OrganizationDAO> Parents = OrganizationDAOs.Where(o => KnowledgeArticleFilter.OrganizationId.NotIn.Contains(o.Id)).ToList(); List <OrganizationDAO> Branches = OrganizationDAOs.Where(o => Parents.Any(p => o.Path.StartsWith(p.Path))).ToList(); List <long> Ids = Branches.Select(o => o.Id).ToList(); queryable = queryable.Where(q => !Ids.Contains(q.Creator.OrganizationId)); } } if (KnowledgeArticleFilter.UserId != null) { if (KnowledgeArticleFilter.UserId.Equal != null) { AppUserDAO AppUserDAO = DataContext.AppUser.Where(p => p.Id == KnowledgeArticleFilter.UserId.Equal).FirstOrDefault(); OrganizationDAO OrganizationDAO = DataContext.Organization .Where(o => o.Id == AppUserDAO.OrganizationId).FirstOrDefault(); queryable = queryable.Where(q => q.Creator.Organization.Path.StartsWith(OrganizationDAO.Path)); } if (KnowledgeArticleFilter.UserId.NotEqual != null) { AppUserDAO AppUserDAO = DataContext.AppUser.Where(p => p.Id == KnowledgeArticleFilter.UserId.NotEqual).FirstOrDefault(); OrganizationDAO OrganizationDAO = DataContext.Organization .Where(o => o.Id != AppUserDAO.OrganizationId).FirstOrDefault(); queryable = queryable.Where(q => !q.Creator.Organization.Path.StartsWith(OrganizationDAO.Path)); } } if (KnowledgeArticleFilter.KnowledgeGroupId != null) { queryable = queryable.Where(q => q.GroupId, KnowledgeArticleFilter.KnowledgeGroupId); } // Hiển thị ra phòng ban của người dùng hiện tại if (KnowledgeArticleFilter.AppliedDepartmentId != null) { if (KnowledgeArticleFilter.AppliedDepartmentId.Equal != null) { AppUserDAO AppUserDAO = DataContext.AppUser.Where(p => p.Id == KnowledgeArticleFilter.CurrentUserId.Equal).FirstOrDefault(); OrganizationDAO OrganizationDAO = DataContext.Organization .Where(o => o.Id == AppUserDAO.OrganizationId).FirstOrDefault(); queryable = queryable.Where(q => q.KnowledgeArticleOrganizationMappings.Select(p => p.OrganizationId).Contains(OrganizationDAO.Id)); } if (KnowledgeArticleFilter.AppliedDepartmentId.NotEqual != null) { AppUserDAO AppUserDAO = DataContext.AppUser.Where(p => p.Id == KnowledgeArticleFilter.CurrentUserId.Equal).FirstOrDefault(); OrganizationDAO OrganizationDAO = DataContext.Organization .Where(o => o.Id != AppUserDAO.OrganizationId).FirstOrDefault(); queryable = queryable.Where(q => q.KnowledgeArticleOrganizationMappings.Select(p => p.OrganizationId).Contains(OrganizationDAO.Id)); } } initQuery = initQuery.Union(queryable); } return(initQuery); }
private IQueryable<AppUserDAO> DynamicFilter(IQueryable<AppUserDAO> query, AppUserFilter filter) { if (filter == null) return query.Where(q => false); if (filter.Id != null) query = query.Where(q => q.Id, filter.Id); if (filter.Username != null) query = query.Where(q => q.Username, filter.Username); if (filter.DisplayName != null) query = query.Where(q => q.DisplayName, filter.DisplayName); if (filter.Address != null) query = query.Where(q => q.Address, filter.Address); if (filter.Email != null) query = query.Where(q => q.Email, filter.Email); if (filter.Phone != null) query = query.Where(q => q.Phone, filter.Phone); if (filter.StatusId != null) query = query.Where(q => q.StatusId, filter.StatusId); if (filter.SexId != null) query = query.Where(q => q.SexId, filter.SexId); if (filter.Birthday != null) query = query.Where(q => q.Birthday, filter.Birthday); if (filter.Department != null) query = query.Where(q => q.Department, filter.Department); if (filter.OrganizationId != null) { if (filter.OrganizationId.Equal != null) { OrganizationDAO OrganizationDAO = DataContext.Organization .Where(o => o.Id == filter.OrganizationId.Equal.Value).FirstOrDefault(); query = query.Where(q => q.Organization.Path.StartsWith(OrganizationDAO.Path)); } if (filter.OrganizationId.NotEqual != null) { OrganizationDAO OrganizationDAO = DataContext.Organization .Where(o => o.Id == filter.OrganizationId.NotEqual.Value).FirstOrDefault(); query = query.Where(q => !q.Organization.Path.StartsWith(OrganizationDAO.Path)); } if (filter.OrganizationId.In != null) { List<OrganizationDAO> OrganizationDAOs = DataContext.Organization .Where(o => o.DeletedAt == null && o.StatusId == 1).ToList(); List<OrganizationDAO> Parents = OrganizationDAOs.Where(o => filter.OrganizationId.In.Contains(o.Id)).ToList(); List<OrganizationDAO> Branches = OrganizationDAOs.Where(o => Parents.Any(p => o.Path.StartsWith(p.Path))).ToList(); List<long> Ids = Branches.Select(o => o.Id).ToList(); query = query.Where(q => Ids.Contains(q.OrganizationId)); } if (filter.OrganizationId.NotIn != null) { List<OrganizationDAO> OrganizationDAOs = DataContext.Organization .Where(o => o.DeletedAt == null && o.StatusId == 1).ToList(); List<OrganizationDAO> Parents = OrganizationDAOs.Where(o => filter.OrganizationId.NotIn.Contains(o.Id)).ToList(); List<OrganizationDAO> Branches = OrganizationDAOs.Where(o => Parents.Any(p => o.Path.StartsWith(p.Path))).ToList(); List<long> Ids = Branches.Select(o => o.Id).ToList(); query = query.Where(q => !Ids.Contains(q.OrganizationId)); } } if (filter.RoleId != null) { if (filter.RoleId.Equal.HasValue) { query = from q in query join ar in DataContext.AppUserRoleMapping on q.Id equals ar.AppUserId where ar.RoleId == filter.RoleId.Equal.Value select q; } } query = OrFilter(query, filter); return query; }