public IActionResult Get(CatPartnerCriteria criteria, int page, int size) { var data = catPartnerService.Paging(criteria, page, size, out int rowCount); var result = new { data, totalItems = rowCount, page, size }; return(Ok(result)); }
public IQueryable <CatPartnerViewModel> Query(CatPartnerCriteria criteria) { string partnerGroup = criteria != null?PlaceTypeEx.GetPartnerGroup(criteria.PartnerGroup) : null; var data = DataContext.Get(x => (x.PartnerGroup ?? "").Contains(partnerGroup ?? "", StringComparison.OrdinalIgnoreCase) && (x.Active == criteria.Active || criteria.Active == null) && (x.CoLoaderCode ?? "").Contains(criteria.CoLoaderCode ?? "", StringComparison.OrdinalIgnoreCase) ); if (data == null) { return(null); } var results = data.Select(x => new CatPartnerViewModel { Id = x.Id, PartnerGroup = x.PartnerGroup, PartnerNameVn = x.PartnerNameVn, PartnerNameEn = x.PartnerNameEn, ShortName = x.ShortName, TaxCode = x.TaxCode, SalePersonId = x.SalePersonId, Tel = x.Tel, AddressEn = x.AddressEn, Fax = x.Fax, CoLoaderCode = x.CoLoaderCode, }); return(results); }
public async Task <IActionResult> ExportPartner(CatPartnerCriteria catPartnerCriteria) { var accessToken = Request.Headers["Authorization"].ToString(); Helper helper = new Helper(); var responseFromApi = await HttpServiceExtension.PostAPI(catPartnerCriteria, aPis.CatalogueAPI + Urls.Catelogue.CatPartnerUrl, accessToken); var dataObjects = responseFromApi.Content.ReadAsAsync <List <CatPartner> >(); var stream = helper.CreatePartnerExcelFile(dataObjects.Result, catPartnerCriteria.PartnerType, catPartnerCriteria.Author); return(new FileHelper().ExportExcel(stream, FilesNames.PartnerData)); }
private List <CatPartnerViewModel> QueryPaging(CatPartnerCriteria criteria) { string partnerGroup = criteria != null?PlaceTypeEx.GetPartnerGroup(criteria.PartnerGroup) : null; var sysUsers = sysUserRepository.Get(); var partners = Get(x => (x.PartnerGroup ?? "").IndexOf(partnerGroup ?? "", StringComparison.OrdinalIgnoreCase) >= 0); var salemans = salemanRepository.Get().ToList(); var dataSalemans = salemans.Select(x => x.PartnerId); if (partners == null) { return(null); } var query = (from partner in partners join user in sysUsers on partner.UserCreated equals user.Id join saleman in sysUsers on partner.SalePersonId equals saleman.Id into prods from x in prods.DefaultIfEmpty() select new { user, partner, saleman = x } ); if (criteria.All == null) { query = query.Where(x => ((x.partner.AccountNo ?? "").IndexOf(criteria.Id ?? "", StringComparison.OrdinalIgnoreCase) >= 0 && (x.partner.ShortName ?? "").IndexOf(criteria.ShortName ?? "", StringComparison.OrdinalIgnoreCase) >= 0 && (x.partner.PartnerNameEn ?? "").IndexOf(criteria.PartnerNameEn ?? "", StringComparison.OrdinalIgnoreCase) >= 0 && (x.partner.PartnerNameVn ?? "").IndexOf(criteria.PartnerNameVn ?? "", StringComparison.OrdinalIgnoreCase) >= 0 && (x.partner.AddressVn ?? "").IndexOf(criteria.AddressVn ?? "", StringComparison.OrdinalIgnoreCase) >= 0 && (x.partner.TaxCode ?? "").IndexOf(criteria.TaxCode ?? "", StringComparison.OrdinalIgnoreCase) >= 0 && (x.partner.Tel ?? "").IndexOf(criteria.Tel ?? "", StringComparison.OrdinalIgnoreCase) >= 0 && (x.partner.Fax ?? "").IndexOf(criteria.Fax ?? "", StringComparison.OrdinalIgnoreCase) >= 0 && (x.user.Username ?? "").IndexOf(criteria.UserCreated ?? "", StringComparison.OrdinalIgnoreCase) >= 0 && (x.partner.AccountNo ?? "").IndexOf(criteria.AccountNo ?? "", StringComparison.OrdinalIgnoreCase) >= 0 && (x.partner.CoLoaderCode ?? "").Contains(criteria.CoLoaderCode ?? "", StringComparison.OrdinalIgnoreCase) && (x.partner.Active == criteria.Active || criteria.Active == null) ))?.AsQueryable(); } else { query = query.Where(x => ( (x.partner.AccountNo ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 || (x.partner.ShortName ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 || (x.partner.PartnerNameEn ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 || (x.partner.PartnerNameVn ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 || (x.partner.AddressVn ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 || (x.partner.TaxCode ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 || (x.partner.Tel ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 || (x.partner.Fax ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 || (x.user.Username ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 || (x.partner.AccountNo ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 || (x.partner.CoLoaderCode ?? "").Contains(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) ) && (x.partner.Active == criteria.Active || criteria.Active == null))?.AsQueryable(); } if (query == null) { return(null); } List <CatPartnerViewModel> results = new List <CatPartnerViewModel>(); foreach (var item in query) { var partner = mapper.Map <CatPartnerViewModel>(item.partner); partner.UserCreatedName = item.user?.Username; partner.SalePersonName = item.saleman?.Username; results.Add(partner); } return(results); }
public IQueryable <CatPartnerViewModel> Paging(CatPartnerCriteria criteria, int page, int size, out int rowsCount) { var data = QueryPaging(criteria); if (data == null) { rowsCount = 0; return(null); } var salemans = salemanRepository.Get().ToList(); ICurrentUser _user = PermissionExtention.GetUserMenuPermission(currentUser, Menu.catPartnerdata);//Set default PermissionRange rangeSearch = PermissionExtention.GetPermissionRange(_user.UserMenuPermission.List); switch (rangeSearch) { case PermissionRange.None: data = null; break; case PermissionRange.All: break; case PermissionRange.Owner: if (criteria.PartnerGroup.ToString() == DataEnums.CustomerPartner || criteria.PartnerGroup == 0) { data = data.Where(x => salemans.Any(y => y.SaleManId == currentUser.UserID && y.PartnerId.Equals(x.Id)) || x.UserCreated == currentUser.UserID).ToList(); } else { data = data.Where(x => x.UserCreated == currentUser.UserID).ToList(); } break; case PermissionRange.Group: if (criteria.PartnerGroup.ToString() == DataEnums.CustomerPartner || criteria.PartnerGroup == 0) { data = data.Where(x => (x.GroupId == currentUser.GroupId && (x.DepartmentId == currentUser.DepartmentId) && x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) || x.UserCreated == currentUser.UserID || salemans.Any(y => y.SaleManId == currentUser.UserID && y.PartnerId.Equals(x.Id)) ).ToList(); } else { data = data.Where(x => (x.GroupId == currentUser.GroupId && x.DepartmentId == currentUser.DepartmentId && x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) || x.UserCreated == currentUser.UserID ).ToList(); } break; case PermissionRange.Department: if (criteria.PartnerGroup.ToString() == DataEnums.CustomerPartner || criteria.PartnerGroup == 0) { data = data.Where(x => (x.DepartmentId == currentUser.DepartmentId && x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) || x.UserCreated == currentUser.UserID || salemans.Any(y => y.SaleManId == currentUser.UserID && y.PartnerId.Equals(x.Id)) ).ToList(); } else { data = data.Where(x => (x.DepartmentId == currentUser.DepartmentId && x.OfficeId == currentUser.OfficeID && x.DepartmentId == currentUser.DepartmentId && x.CompanyId == currentUser.CompanyID) || x.UserCreated == currentUser.UserID ).ToList(); } break; case PermissionRange.Office: if (criteria.PartnerGroup.ToString() == DataEnums.CustomerPartner || criteria.PartnerGroup == 0) { data = data.Where(x => (x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) || x.UserCreated == currentUser.UserID || salemans.Any(y => y.SaleManId == currentUser.UserID && y.PartnerId.Equals(x.Id)) ).ToList(); } else { data = data.Where(x => (x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) || x.UserCreated == currentUser.UserID ).ToList(); } break; case PermissionRange.Company: if (criteria.PartnerGroup.ToString() == DataEnums.CustomerPartner || criteria.PartnerGroup == 0) { data = data.Where(x => (x.CompanyId == currentUser.CompanyID) || x.UserCreated == currentUser.UserID || salemans.Any(y => y.SaleManId == currentUser.UserID && y.PartnerId.Equals(x.Id)) ).ToList(); } else { data = data.Where(x => (x.CompanyId == currentUser.CompanyID) || x.UserCreated == currentUser.UserID ).ToList(); } break; } if (data == null) { rowsCount = 0; return(null); } rowsCount = data.Select(x => x.Id).Count(); IQueryable <CatPartnerViewModel> results = null; if (size > 1) { if (page < 1) { page = 1; } results = data.OrderByDescending(x => x.DatetimeModified).Skip((page - 1) * size).Take(size).AsQueryable(); } return(results); }
public IQueryable <CatPartnerViewModel> QueryExport(CatPartnerCriteria criteria) { var data = QueryPaging(criteria); if (data == null) { return(null); } var salemans = salemanRepository.Get().ToList(); ICurrentUser _user = PermissionExtention.GetUserMenuPermission(currentUser, Menu.catPartnerdata);//Set default PermissionRange rangeSearch = PermissionExtention.GetPermissionRange(_user.UserMenuPermission.List); switch (rangeSearch) { case PermissionRange.None: data = null; break; case PermissionRange.All: break; case PermissionRange.Owner: if (criteria.PartnerGroup.ToString() == DataEnums.CustomerPartner || criteria.PartnerGroup == 0) { data = data.Where(x => salemans.Any(y => y.SaleManId == currentUser.UserID && y.PartnerId.Equals(x.Id)) || x.UserCreated == currentUser.UserID).ToList(); } else { data = data.Where(x => x.UserCreated == currentUser.UserID).ToList(); } break; case PermissionRange.Group: if (criteria.PartnerGroup.ToString() == DataEnums.CustomerPartner || criteria.PartnerGroup == 0) { data = data.Where(x => (x.GroupId == currentUser.GroupId && (x.DepartmentId == currentUser.DepartmentId) && x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) || x.UserCreated == currentUser.UserID || salemans.Any(y => y.SaleManId == currentUser.UserID && y.PartnerId.Equals(x.Id)) ).ToList(); } else { data = data.Where(x => (x.GroupId == currentUser.GroupId && x.DepartmentId == currentUser.DepartmentId && x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) || x.UserCreated == currentUser.UserID ).ToList(); } break; case PermissionRange.Department: if (criteria.PartnerGroup.ToString() == DataEnums.CustomerPartner || criteria.PartnerGroup == 0) { data = data.Where(x => (x.DepartmentId == currentUser.DepartmentId && x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) || x.UserCreated == currentUser.UserID || salemans.Any(y => y.SaleManId == currentUser.UserID && y.PartnerId.Equals(x.Id)) ).ToList(); } else { data = data.Where(x => (x.DepartmentId == currentUser.DepartmentId && x.OfficeId == currentUser.OfficeID && x.DepartmentId == currentUser.DepartmentId && x.CompanyId == currentUser.CompanyID) || x.UserCreated == currentUser.UserID ).ToList(); } break; case PermissionRange.Office: if (criteria.PartnerGroup.ToString() == DataEnums.CustomerPartner || criteria.PartnerGroup == 0) { data = data.Where(x => (x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) || x.UserCreated == currentUser.UserID || salemans.Any(y => y.SaleManId == currentUser.UserID && y.PartnerId.Equals(x.Id)) ).ToList(); } else { data = data.Where(x => (x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) || x.UserCreated == currentUser.UserID ).ToList(); } break; case PermissionRange.Company: if (criteria.PartnerGroup.ToString() == DataEnums.CustomerPartner || criteria.PartnerGroup == 0) { data = data.Where(x => (x.CompanyId == currentUser.CompanyID) || x.UserCreated == currentUser.UserID || salemans.Any(y => y.SaleManId == currentUser.UserID && y.PartnerId.Equals(x.Id)) ).ToList(); } else { data = data.Where(x => (x.CompanyId == currentUser.CompanyID) || x.UserCreated == currentUser.UserID ).ToList(); } break; } if (data == null) { return(null); } return(data.AsQueryable()); }
public IActionResult Get(CatPartnerCriteria criteria) { var results = catPartnerService.Query(criteria); return(Ok(results)); }