コード例 #1
0
        public List <CajasDto> Listado(string sortBy, string sortDirection, Guid?operador, bool?aprobado, int pageIndex, int pageSize, out int pageTotal)
        {
            var criteros = new PagingCriteria();

            criteros.PageNumber    = pageIndex;
            criteros.PageSize      = pageSize;
            criteros.SortBy        = !string.IsNullOrEmpty(sortBy) ? sortBy : "FechaAlta";
            criteros.SortDirection = !string.IsNullOrEmpty(sortDirection) ? sortDirection : "ASC";

            System.Linq.Expressions.Expression <Func <Caja, bool> > where =
                x =>
                //(operador == null )//|| x.OperadorAltaId == operador)
                //&& (x.FCierre != null || x.FCierre == fechaCierre)
                //&& (movilId == null || x.MovilId == movilId)
                (x.FCierre != null) &&
                (x.Aprobada == aprobado) &&
                ((x.Efectivo > 0) || (x.Vales > 0) || (x.Egresos > 0))
            ;

            var resultados = Uow.Cajas.Listado(criteros, where);

            pageTotal = resultados.PagedMetadata.TotalItemCount;

            return(resultados.Entities.Project().To <CajasDto>().ToList());
        }
コード例 #2
0
        public PagedList <Member> GetMembers(PagingCriteria pageCriteria, Dictionary <string, string> columnFilters)
        {
            var usernameFilter    = columnFilters.GetValue("Username", String.Empty).ToLower();
            var firstNameFilter   = columnFilters.GetValue("FirstName", String.Empty).ToLower();
            var lastNameFilter    = columnFilters.GetValue("LastName", String.Empty).ToLower();
            var emailFilter       = columnFilters.GetValue("Email", String.Empty).ToLower();
            var phoneNumberFilter = columnFilters.GetValue("PhoneNumber", String.Empty).ToLower();
            var dateOfBirthFilter = columnFilters.GetValue("DateOfBirth", String.Empty).ToLower();

            var hasFilters = columnFilters != null && columnFilters.Count > 0;

            var members = _unitOfWork.MemberRepository.GetByCriteria(x => !hasFilters || (
                                                                         (string.IsNullOrEmpty(usernameFilter) || x.Username.ToLower().StartsWith(usernameFilter)) &&
                                                                         (string.IsNullOrEmpty(firstNameFilter) || x.FirstName.ToLower().StartsWith(firstNameFilter)) &&
                                                                         (string.IsNullOrEmpty(lastNameFilter) || x.LastName.ToLower().StartsWith(lastNameFilter)) &&
                                                                         (string.IsNullOrEmpty(emailFilter) || x.Email.ToLower().StartsWith(emailFilter)) &&
                                                                         (string.IsNullOrEmpty(phoneNumberFilter) || x.PhoneNumber.ToLower().StartsWith(phoneNumberFilter))
                                                                         ));

            /*&&
             * (string.IsNullOrEmpty(dateOfBirthFilter) || x.DateOfBirth
             *   .GetValueOrDefault(DateTime.MaxValue)
             *   .Date
             *   .Equals(DateTime.Parse(columnFilters["DateOfBirth"]).Date))
             * ));*/

            // TODO: pagination and sorting should probably be handled
            // by the data access code in the repo for performance reasons
            var list = new PagedList <Member>(members, pageCriteria);

            return(list);
        }
コード例 #3
0
        public List <BenefitDto> GetAll(string sortBy, string sortDirection, int?categoryId, int?townId, int?shopId, string criteria, StatusEnum?statusId, int pageIndex, int pageSize, out int pageTotal)
        {
            var pagingCriteria = new PagingCriteria();

            pagingCriteria.PageNumber    = pageIndex;
            pagingCriteria.PageSize      = pageSize;
            pagingCriteria.SortBy        = !string.IsNullOrEmpty(sortBy) ? sortBy : "CreatedDate";
            pagingCriteria.SortDirection = !string.IsNullOrEmpty(sortDirection) ? sortDirection : "DESC";

            Expression <Func <Benefit, bool> > where =
                x =>
                ((string.IsNullOrEmpty(criteria) || x.Description.Contains(criteria) || x.Name.Contains(criteria) || x.Shop.Name.Contains(criteria)) &&
                 (!shopId.HasValue || x.ShopId == shopId) &&
                 (!statusId.HasValue || x.StatusId == statusId.Value) &&
                 (!categoryId.HasValue || x.Shop.ShopCategories.Any(c => c.CategoryId == categoryId)) &&
                 (!townId.HasValue || x.Shop.TownId == townId ||
                  x.BenefitBranchOffices.Any(bo => bo.BranchOffice.TownId == townId)) &&
                 !x.IsDeleted);

            var results = Uow.Benefits.GetAll(pagingCriteria, where,
                                              //Includes
                                              b => b.Shop.ShopCategories,
                                              b => b.BenefitBranchOffices.Select(bbo => bbo.BranchOffice));

            pageTotal = results.PagedMetadata.TotalItemCount;

            return(results.Entities.Project().To <BenefitDto>().ToList());
        }
