Exemplo n.º 1
0
        public async Task <ArrayPage <ContactData> > GetUserContactData(Guid userId, ArrayPageRequest request = null)
        {
            request = request?.Normalize() ?? ArrayPageRequest.CreateNormalizedRequest();
            var dataQuery = _query
                            .Query <Entities.Identity.ContactData>(d => d.Owner)
                            .Where(d => userId.CompareTo(d.OwnerId) == 0);

            var longCount = await dataQuery.LongCountAsync();

            var filtered = await dataQuery
                           .OrderBy(c => c.CreatedOn)
                           .Skip((int)(request.PageIndex * request.PageSize))
                           .Take((int)request.PageSize)
                           .ToArrayAsync();

            return(new ArrayPage <ContactData>
            {
                TotalLength = longCount,
                PageIndex = request.PageIndex.Value,
                PageSize = request.PageSize.Value,
                Page = filtered.TransformQuery <Entities.Identity.ContactData, ContactData>(
                    _transformer,
                    TransformCommand.Query)
            });
        }
Exemplo n.º 2
0
        public async Task <ArrayPage <Farm> > GetFarms(ArrayPageRequest request = null)
        {
            request = request?.Normalize() ?? ArrayPageRequest.CreateNormalizedRequest();
            var dataQuery = _query
                            .Query <Entities.Farm>(
                d => d.Owner,
                d => d.Cooperatives,
                d => d.Harvests,
                d => d.Products);

            var longCount = await dataQuery.LongCountAsync();

            var filtered = await dataQuery
                           .OrderBy(c => c.CreatedOn)
                           .Skip((int)(request.PageIndex * request.PageSize))
                           .Take((int)request.PageSize)
                           .ToArrayAsync();

            return(new ArrayPage <Farm>
            {
                TotalLength = longCount,
                PageIndex = request.PageIndex.Value,
                PageSize = request.PageSize.Value,
                Page = filtered.TransformQuery <Entities.Farm, Farm>(
                    _transformer,
                    TransformCommand.Query)
            });
        }
Exemplo n.º 3
0
        public async Task <ArrayPage <HarvestBatch> > GetHarvestBatches(Guid farmId, ArrayPageRequest request = null)
        {
            request = request?.Normalize() ?? ArrayPageRequest.CreateNormalizedRequest();
            var dataQuery = _query
                            .Query <Entities.HarvestBatch>(
                h => h.Farm,
                h => h.Harvests)
                            .Where(h => farmId.CompareTo(h.FarmId) == 0);

            var longCount = await dataQuery.LongCountAsync();

            var filtered = await dataQuery
                           .OrderBy(c => c.CreatedOn)
                           .Skip((int)(request.PageIndex * request.PageSize))
                           .Take((int)request.PageSize)
                           .ToArrayAsync();

            return(new ArrayPage <HarvestBatch>
            {
                TotalLength = longCount,
                PageIndex = request.PageIndex.Value,
                PageSize = request.PageSize.Value,
                Page = filtered.TransformQuery <Entities.HarvestBatch, HarvestBatch>(
                    _transformer,
                    TransformCommand.Query)
            });
        }
Exemplo n.º 4
0
        public async Task <ArrayPage <Harvest> > GetHarvests(ArrayPageRequest request = null)
        {
            request = request?.Normalize() ?? ArrayPageRequest.CreateNormalizedRequest();
            var dataQuery = _query
                            .Query <Entities.Harvest>(
                h => h.Batch,
                h => h.Produce);

            var longCount = await dataQuery.LongCountAsync();

            var filtered = await dataQuery
                           .OrderBy(c => c.CreatedOn)
                           .Skip((int)(request.PageIndex * request.PageSize))
                           .Take((int)request.PageSize)
                           .ToArrayAsync();

            return(new ArrayPage <Harvest>
            {
                TotalLength = longCount,
                PageIndex = request.PageIndex.Value,
                PageSize = request.PageSize.Value,
                Page = filtered.TransformQuery <Entities.Harvest, Harvest>(
                    _transformer,
                    TransformCommand.Query)
            });
        }
Exemplo n.º 5
0
        public async Task <ArrayPage <CooperativeAdmin> > GetAdmins(Guid cooperativeId, ArrayPageRequest request = null)
        {
            request = request?.Normalize() ?? ArrayPageRequest.CreateNormalizedRequest();
            var dataQuery = _query
                            .Query <Entities.CooperativeAdmin>(c => c.Cooperative, c => c.User)
                            .Where(c => cooperativeId.CompareTo(c.CooperativeId) == 0);

            var longCount = await dataQuery.LongCountAsync();

            var filtered = await dataQuery
                           .OrderBy(c => c.CreatedOn)
                           .Skip((int)(request.PageIndex * request.PageSize))
                           .Take((int)request.PageSize)
                           .ToArrayAsync();

            return(new ArrayPage <CooperativeAdmin>
            {
                TotalLength = longCount,
                PageIndex = request.PageIndex.Value,
                PageSize = request.PageSize.Value,
                Page = filtered.TransformQuery <Entities.CooperativeAdmin, CooperativeAdmin>(
                    _transformer,
                    TransformCommand.Query)
            });
        }
