public IActionResult Get(CatChargeCriteria criteria, int pageNumber, int pageSize) { var data = catChargeService.Paging(criteria, pageNumber, pageSize, out int rowCount); var result = new { data, totalItems = rowCount, pageNumber, pageSize }; return(Ok(result)); }
private IQueryable <CatChargeModel> QueryCriteria(CatChargeCriteria criteria) { Expression <Func <CatChargeModel, bool> > query = null; if (criteria.All == null) { query = x => (x.ChargeNameEn ?? "").IndexOf(criteria.ChargeNameEn ?? "", StringComparison.OrdinalIgnoreCase) > -1 && (x.ChargeNameVn ?? "").IndexOf(criteria.ChargeNameVn ?? "", StringComparison.OrdinalIgnoreCase) > -1 && (x.Code ?? "").IndexOf(criteria.Code ?? "", StringComparison.OrdinalIgnoreCase) > -1 && (x.Type ?? "").IndexOf(criteria.Type ?? "", StringComparison.OrdinalIgnoreCase) > -1 && (x.ServiceTypeId ?? "").Contains(criteria.ServiceTypeId ?? "", StringComparison.OrdinalIgnoreCase) && (x.Active == criteria.Active || criteria.Active == null); } else { query = x => ((x.ChargeNameEn ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 || (x.ChargeNameVn ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 || (x.Code ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 || (x.Type ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 || (x.ServiceTypeId ?? "").Contains(criteria.All ?? "", StringComparison.OrdinalIgnoreCase)) && (x.Active == criteria.Active || criteria.Active == null); } var list = Get(query); var currencies = currencyService.Get(); var units = catUnitService.Get(); list = list.Join(currencies, x => x.CurrencyId, y => y.Id, (x, y) => new { x, y.CurrencyName }) .Join(units, x => x.x.UnitId, y => y.Id, (x, y) => new CatChargeModel { Id = x.x.Id, Code = x.x.Code, ChargeNameVn = x.x.ChargeNameVn, ChargeNameEn = x.x.ChargeNameEn, ServiceTypeId = x.x.ServiceTypeId, Type = x.x.Type, CurrencyId = x.x.CurrencyId, UnitPrice = x.x.UnitPrice, UnitId = x.x.UnitId, Vatrate = x.x.Vatrate, IncludedVat = x.x.IncludedVat, UserCreated = x.x.UserCreated, DatetimeCreated = x.x.DatetimeCreated, UserModified = x.x.UserModified, DatetimeModified = x.x.DatetimeModified, Active = x.x.Active, InactiveOn = x.x.InactiveOn, currency = y.UnitNameEn, unit = y.UnitNameEn, OfficeId = x.x.OfficeId, GroupId = x.x.GroupId, CompanyId = x.x.CompanyId, DepartmentId = x.x.DepartmentId }); return(list); }
public async Task <IActionResult> ExportCharge(CatChargeCriteria catChargeCriteria) { Helper helper = new Helper(); var accessToken = Request.Headers["Authorization"].ToString(); var responseFromApi = await HttpServiceExtension.PostAPI(catChargeCriteria, aPis.CatalogueAPI + Urls.Catelogue.CatchargeUrl, accessToken); var dataObjects = responseFromApi.Content.ReadAsAsync <List <CatCharge> >(); //Make sure to add a reference to System.Net.Http.Formatting.dll var stream = helper.CreateChargeExcelFile(dataObjects.Result); return(new FileHelper().ExportExcel(stream, FilesNames.ChargeName)); }
public IQueryable <CatChargeModel> QueryExport(CatChargeCriteria criteria) { IQueryable <CatChargeModel> data = null; ICurrentUser _user = PermissionExtention.GetUserMenuPermission(currentUser, Menu.catCharge); var rangeSearch = PermissionExtention.GetPermissionRange(currentUser.UserMenuPermission.List); if (rangeSearch == PermissionRange.None) { return(data); } data = QueryByPermission(criteria, rangeSearch); return(data); }
public IQueryable <CatChargeModel> QueryByPermission(CatChargeCriteria criteria, PermissionRange range) { IQueryable <CatChargeModel> data = null; var list = QueryCriteria(criteria); switch (range) { case PermissionRange.All: data = list; break; case PermissionRange.Owner: data = list.Where(x => x.UserCreated == currentUser.UserID && x.CompanyId == currentUser.CompanyID); break; case PermissionRange.Group: data = list.Where(x => (x.GroupId == currentUser.GroupId && x.DepartmentId == currentUser.DepartmentId && x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) || x.UserCreated == currentUser.UserID); break; case PermissionRange.Department: data = list.Where(x => (x.DepartmentId == currentUser.DepartmentId && x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) || x.UserCreated == currentUser.UserID); break; case PermissionRange.Office: data = list.Where(x => (x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) || x.UserCreated == currentUser.UserID); break; case PermissionRange.Company: data = list.Where(x => x.CompanyId == currentUser.CompanyID || x.UserCreated == currentUser.UserID); break; default: break; } return(data); }
public IQueryable <CatChargeModel> Query(CatChargeCriteria criteria) { return(QueryCriteria(criteria)); }
public IQueryable <CatChargeModel> Paging(CatChargeCriteria criteria, int page, int size, out int rowsCount) { ICurrentUser _user = PermissionExtention.GetUserMenuPermission(currentUser, Menu.catCharge); var rangeSearch = PermissionExtention.GetPermissionRange(currentUser.UserMenuPermission.List); if (rangeSearch == PermissionRange.None) { rowsCount = 0; return(null); } Expression <Func <CatCharge, bool> > query = null; if (string.IsNullOrEmpty(criteria.All)) { query = x => (x.ChargeNameEn ?? "").IndexOf(criteria.ChargeNameEn ?? "", StringComparison.OrdinalIgnoreCase) > -1 && (x.ChargeNameVn ?? "").IndexOf(criteria.ChargeNameVn ?? "", StringComparison.OrdinalIgnoreCase) > -1 && (x.Code ?? "").IndexOf(criteria.Code ?? "", StringComparison.OrdinalIgnoreCase) > -1 && (x.Type ?? "").IndexOf(criteria.Type ?? "", StringComparison.OrdinalIgnoreCase) > -1 && (x.ServiceTypeId ?? "").IndexOf(criteria.ServiceTypeId ?? "", StringComparison.OrdinalIgnoreCase) > -1 && (x.Active == criteria.Active || criteria.Active == null) ; } else { query = x => ((x.ChargeNameEn ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 || (x.ChargeNameVn ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 || (x.Code ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 || (x.Type ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1 || (x.ServiceTypeId ?? "").IndexOf(criteria.All ?? "", StringComparison.OrdinalIgnoreCase) > -1) && (x.Active == criteria.Active || criteria.Active == null); } // Query with Permission Range. switch (rangeSearch) { case PermissionRange.Owner: query = query.And(x => x.UserCreated == currentUser.UserID && x.CompanyId == currentUser.CompanyID); break; case PermissionRange.Group: query = query.And(x => (x.GroupId == currentUser.GroupId && x.DepartmentId == currentUser.DepartmentId && x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) || x.UserCreated == currentUser.UserID); break; case PermissionRange.Department: query = query.And(x => (x.DepartmentId == currentUser.DepartmentId && x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) || x.UserCreated == currentUser.UserID); break; case PermissionRange.Office: query = query.And(x => (x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) || x.UserCreated == currentUser.UserID); break; case PermissionRange.Company: query = query.And(x => x.CompanyId == currentUser.CompanyID || x.UserCreated == currentUser.UserID); break; default: break; } var data = DataContext.Paging(query, page, size, x => x.DatetimeModified, false, out rowsCount); var datamap = data.ProjectTo <CatChargeModel>(mapper.ConfigurationProvider); return(datamap); }
public IActionResult QueryExport(CatChargeCriteria searchObject) { IQueryable <CatChargeModel> data = catChargeService.QueryExport(searchObject); return(Ok(data)); }
public IActionResult Get(CatChargeCriteria criteria) { var data = catChargeService.Query(criteria); return(Ok(data)); }