コード例 #4
0
        public List <OrdenesPagoDetalleDto> Listado(string sortBy, string sortDirection, DateTime fechaDesde, DateTime fechaHasta,
                                                    bool?conAnulados, int pageIndex, int pageSize, out int pageTotal)
        {
            var criteros = new PagingCriteria();

            fechaDesde             = fechaDesde.AddMilliseconds(-1);
            fechaHasta             = fechaHasta.AddDays(1);
            criteros.PageNumber    = pageIndex;
            criteros.PageSize      = pageSize;
            criteros.SortBy        = !string.IsNullOrEmpty(sortBy) ? sortBy : "FechaPago";
            criteros.SortDirection = !string.IsNullOrEmpty(sortDirection) ? sortDirection : "ASC";

            Expression <Func <OrdenesPagoDetalle, bool> > where = x => (x.ImportePagado.Value == 0) &&
                                                                  (!conAnulados.HasValue || x.FechaAnulacion.HasValue == conAnulados) &&
                                                                  (x.FechaPago.Value > fechaDesde && x.FechaPago.Value < fechaHasta);

            var resultados = Uow.OrdenesPagosDetalle.Listado(criteros,
                                                             where,
                                                             x => x.OrdenesPago,
                                                             x => x.SucursalAlta);


            pageTotal = resultados.PagedMetadata.TotalItemCount;

            return(resultados.Entities.Project().To <OrdenesPagoDetalleDto>().ToList());
        }
コード例 #5
0
        public IEnumerable <WarehouseTransactionHead> GetPagedWareTranHeadBySql(PagingCriteria paging, string strWhere)
        {
            string strSql = "select *  from  WarehouseTransactionHead ";

            strSql += strWhere;
            return(_warehTransactionHeadDal.QueryByESql(strSql, paging).Entities);
        }
コード例 #6
0
ファイル: JobServiceTest.cs プロジェクト: bcowdery/skunkworks
        public async Task Test_ListJobs_Find_ByCorrelationId_Should_ReturnPagedList()
        {
            // arrange
            var correlationId = Guid.NewGuid();
            var bulkJobs      = new JobFaker().Generate(100);
            var relatedJobs   = new JobFaker().SetCorrelationId(correlationId).Generate(10);

            await using var context = DbContextFactory.Instance.CreateDbContext <PortAuthorityDbContext>();
            await context.Setup(x => x.Jobs, bulkJobs);

            await context.Setup(x => x.Jobs, relatedJobs);

            var search = new JobSearchCriteria()
            {
                CorrelationId = correlationId
            };
            var paging = new PagingCriteria()
            {
                Page = 1, Size = 25
            };

            // act
            var result = await _service.ListJobs(search, paging);

            // assert
            result.Should().NotBeNull();
            result.IsOk().Should().BeTrue();

            var payload = result.Payload;

            payload.TotalItems.Should().Be(10);
            payload.TotalPages.Should().Be(1);
            payload.Data.Should().HaveCount(10);
            payload.Data.Should().OnlyContain(x => relatedJobs.Select(j => j.JobId).Contains(x.JobId));
        }
コード例 #7
0
        public List <RemitosVentaDto> GetById(Guid consignacionId, int sucursalId)
        {
            var criteros = new PagingCriteria();

            criteros.PageNumber    = 1;
            criteros.PageSize      = 500;
            criteros.SortBy        = "FechaAlta";
            criteros.SortDirection = "DESC";

            Expression <Func <RemitosVenta, bool> > where = x => x.Id == consignacionId &&
                                                            x.SucursalAltaId == sucursalId &&
                                                            x.TipoComprobante ==
                                                            (int)TipoComprobanteEnum.RemitosConsignacCliente
                                                            &&
                                                            ((x.RemitosVentaDetalles.Sum(r => r.CntPr) + x.RemitosVentaDetalles.Sum(r => r.CntCn))
                                                             >
                                                             (x.RemitosVentaDetalles.Where(r => r.CntCn.HasValue).Sum(r => r.CntDevuelta ?? 0) + x.RemitosVentaDetalles.Where(r => r.CntCn.HasValue).Sum(r => r.CntVendida ?? 0)));


            var resultados = Uow.RemitosVentas.Listado(criteros,
                                                       where,
                                                       x => x.RemitosVentaDetalles,
                                                       x => x.ClienteConsignado,
                                                       x => x.SucursalAlta);

            return(resultados.Entities.Project().To <RemitosVentaDto>().ToList());
        }
