Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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));
            }
        }
Esempio n. 3
0
        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));
            }
        }
Esempio n. 4
0
        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));
        }
Esempio n. 5
0
        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));
        }
Esempio n. 6
0
        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));
        }
Esempio n. 7
0
        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));
        }
Esempio n. 8
0
        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));
            }
        }
Esempio n. 9
0
        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));
            }
        }