Exemplo n.º 6
0
        public async Task <ArrayPage <Farm> > GetRegisteredFarms(Guid cooperativeId, ArrayPageRequest request = null)
        {
            request = request?.Normalize() ?? ArrayPageRequest.CreateNormalizedRequest();
            var dataQuery = _query
                            .Query <Entities.Cooperative>(
                c => c.Farms.Select(f => f.Harvests),
                c => c.Farms.Select(f => f.Products),
                c => c.Farms.Select(f => f.Cooperatives))
                            .Where(c => cooperativeId.CompareTo(c.Id) == 0)
                            .SelectMany(c => c.Farms);

            var longCount = await dataQuery.LongCountAsync();

            var filtered = await dataQuery
                           .OrderBy(c => c.CreatedOn)
                           .Skip((int)(request.PageIndex * request.PageSize))
                           .Take((int)request.PageSize)
                           .ToArrayAsync();

            return(new ArrayPage <Farm>
            {
                TotalLength = longCount,
                PageIndex = request.PageIndex.Value,
                PageSize = request.PageSize.Value,
                Page = filtered.TransformQuery <Entities.Farm, Farm>(
                    _transformer,
                    TransformCommand.Query)
            });
        }
Exemplo n.º 7
0
        public async Task <ArrayPage <Farmer> > GetRegisteredFarmers(Guid cooperativeId, ArrayPageRequest request = null)
        {
            request = request?.Normalize() ?? ArrayPageRequest.CreateNormalizedRequest();
            var dataQuery =
                from c in _query.Query <Entities.Cooperative>()
                join a in _query.Query <Entities.CooperativeAdmin>() on c.Id equals a.CooperativeId
                join f in _query.Query <Entities.Farmer>() on a.UserId equals f.UserId
                where cooperativeId.CompareTo(c.Id) == 0
                select f;

            var longCount = await dataQuery.LongCountAsync();

            var filtered = await dataQuery
                           .OrderBy(c => c.CreatedOn)
                           .Skip((int)(request.PageIndex * request.PageSize))
                           .Take((int)request.PageSize)
                           .ToArrayAsync();

            return(new ArrayPage <Farmer>
            {
                TotalLength = longCount,
                PageIndex = request.PageIndex.Value,
                PageSize = request.PageSize.Value,
                Page = filtered.TransformQuery <Entities.Farmer, Farmer>(
                    _transformer,
                    TransformCommand.Query)
            });
        }
Exemplo n.º 8
0
        public async Task <ArrayPage <Credential> > GetActiveUserCredentials(Guid ownerId, string credentialName, ArrayPageRequest request = null)
        {
            request = request?.Normalize() ?? ArrayPageRequest.CreateNormalizedRequest();
            var dataQuery = _query
                            .Query <Entities.Authentication.Credential>(d => d.Owner)
                            .Where(d => credentialName == d.Name);

            var longCount = await dataQuery.LongCountAsync();

            var filtered = await dataQuery
                           .OrderBy(c => c.CreatedOn)
                           .Skip((int)(request.PageIndex * request.PageSize))
                           .Take((int)request.PageSize)
                           .ToArrayAsync();

            return(new ArrayPage <Credential>
            {
                TotalLength = longCount,
                PageIndex = request.PageIndex.Value,
                PageSize = request.PageSize.Value,
                Page = filtered.TransformQuery <Entities.Authentication.Credential, Credential>(
                    _transformer,
                    TransformCommand.Query)
            });
        }
Exemplo n.º 9
0
        public async Task <ArrayPage <ContactData> > GetUserContactData(
            Guid userId,
            string[] communicationChannels,
            string[] tags,
            ArrayPageRequest request)
        {
            request = request?.Normalize() ?? ArrayPageRequest.CreateNormalizedRequest();
            var dataQuery = _query
                            .Query <Entities.Identity.ContactData>(d => d.Owner)
                            .Where(d => userId.CompareTo(d.OwnerId) == 0)
                            .Where(d => d.IsPrimary)
                            .Where(d => communicationChannels.Contains(d.Channel));

            var tagPredicate = TagPatterns(tags);

            if (tagPredicate != null)
            {
                dataQuery = dataQuery.Where(tagPredicate);
            }

            var longCount = await dataQuery.LongCountAsync();

            var filtered = await dataQuery
                           .OrderBy(c => c.CreatedOn)
                           .Skip((int)(request.PageIndex * request.PageSize))
                           .Take((int)request.PageSize)
                           .ToArrayAsync();

            return(new ArrayPage <ContactData>
            {
                TotalLength = longCount,
                PageIndex = request.PageIndex.Value,
                PageSize = request.PageSize.Value,
                Page = filtered.TransformQuery <Entities.Identity.ContactData, ContactData>(
                    _transformer,
                    TransformCommand.Query)
            });
        }