コード例 #8
0
        public async Task Test_SubtaskSearchQuery_DefaultCriteria_Should_ReturnAll()
        {
            // arrange
            var job   = new JobFaker().Generate();
            var tasks = new SubtaskFaker().SetJob(job).Generate(100);

            await using var dbContext = GetDbContext();
            await dbContext.Setup(x => x.Jobs, job);

            await dbContext.Setup(x => x.Tasks, tasks);

            var search = new SubtaskSearchCriteria()
            {
            };
            var paging = new PagingCriteria()
            {
                Page = 1, Size = 25
            };

            // act
            var results = await new SubtaskSearchQuery(dbContext).Find(search, paging);

            // assert
            results.Should().NotBeNull();
            results.Page.Should().Be(1);
            results.Size.Should().Be(25);
            results.TotalItems.Should().Be(100);
            results.TotalPages.Should().Be(4);
            results.Data.Should().HaveCount(25);
            results.Data.Should().OnlyHaveUniqueItems(x => x.TaskId);
        }
コード例 #9
0
        public List <ClienteDto> Listado(string sortBy, string sortDirection, string denominacion, string cuit, bool?activo, int pageIndex, int pageSize, out int pageTotal)
        {
            var criteros = new PagingCriteria();

            criteros.PageNumber    = pageIndex;
            criteros.PageSize      = pageSize;
            criteros.SortBy        = !string.IsNullOrEmpty(sortBy) ? sortBy : "Denominacion";
            criteros.SortDirection = !string.IsNullOrEmpty(sortDirection) ? sortDirection : "DESC";

            var cuitFormateado         = cuit.PadLeft(11, '0');
            var denominacionFormateado = denominacion.ToStringSearch();

            Expression <Func <Cliente, bool> > where =
                x =>
                (string.IsNullOrEmpty(denominacionFormateado) || SqlFunctions.PatIndex(denominacionFormateado, x.Denominacion) > 0) &&
                (string.IsNullOrEmpty(cuit) || SqlFunctions.PatIndex(cuitFormateado, x.Cuit) > 0) &&
                (!activo.HasValue || x.Activo == activo);

            var resultados = Uow.Clientes.Listado(criteros,
                                                  where,
                                                  x => x.TiposDocumentosIdentidad,
                                                  x => x.Localidad,
                                                  x => x.Profesion,
                                                  x => x.Especialidad);

            pageTotal = resultados.PagedMetadata.TotalItemCount;

            return(resultados.Entities.Project().To <ClienteDto>().ToList());
        }
コード例 #10
0
        public RepositoryResultList <T> QueryByESql(string esql, PagingCriteria paging)
        {
            RepositoryResultList <T> result = new RepositoryResultList <T>();

            try
            {
                this.RefreshData();
                var data         = ctx.Set <T>().SqlQuery(esql);
                int totalRecords = data.Count();

                result.Entities = data.AsQueryable()
                                  .OrderBy(paging.SortBy + " " + paging.SortDirection)
                                  .Skip((paging.PageNumber - 1) * paging.PageSize)
                                  .Take(paging.PageSize)
                                  .AsEnumerable();

                result.PagedMetadata = new PagedMetadata(totalRecords, paging.PageSize, paging.PageNumber);
                result.NoErrors      = true;
            }
            catch (Exception ex)
            {
                result.NoErrors = false;
                result.Message  = ex.ToString();
            }

            return(result);
        }
コード例 #11
0
        public async Task Test_JobSearchQuery_FindByCorrelationId_Should_ReturnMatching()
        {
            // arrange
            var correlationId = Guid.NewGuid();
            var bulkJobs      = new JobFaker().Generate(100);
            var relatedJobs   = new JobFaker().SetCorrelationId(correlationId).Generate(13);

            await using var dbContext = GetDbContext();
            await dbContext.Setup(x => x.Jobs, bulkJobs);

            await dbContext.Setup(x => x.Jobs, relatedJobs);

            var search = new JobSearchCriteria()
            {
                CorrelationId = correlationId
            };
            var paging = new PagingCriteria()
            {
                Page = 1, Size = 25
            };

            // act
            var results = await new JobSearchQuery(dbContext).Find(search, paging);

            // assert
            results.Should().NotBeNull();
            results.Page.Should().Be(1);
            results.Size.Should().Be(25);
            results.TotalItems.Should().Be(13);
            results.TotalPages.Should().Be(1);
            results.Data.Should().HaveCount(13);
            results.Data.Should().OnlyContain(x => relatedJobs.Select(j => j.JobId).Contains(x.JobId));
        }
