public VehicleModel GetVehicleDetail(IList <FilterModel> filters, FilterJoin filterJoin) { var request = new RestRequest("/api/Vehicle/VehicleDetail", Method.POST); request.AddQueryParameter("filterJoin", filterJoin.ToString()); request.AddJsonBody(filters); var response = RestClient.Execute(request); if (response.StatusCode != HttpStatusCode.OK) { throw CreateException(response); } return(JsonConvert.DeserializeObject <VehicleModel>(response.Content)); }
public IHttpActionResult GetPaginatedList([FromBody] IList <FilterModel> filters, FilterJoin filterJoin, bool asc, string orderPropertyName, int pageIndex, int pageSize) { using (var dbContext = new DataContext()) { var totalCount = 0; var filter = filters.Select(f => FilterConverter.Convert(f)).ToList(); var func = ExpressionBuilder.GetExpression <Data.Computer>(filter, (FilterJoin)filterJoin); var query = dbContext .Computers .Include(f => f.District) .AsNoTracking(); if (func != null) { query = query.Where(func); } var orderedQuery = asc ? query.OrderByMember(PropertyHelper.GetSortingValue <ComputerModel>(orderPropertyName)) : query.OrderByMemberDescending(PropertyHelper.GetSortingValue <ComputerModel>(orderPropertyName)); var resultsToSkip = (pageIndex - 1) * pageSize; var pageResults = orderedQuery .Skip(resultsToSkip) .Take(pageSize) .GroupBy(f => new { Total = query.Count() }) .FirstOrDefault(); var entities = new List <Computer>(); if (pageResults != null) { totalCount = pageResults.Key.Total; entities = pageResults.ToList(); } var totalPages = Math.Ceiling(totalCount / (float)pageSize); var paginationList = new PaginationListModel <ComputerModel>(); paginationList.Models = entities.Select(f => new ComputerModel { ID = f.ID, IPAddress = f.IPAddress, Name = f.Name, DistrictID = f.District == null ? default(long?) : f.District.ID, DistrictName = f.District == null ? string.Empty : f.District.BranchName }) .ToList(); paginationList.TotalCount = totalCount; return(Ok(paginationList)); } }
public IHttpActionResult GetMobileDeviceApplicationPaginatedList([FromBody] IList <FilterModel> filters, FilterJoin filterJoin, bool asc, string orderPropertyName, int pageIndex, int pageSize) { using (var dbContext = new DataContext()) { var totalCount = 0; var filter = filters.Select(f => FilterConverter.Convert(f)).ToList(); var func = ExpressionBuilder.GetExpression <Data.MobileDeviceApplication>(filter, (FilterJoin)filterJoin); var query = dbContext .MobileDeviceApplications .AsNoTracking(); if (func != null) { query = query.Where(func); } var orderedQuery = asc ? query.OrderByMember(PropertyHelper.GetSortingValue <MobileDeviceApplicationModel>(orderPropertyName)) : query.OrderByMemberDescending(PropertyHelper.GetSortingValue <MobileDeviceApplicationModel>(orderPropertyName)); var resultsToSkip = (pageIndex - 1) * pageSize; var pageResults = orderedQuery .Skip(resultsToSkip) .Take(pageSize) .GroupBy(f => new { Total = query.Count() }) .FirstOrDefault(); var entities = new List <MobileDeviceApplication>(); if (pageResults != null) { totalCount = pageResults.Key.Total; entities = pageResults.ToList(); } var totalPages = Math.Ceiling(totalCount / (float)pageSize); var paginationList = new PaginationListModel <MobileDeviceApplicationModel>(); paginationList.Models = entities.Select(f => new MobileDeviceApplicationModel { ID = f.ID, Name = f.Name, SoftwareVersion = f.SoftwareVersion, ModifiedTimestamp = f.ModifiedTimestamp, ApplicationType = (Models.Enums.ApplicationType)f.ApplicationType, Status = (Models.Enums.Status)f.Status }) .ToList(); paginationList.TotalCount = totalCount; return(Ok(paginationList)); } }
public PaginationListModel <VehicleTestBookingModel> GetBookingsPaginatedList(IList <FilterModel> filters, FilterJoin filterJoin, bool asc, string orderPropertyName, int pageIndex, int pageSize) { var request = new RestRequest("/api/Vehicle/BookingsPaginationList", Method.POST); request.AddQueryParameter("filterJoin", filterJoin.ToString()); request.AddQueryParameter("asc", asc.ToString()); request.AddQueryParameter("orderPropertyName", orderPropertyName); request.AddQueryParameter("pageIndex", pageIndex.ToString()); request.AddQueryParameter("pageSize", pageSize.ToString()); request.AddJsonBody(filters); var response = RestClient.Execute(request); if (response.StatusCode != HttpStatusCode.OK) { throw CreateException(response); } return(JsonConvert.DeserializeObject <PaginationListModel <VehicleTestBookingModel> >(response.Content)); }
public PaginationListModel <PaymentTerminalModel> GetPaginatedList(IList <FilterModel> filters, FilterJoin filterJoin, bool asc, string orderPropertyName, int pageIndex, int pageSize) { var request = new RestRequest("/api/Payment/Terminal/PaginatedList", Method.POST); request.AddQueryParameter("filterJoin", filterJoin.ToString()); request.AddQueryParameter("asc", asc.ToString()); request.AddQueryParameter("orderPropertyName", orderPropertyName); request.AddQueryParameter("pageIndex", pageIndex.ToString()); request.AddQueryParameter("pageSize", pageSize.ToString()); request.RequestFormat = DataFormat.Json; request.JsonSerializer = new RestSharpJsonNetSerializer(); request.AddBody(filters); var response = RestClient.Execute(request); if (response.StatusCode != HttpStatusCode.OK) { throw CreateException(response); } return(JsonConvert.DeserializeObject <PaginationListModel <PaymentTerminalModel> >(response.Content)); }
private static BinaryExpression GetExpression <T>(ParameterExpression param, Filter filter1, Filter filter2, FilterJoin join) { Expression bin1 = GetExpression <T>(param, filter1); Expression bin2 = GetExpression <T>(param, filter2); return(join == FilterJoin.And ? Expression.AndAlso(bin1, bin2) : Expression.Or(bin1, bin2)); }
public static Expression <Func <T, bool> > GetExpression <T>(IList <Filter> filters, FilterJoin join) { if (filters.Count == 0) { return(null); } ParameterExpression param = Expression.Parameter(typeof(T), "t"); Expression exp = null; if (filters.Count == 1) { exp = GetExpression <T>(param, filters[0]); } else if (filters.Count == 2) { exp = GetExpression <T>(param, filters[0], filters[1], join); } else { while (filters.Count > 0) { var f1 = filters[0]; var f2 = filters[1]; if (exp == null) { exp = GetExpression <T>(param, filters[0], filters[1], join); } else { exp = join == FilterJoin.And ? Expression.AndAlso(exp, GetExpression <T>(param, filters[0], filters[1], join)) : Expression.Or(exp, GetExpression <T>(param, filters[0], filters[1], join)); } filters.Remove(f1); filters.Remove(f2); if (filters.Count == 1) { exp = join == FilterJoin.And ? Expression.AndAlso(exp, GetExpression <T>(param, filters[0])) : Expression.Or(exp, GetExpression <T>(param, filters[0])); filters.RemoveAt(0); } } } return(Expression.Lambda <Func <T, bool> >(exp, param)); }
public IHttpActionResult TISPaginatedList([FromBody] IList <FilterModel> filters, FilterJoin filterJoin, bool asc, string orderPropertyName, int pageIndex, int pageSize) { using (var dbContext = new DataContext()) { var totalCount = 0; var filter = filters.Select(f => FilterConverter.Convert(f)).ToList(); var func = ExpressionBuilder.GetExpression <NatisExport>(filter, (FilterJoin)filterJoin); var query = dbContext .NatisExports .AsNoTracking(); if (func != null) { query = query.Where(func); } var orderedQuery = asc ? query.OrderByMember(PropertyHelper.GetSortingValue <NatisExportModel>(orderPropertyName)) : query.OrderByMemberDescending(PropertyHelper.GetSortingValue <NatisExportModel>(orderPropertyName)); var resultsToSkip = (pageIndex - 1) * pageSize; var pageResults = orderedQuery .Skip(resultsToSkip) .Take(pageSize) .GroupBy(f => new { Total = query.Count() }) .FirstOrDefault(); var entities = new List <NatisExport>(); if (pageResults != null) { totalCount = pageResults.Key.Total; entities = pageResults.ToList(); } var paginationList = new PaginationListModel <NatisExportModel>(); paginationList.PageIndex = pageIndex; paginationList.PageSize = pageSize; var totalPages = Math.Ceiling(totalCount / (float)pageSize); paginationList.Models = entities.Select(f => new Models.TISCapture.NatisExportModel { //ID = f.ID, VehicleRegistration = f.VehicleRegistration, InfringementDate = f.InfringementDate, ReferenceNumber = f.ReferenceNumber, ExportDate = f.ExportDate, DistrictID = f.DistrictID, LockedByCredentialID = f.LockedByCredentialID, LockedByName = f.LockedByCredentialID.HasValue ? string.Format("{0}, {1}", f.User.LastName, f.User.FirstName) : string.Empty, DistrictName = f.District.BranchName, }) .ToList(); paginationList.TotalCount = totalCount; return(Ok(paginationList)); } }
public IHttpActionResult GetPaginatedList([FromBody] IList <FilterModel> filters, FilterJoin filterJoin, bool asc, string orderPropertyName, int pageIndex, int pageSize) { using (var dbContext = new DataContext()) { var totalCount = 0; var filter = filters.Select(f => FilterConverter.Convert(f)).ToList(); var func = ExpressionBuilder.GetExpression <Data.User>(filter, (FilterJoin)filterJoin); var query = dbContext .Users .AsNoTracking(); if (func != null) { query = query.Where(func); } var orderedQuery = asc ? query.OrderByMember(PropertyHelper.GetSortingValue <UserModel>(orderPropertyName)) : query.OrderByMemberDescending(PropertyHelper.GetSortingValue <UserModel>(orderPropertyName)); var resultsToSkip = (pageIndex - 1) * pageSize; var pageResults = orderedQuery .Skip(resultsToSkip) .Take(pageSize) .GroupBy(f => new { Total = query.Count() }) .FirstOrDefault(); var entities = new List <User>(); if (pageResults != null) { totalCount = pageResults.Key.Total; entities = pageResults.ToList(); } var paginationList = new PaginationListModel <UserModel>(); paginationList.PageIndex = pageIndex; paginationList.PageSize = pageSize; var userIDs = entities.Select(f => f.ID).ToList(); var credentials = dbContext.Credentials .Where(f => f.EntityType == Data.Enums.EntityType.User && userIDs.Contains(f.EntityID)) .ToList(); var models = new List <UserModel>(); foreach (var entity in entities) { var userModel = new UserModel { ID = entity.ID, FirstName = entity.FirstName, LastName = entity.LastName, MobileNumber = entity.MobileNumber, CreatedTimestamp = entity.CreatedTimestamp, Status = (Models.Enums.UserStatus)entity.Status, Email = entity.Email, IsOfficer = entity.IsOfficer == "1", ExternalID = entity.ExternalID }; var credential = credentials.FirstOrDefault(f => f.EntityID == userModel.ID); if (credential != null) { userModel.UserName = credential.UserName; } models.Add(userModel); } paginationList.Models = models; paginationList.TotalCount = totalCount; return(Ok(paginationList)); } }