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) }); }
public Operation <ArrayPage <Farm> > GetFarms(ArrayPageRequest request = null) => Operation.Try(async() => { await _dataAuth.AuthorizeAccess(typeof(Farm).FullName); return((await _queries .GetFarms(request)) .ThrowIfNull(new GaiaException(ErrorCodes.InvalidStoreQueryResult))); });
public Operation <ArrayPage <Cooperative> > GetAllCooperatives(ArrayPageRequest request = null) => Operation.Try(async() => { //make sure current user can access cooperatives await _dataAccessAuthorizer.AuthorizeAccess(typeof(Cooperative).FullName); return((await _queries .GetAllCooperatives(request)) .ThrowIfNull(new GaiaException(ErrorCodes.InvalidStoreQueryResult))); });
public Operation <ArrayPage <HarvestBatch> > GetHarvestBatches(ArrayPageRequest request = null) => Operation.Try(async() => { //data access authorization await _dataAuth.AuthorizeAccess(typeof(HarvestBatch).FullName); return((await _queries .GetHarvestBatches(request)) .ThrowIfNull(new GaiaException(ErrorCodes.InvalidStoreQueryResult))); });
public Operation <ArrayPage <Farmer> > GetFarmers(ArrayPageRequest request = null) => Operation.Try(async() => { //data access authorization await _dataAuth.AuthorizeAccess(typeof(Farmer).FullName); return((await _queries .GetAllFarmers(request)) .ThrowIfNull(new GaiaException(ErrorCodes.InvalidStoreCommandResult))); });
public Operation <ArrayPage <Farm> > GetRegisteredFarms(Guid cooperativeId, ArrayPageRequest request = null) => Operation.Try(async() => { //validate parameter cooperativeId .ThrowIf(default(Guid), new GaiaException(PolluxErrorCodes.InvalidArgument)); //make sure current user can access farms await _dataAccessAuthorizer.AuthorizeAccess(typeof(Farm).FullName); return((await _queries .GetRegisteredFarms(cooperativeId, request)) .ThrowIfNull(new GaiaException(ErrorCodes.InvalidStoreQueryResult))); });
private async Task <CooperativeAdmin[]> _GetAllAdmins(Guid cooperativeId) { var request = ArrayPageRequest.CreateNormalizedRequest(); var admins = new List <CooperativeAdmin>(); ArrayPage <CooperativeAdmin> page; while ((page = await _queries.GetAdmins(cooperativeId, request)).Page.Length > 0) { admins.AddRange(page.Page); request = new ArrayPageRequest { PageIndex = request.PageIndex + 1, PageSize = request.PageSize }; } return(admins.ToArray()); }
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) }); }
public Operation <ArrayPage <Harvest> > GetHarvests(Guid farmId, ArrayPageRequest request = null) => Operation.Try(async() => { //validate parameter farmId.ThrowIf( default(Guid), new GaiaException(PolluxErrorCodes.InvalidArgument)); var farm = (await _queries .GetFarm(farmId)) .ThrowIfNull(new GaiaException(ErrorCodes.InvalidStoreQueryResult)); //data access authorization await _dataAuth.AuthorizeCustomAccess(new FarmerDataAccess { Farmer = farm.Owner, Farm = farm }); return((await _queries .GetHarvests(farmId, request)) .ThrowIfNull(new GaiaException(ErrorCodes.InvalidStoreQueryResult))); });
public async Task <ArrayPage <Farmer> > GetAllFarmers(ArrayPageRequest request = null) { request = request?.Normalize() ?? ArrayPageRequest.CreateNormalizedRequest(); var dataQuery = _query .Query <Entities.Farmer>(d => d.User, d => d.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 <Farmer> { TotalLength = longCount, PageIndex = request.PageIndex.Value, PageSize = request.PageSize.Value, Page = filtered.TransformQuery <Entities.Farmer, Farmer>( _transformer, TransformCommand.Query) }); }
public async Task <ArrayPage <Harvest> > GetHarvests(Guid farmId, Guid batchId, ArrayPageRequest request = null) { request = request?.Normalize() ?? ArrayPageRequest.CreateNormalizedRequest(); var dataQuery = _query .Query <Entities.Harvest>( h => h.Batch, h => h.Produce) .Where(h => batchId.CompareTo(h.HarvestBatchId) == 0) .Where(h => farmId.CompareTo(h.Batch.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 <Harvest> { TotalLength = longCount, PageIndex = request.PageIndex.Value, PageSize = request.PageSize.Value, Page = filtered.TransformQuery <Entities.Harvest, Harvest>( _transformer, TransformCommand.Query) }); }
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) }); }
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) }); }