コード例 #12
0
        /// <summary>
        /// Gets all of T from the data store
        /// </summary>
        /// <param name="paging">pagingcriteria to determine which page of T to return</param>
        /// <param name="includes">a parameter string array of property names to return in each item of the entity object graph</param>
        /// <returns>RepositoryResultList</returns>
        public RepositoryResultList <T> GetAll(PagingCriteria paging, params string[] includes)
        {
            RepositoryResultList <T> result = new RepositoryResultList <T>();

            try
            {
                var data         = ctx.Set <T>().Where(t => true);
                int totalRecords = data.Count();

                foreach (string include in includes)
                {
                    data = (IQueryable <T>)data.Include(include);
                }

                result.Entities = data.AsQueryable()
                                  .OrderBy(paging.SortBy + " " + paging.SortDirection)
                                  .Skip((paging.PageNumber - 1) * paging.PageSize)
                                  .Take(paging.PageSize)
                                  .AsEnumerable();

                result.PagedMetadata = new PagedMetadata(totalRecords, paging.PageSize, paging.PageNumber);
                result.NoErrors      = true;
            }
            catch (Exception ex)
            {
                result.NoErrors = false;
                result.Message  = ex.ToString();
            }

            return(result);
        }
コード例 #13
0
        /// <summary>
        /// Performs a find on the repository given the specified Type and Filter expression (this will come from the FilterStore.FilterForUser
        /// method or a simple lambda expression
        /// </summary>
        /// <param name="filter">the Expression to use to filter objects from the data store</param>
        /// <param name="paging">PagingCriteria for the result list</param>
        /// <param name="includes">a params string array of property names that will be included in the resulting object graph for each item</param>
        /// <returns>RepositoryResultList</returns>
        public RepositoryResultList <T> Find(Expression <Func <T, bool> > filter, PagingCriteria paging, params string[] includes)
        {
            RepositoryResultList <T> result = new RepositoryResultList <T>();

            try
            {
                var query = ctx.Set <T>().Where(t => true);
                foreach (string include in includes)
                {
                    query = query.Include(include);
                }

                query = query.Where(filter.Compile()).AsQueryable();
                int totalRecords = query.Count();
                result.Entities = query.AsQueryable()
                                  .OrderBy(paging.SortBy + " " + paging.SortDirection)
                                  .Skip((paging.PageNumber - 1) * paging.PageSize)
                                  .Take(paging.PageSize)
                                  .AsEnumerable();

                result.PagedMetadata = new PagedMetadata(totalRecords, paging.PageSize, paging.PageNumber);
                result.NoErrors      = true;
            }
            catch (Exception ex)
            {
                result.NoErrors = false;
                result.Message  = ex.ToString();
            }

            return(result);
        }
コード例 #14
0
ファイル: ProveedorNegocio.cs プロジェクト: windygu/Libreria
        public List <ProveedorDto> Listado(string sortBy, string sortDirection, int?cuenta, string denominacion, string cuit, int?provinciaId, int?localidadId, TipoProveedor tipoProveedor, bool?activo, int pageIndex, int pageSize, out int pageTotal)
        {
            var criteros = new PagingCriteria();

            criteros.PageNumber    = pageIndex;
            criteros.PageSize      = pageSize;
            criteros.SortBy        = !string.IsNullOrEmpty(sortBy) ? sortBy : "Denominacion";
            criteros.SortDirection = !string.IsNullOrEmpty(sortDirection) ? sortDirection : "DESC";

            Expression <Func <Proveedor, bool> > where = x => ((tipoProveedor == TipoProveedor.Normal && x.Gto == false) || (tipoProveedor == TipoProveedor.Gastos && x.Gto == true)) &&
                                                         (!cuenta.HasValue || (x.Cuenta.HasValue && x.Cuenta.ToString().Contains(cuenta.ToString()))) &&
                                                         (string.IsNullOrEmpty(denominacion) ||
                                                          x.Denominacion.Contains(denominacion)) &&
                                                         (string.IsNullOrEmpty(cuit) || x.Cuit.Contains(cuit)) &&
                                                         (!provinciaId.HasValue || x.ProvinciaId == provinciaId) &&
                                                         (!localidadId.HasValue || x.LocalidadId == localidadId) &&
                                                         (!activo.HasValue || x.Activo == activo);

            var resultados = Uow.Proveedores.Listado(criteros,
                                                     where,
                                                     x => x.Localidad,
                                                     x => x.Provincia,
                                                     x => x.CondicionCompra,
                                                     x => x.Banco);


            pageTotal = resultados.PagedMetadata.TotalItemCount;

            return(resultados.Entities.Project().To <ProveedorDto>().ToList());
        }
コード例 #15
0
ファイル: ProveedorNegocio.cs プロジェクト: windygu/Libreria
        public List <ProveedorConsignacionDto> ProveedorConsignacion(string sortBy, string sortDirection, Guid?proveedorId, int?cuenta,
                                                                     string denominacion, string cuit, bool?activo, DateTime?fechaConsigDesde, DateTime?fechaConsigHasta, bool?pendientePago,
                                                                     int sucursalId,
                                                                     int pageIndex, int pageSize, out int pageTotal)
        {
            var criteros = new PagingCriteria();

            criteros.PageNumber    = pageIndex;
            criteros.PageSize      = pageSize;
            criteros.SortBy        = !string.IsNullOrEmpty(sortBy) ? sortBy : "Id";
            criteros.SortDirection = !string.IsNullOrEmpty(sortDirection) ? sortDirection : "DESC";

            Expression <Func <TituloConsignacionRendida, bool> > where = x => (x.SucursalAltaId == sucursalId &&
                                                                               (!cuenta.HasValue ||
                                                                                (x.Proveedor.Cuenta.HasValue && x.Proveedor.Cuenta.ToString().Contains(cuenta.ToString()))) &&
                                                                               (string.IsNullOrEmpty(denominacion) ||
                                                                                x.Proveedor.Denominacion.Contains(denominacion)) &&
                                                                               (string.IsNullOrEmpty(cuit) || x.Proveedor.Cuit.Contains(cuit)) &&
                                                                               (!activo.HasValue || x.Proveedor.Activo == activo) &&
                                                                               (!proveedorId.HasValue || x.ProveedorId == proveedorId) &&
                                                                               (!fechaConsigDesde.HasValue || x.FechaConsignacion >= fechaConsigDesde) &&
                                                                               (!fechaConsigHasta.HasValue || x.FechaConsignacion <= fechaConsigHasta)
                                                                               &&
                                                                               (!pendientePago.HasValue ||
                                                                                (pendientePago.Value && ((x.Importe - x.Pagado) > 0 || x.Pagado == null))) ||
                                                                               (!pendientePago.Value && ((x.Importe >= x.Pagado)))
                                                                               );

            var resultados = Uow.TitulosConsignacionesRendidas.Listado(criteros, where, x => x.Proveedor);

            pageTotal = resultados.PagedMetadata.TotalItemCount;

            return(resultados.Entities.Project().To <ProveedorConsignacionDto>().ToList());
        }
コード例 #16
0
ファイル: ProveedorNegocio.cs プロジェクト: windygu/Libreria
        public List <ProveedorCtaCteDto> ProveedorCtaCte(string sortBy, string sortDirection, int?cuenta, string denominacion, string cuit, bool?activo, int sucursalId, int pageIndex, int pageSize, out int pageTotal)
        {
            var criteros = new PagingCriteria();

            criteros.PageNumber    = pageIndex;
            criteros.PageSize      = pageSize;
            criteros.SortBy        = !string.IsNullOrEmpty(sortBy) ? sortBy : "CompraId";
            criteros.SortDirection = !string.IsNullOrEmpty(sortDirection) ? sortDirection : "DESC";

            Expression <Func <ProveedoresCuentasCorriente, bool> > where = x => (
                (!cuenta.HasValue || (x.Proveedor.Cuenta.HasValue && x.Proveedor.Cuenta.ToString().Contains(cuenta.ToString()))) &&
                (string.IsNullOrEmpty(denominacion) ||
                 x.Proveedor.Denominacion.Contains(denominacion)) &&
                (string.IsNullOrEmpty(cuit) || x.Proveedor.Cuit.Contains(cuit)) &&
                (!activo.HasValue || x.Proveedor.Activo == activo) &&
                ((x.Importe - x.Pagado) > 0) &&
                x.SucursalAltaId == sucursalId);

            var resultados = Uow.ProveedoresCuentasCorrientes.Listado(criteros,
                                                                      where,
                                                                      x => x.Proveedor,
                                                                      x => x.Compra);


            pageTotal = resultados.PagedMetadata.TotalItemCount;

            return(resultados.Entities.Project().To <ProveedorCtaCteDto>().ToList());
        }
コード例 #17
0
        public async Task Test_SubtaskSearchQuery_FindByJobId_None_Should_ReturnEmpty()
        {
            // arrange
            var job   = new JobFaker().Generate("default,InProgress");
            var tasks = new SubtaskFaker().SetJob(job).Generate(17);

            await using var dbContext = GetDbContext();
            await dbContext.Setup(x => x.Jobs, job);

            await dbContext.Setup(x => x.Tasks, tasks);

            var search = new SubtaskSearchCriteria()
            {
                JobId = Guid.Empty
            };
            var paging = new PagingCriteria()
            {
                Page = 1, Size = 25
            };

            // act
            var results = await new SubtaskSearchQuery(dbContext).Find(search, paging);

            // assert
            results.Should().NotBeNull();
            results.Page.Should().Be(1);
            results.Size.Should().Be(25);
            results.TotalItems.Should().Be(0);
            results.TotalPages.Should().Be(0);
            results.Data.Should().BeNullOrEmpty();
        }
コード例 #18
0
        public async Task Test_JobSearchQuery_FindByCorrelationId_None_Should_ReturnEmpty()
        {
            // arrange
            var correlationId = Guid.NewGuid();
            var bulkJobs      = new JobFaker().Generate(100);

            await using var dbContext = GetDbContext();
            await dbContext.Setup(x => x.Jobs, bulkJobs);

            var search = new JobSearchCriteria()
            {
                CorrelationId = correlationId
            };
            var paging = new PagingCriteria()
            {
                Page = 1, Size = 25
            };

            // act
            var results = await new JobSearchQuery(dbContext).Find(search, paging);

            // assert
            results.Should().NotBeNull();
            results.Page.Should().Be(1);
            results.Size.Should().Be(25);
            results.TotalItems.Should().Be(0);
            results.TotalPages.Should().Be(0);
            results.Data.Should().BeNullOrEmpty();
        }
コード例 #19
0
        public async Task Test_SubtaskSearchQuery_TinyPageSize_Should_ReturnPagedResult()
        {
            // arrange
            var job   = new JobFaker().Generate("default,InProgress");
            var tasks = new SubtaskFaker().SetJob(job).Generate(100);

            await using var dbContext = GetDbContext();
            await dbContext.Setup(x => x.Jobs, job);

            await dbContext.Setup(x => x.Tasks, tasks);

            var search = new SubtaskSearchCriteria();
            var paging = new PagingCriteria()
            {
                Page = 1, Size = 5
            };

            // act
            var results = await new SubtaskSearchQuery(dbContext).Find(search, paging);

            // assert
            results.Should().NotBeNull();
            results.Page.Should().Be(1);
            results.Size.Should().Be(5);
            results.TotalItems.Should().Be(100);
            results.TotalPages.Should().Be(20);
            results.Data.Should().HaveCount(5);
        }
コード例 #20
0
        public async Task Test_JobSearchQuery_FindByTypeAndNamespace_Should_ReturnMatching()
        {
            // arrange
            var jobs = new JobFaker().Generate(100);

            await using var dbContext = GetDbContext();
            await dbContext.Setup(x => x.Jobs, jobs);

            var expected = jobs[39];
            var search   = new JobSearchCriteria()
            {
                Type = expected.Type, Namespace = expected.Namespace
            };
            var paging = new PagingCriteria()
            {
                Page = 1, Size = 25
            };

            // act
            var results = await new JobSearchQuery(dbContext).Find(search, paging);

            // assert
            results.Should().NotBeNull();
            results.Page.Should().Be(1);
            results.Size.Should().Be(25);
            results.TotalItems.Should().Be(1);
            results.TotalPages.Should().Be(1);
            results.Data.Should().HaveCount(1);
            results.Data.Should().OnlyContain(x => x.Type == expected.Type && x.Namespace == expected.Namespace);
        }
コード例 #21
0
        public List <PresupuestoDto> Listado(string sortBy, string sortDirection, string criteria, string lcn, int pageIndex, int pageSize, out int pageTotal)
        {
            var criteros = new PagingCriteria();

            criteros.PageNumber    = pageIndex;
            criteros.PageSize      = pageSize;
            criteros.SortBy        = !string.IsNullOrEmpty(sortBy) ? sortBy : "FechaAlta";
            criteros.SortDirection = !string.IsNullOrEmpty(sortDirection) ? sortDirection : "DESC";

            var cuitFormateado         = criteria.PadLeft(11, '0');
            var denominacionFormateado = criteria.ToStringSearch();
            var lcnFormateado          = lcn.ToStringSearch();

            Expression <Func <Presupuestos, bool> > where =
                x => (
                    (string.IsNullOrEmpty(criteria) || SqlFunctions.PatIndex(denominacionFormateado, x.Cliente.Denominacion) > 0) ||
                    x.Cliente.Denominacion.Contains(denominacionFormateado) ||
                    x.Concepto.Contains(criteria) || x.Cliente.Cuit.Contains(cuitFormateado))
                &&
                (x.LCN.Contains(lcn) || SqlFunctions.PatIndex(lcnFormateado, x.LCN) > 0)
            ;

            var resultados = Uow.Presupuesto.Listado(criteros,
                                                     where,
                                                     x => x.Cliente);

            pageTotal = resultados.PagedMetadata.TotalItemCount;

            return(resultados.Entities.Project().To <PresupuestoDto>().ToList());
        }
コード例 #22
0
        public List <UserDto> GetAllAdministrators(IPrincipal currentUser, string sortBy, string sortDirection, string criteria, int pageIndex, int pageSize, out int pageTotal)
        {
            var pagingCriteria = new PagingCriteria
            {
                PageNumber    = pageIndex,
                PageSize      = pageSize,
                SortBy        = !string.IsNullOrEmpty(sortBy) ? sortBy : "UserName",
                SortDirection = !string.IsNullOrEmpty(sortDirection) ? sortDirection : "ASC"
            };

            Expression <Func <User, bool> > where;
            if (currentUser.IsInRole(RolesNames.SuperAdmin))
            {
                where = x => ((string.IsNullOrEmpty(criteria) || x.UserName.Contains(criteria)) &&
                              (string.IsNullOrEmpty(criteria) || x.Email.Contains(criteria)) &&
                              (x.Roles.Any(r => r.Name == RolesNames.Admin) ||
                               x.Roles.Any(r => r.Name == RolesNames.BeneficiaryAdmin) ||
                               x.Roles.Any(r => r.Name == RolesNames.ShopAdmin)));
            }
            else
            {
                where = x => ((string.IsNullOrEmpty(criteria) || x.UserName.Contains(criteria)) &&
                              (string.IsNullOrEmpty(criteria) || x.Email.Contains(criteria)) &&
                              (x.Roles.Any(r => r.Name == RolesNames.BeneficiaryAdmin) ||
                               x.Roles.Any(r => r.Name == RolesNames.ShopAdmin)));
            }

            var results = Uow.Users.GetAll(pagingCriteria,
                                           where,
                                           s => s.Roles);

            pageTotal = results.PagedMetadata.TotalItemCount;

            return(results.Entities.Project().To <UserDto>().ToList());
        }
コード例 #23
0
ファイル: JobServiceTest.cs プロジェクト: bcowdery/skunkworks
        public async Task Test_ListJobs_FindAll_Should_ReturnPagedList()
        {
            // arrange
            var jobs = new JobFaker()
                       .Generate(100);

            await using var context = DbContextFactory.Instance.CreateDbContext <PortAuthorityDbContext>();
            await context.Setup(x => x.Jobs, jobs);

            var search = new JobSearchCriteria()
            {
            };
            var paging = new PagingCriteria()
            {
                Page = 1, Size = 25
            };

            // act
            var result = await _service.ListJobs(search, paging);

            // assert
            result.Should().NotBeNull();
            result.IsOk().Should().BeTrue();

            var payload = result.Payload;

            payload.TotalItems.Should().Be(100);
            payload.TotalPages.Should().Be(4);
            payload.Data.Should().HaveCount(25);
        }
コード例 #24
0
        private static void GetPagingCount(PagingCriteria PagingCriteria)
        {
            string strSql = string.Format("Select Count(1) From {0} Where {1}"
                                          , PagingCriteria.tabName, PagingCriteria.sWhere);

            PagingCriteria.iTotalRowNum = conn.QueryFirst <Int32>(strSql);
        }
コード例 #25
0
        public List <RemitosVentaDto> Listado(string sortBy, string sortDirection, string criteria,
                                              Guid clienteId, int?numeroComprobante,
                                              int pageIndex, int pageSize, out int pageTotal)
        {
            var criteros = new PagingCriteria();

            criteros.PageNumber    = pageIndex;
            criteros.PageSize      = pageSize;
            criteros.SortBy        = !string.IsNullOrEmpty(sortBy) ? sortBy : "FechaAlta";
            criteros.SortDirection = !string.IsNullOrEmpty(sortDirection) ? sortDirection : "DESC";

            var denominacionFormateado = criteria.ToStringSearch();

            Expression <Func <RemitosVenta, bool> > where = x =>
                                                            ((string.IsNullOrEmpty(criteria) || SqlFunctions.PatIndex(denominacionFormateado, x.ClienteConsignado.Denominacion) > 0) || x.ClienteConsignado.Denominacion.Contains(denominacionFormateado)) &&
                                                            (!numeroComprobante.HasValue || x.NumeroComprobante.ToString().Contains(numeroComprobante.ToString()));

            var resultados = Uow.RemitosVentas.Listado(criteros,
                                                       where,
                                                       x => x.ClienteConsignado,
                                                       x => x.SucursalAlta);

            pageTotal = resultados.PagedMetadata.TotalItemCount;

            return(resultados.Entities.Project().To <RemitosVentaDto>().ToList());
        }
コード例 #26
0
ファイル: Utilities.cs プロジェクト: ryanohs/DynamicServices
 public static object ToPagedList(object enumerable, PagingCriteria criteria)
 {
     AssertIsNotNull(enumerable);
     AssertIsEnumerable(enumerable);
     var innerType = enumerable.GetType().GetGenericArguments()[0];
     return ToPagedList(innerType, enumerable, criteria);
 }
コード例 #27
0
ファイル: AssayService.cs プロジェクト: wpmyj/LC
        public RepositoryResultList <Assay> GetAssaysByParameter(string[] para, PagingCriteria pageC)
        {
            //            string SQLStr = string.Format(@"select a.* from Assay as a
            //                                             right join Sample as s on a.sample_number = s.sample_number
            //                                             right join GoodsKind as g on s.goods_kind = g.goods_kind_id
            //                                             right join AssayType ayt on s.assay_type = ayt.id
            //                                             where g.goods_kind_name like '%[0]%' or s.sample_time like '%[1]%'
            //                                                or ayt.name like '%[2]%' and 1=1", para[0], para[1], para[2]);

            var queryAssay = PredicateBuilder.True <Assay>();

            if (para[0] != "")
            {
                queryAssay = queryAssay.And(a => a.Sample.GoodsKindGK.goods_kind_name.Contains(para[0]));
            }
            if (para[1] != string.Empty)
            {
                queryAssay = queryAssay.And(a => a.create_time.HasValue && a.create_time.Value.ToShortDateString().Contains(para[1]));
            }
            if (para[2] != "")
            {
                queryAssay = queryAssay.And(a => a.status == int.Parse(para[2]));
            }
            queryAssay = queryAssay.And(a => a.assay_number.StartsWith("ASN"));

            return(_assayDal.Find(queryAssay, pageC, "AssayBills", "AssayBills.AssayResults"));
        }
コード例 #28
0
        public List <RemitosVentaDetalleDto> Listado(string sortBy, string sortDirection, string criteria,
                                                     string remitoVentaId, int pageIndex, int pageSize, out int pageTotal)
        {
            var  criteros = new PagingCriteria();
            Guid _remitoVentaId;

            Guid.TryParse(remitoVentaId, out _remitoVentaId);

            criteros.PageNumber    = pageIndex;
            criteros.PageSize      = pageSize;
            criteros.SortBy        = !string.IsNullOrEmpty(sortBy) ? sortBy : "FechaAlta";
            criteros.SortDirection = !string.IsNullOrEmpty(sortDirection) ? sortDirection : "DESC";

            var denominacionFormateado = criteria.ToStringSearch();

            Expression <Func <RemitosVentaDetalle, bool> > where = x => x.RemitoVentaId == _remitoVentaId;

            var resultados = Uow.RemitosVentasDetalle.Listado(criteros,
                                                              where,
                                                              x => x.Titulo,
                                                              x => x.SucursalAlta);

            pageTotal = resultados.PagedMetadata.TotalItemCount;

            return(resultados.Entities.Project().To <RemitosVentaDetalleDto>().ToList());
        }
コード例 #29
0
        public List <CuentaDto> Listado(string sortBy, string sortDirection, string nombre, int?tipoCuentaId, int?bancoPropioId, string titular, int pageIndex, int pageSize, out int pageTotal)
        {
            var criteros = new PagingCriteria();

            criteros.PageNumber    = pageIndex;
            criteros.PageSize      = pageSize;
            criteros.SortBy        = !string.IsNullOrEmpty(sortBy) ? sortBy : "FechaApertura";
            criteros.SortDirection = !string.IsNullOrEmpty(sortDirection) ? sortDirection : "DESC";

            Expression <Func <Cuenta, bool> > where = x => (string.IsNullOrEmpty(nombre) || x.Nombre.Contains(nombre)) &&
                                                      (string.IsNullOrEmpty(titular) || x.Titular.Contains(titular)) &&
                                                      (!tipoCuentaId.HasValue || x.TipoCuentaId == tipoCuentaId) &&
                                                      (!bancoPropioId.HasValue || x.BancoPropioId == bancoPropioId) &&
                                                      (x.Activo);

            var resultados = Uow.Cuentas.Listado(criteros,
                                                 where,
                                                 c => c.BancosPropio,
                                                 c => c.TiposCuenta);


            pageTotal = resultados.PagedMetadata.TotalItemCount;

            return(resultados.Entities.Project().To <CuentaDto>().ToList());
        }
コード例 #30
0
        public static object ToPagedList(object enumerable, PagingCriteria criteria)
        {
            AssertIsNotNull(enumerable);
            AssertIsEnumerable(enumerable);
            var innerType = enumerable.GetType().GetGenericArguments()[0];

            return(ToPagedList(innerType, enumerable, criteria));
        }
コード例 #31
0
ファイル: EnrolmentService.cs プロジェクト: wpmyj/LC
        public IEnumerable <Enrolment> GetPageEnrolmentBySQL(string strwhere, PagingCriteria paging)
        {
            string esql = "select *  from  Enrolment where 1=1";

            esql += strwhere;

            return(_enrolmentDal.QueryByESql(esql, paging).Entities);
        }
コード例 #32
0
ファイル: Utilities.cs プロジェクト: ryanohs/DynamicServices
 public static object ToPagedList(Type innerType, object enumerable, PagingCriteria criteria)
 {
     AssertIsNotNull(enumerable);
     AssertIsEnumerable(enumerable);
     var pagedListType = typeof (PagedListExtensions);
     var toPagedList = pagedListType.GetMethod("ToPagedList");
     var method = toPagedList.MakeGenericMethod(innerType);
     return method.Invoke(null, new[] {enumerable, criteria.PageIndex, criteria.PageSize});
 }