public async Task <ICrudResult <List <Recipe> > > ReadManyAsync(ICrudCriteria <EmptyClass> criteria) { // Initialze result and verify a valid criteria. var result = new CollectionCrudResult <Recipe>(); // Start building the query. var query = this.Context.Recipes.Include(r => r.Tags).Where(r => r.AccountId == criteria.AccountId); // Add RecipeCriteria to the query if applicable. var recipeCriteria = criteria as RecipesCriteria; if (recipeCriteria != null) { if (!String.IsNullOrWhiteSpace(recipeCriteria.NameFilter)) { query = query.Where(r => r.Name.StartsWith(recipeCriteria.NameFilter)); } if (recipeCriteria.TagId > 0) { query = query.Where(r => r.Tags.Any(t => t.Id == recipeCriteria.TagId)); } } // Evaluate the query and return results. query = query.OrderBy(r => r.Name); result.Model = await query.ToListAsync(); result.Success = true; return(result); }
public async Task <ICrudResult <List <Tag> > > ReadManyAsync(ICrudCriteria <EmptyClass> criteria) { // Initialze result and verify a valid criteria. var result = new CollectionCrudResult <Tag>(); // Read the tags for the user for the data source, order by descripton and return. if (criteria != null) { result.Model = await this.Context.Tags .Where(t => t.AccountId == criteria.AccountId) .OrderBy(t => t.Description) .ToListAsync(); result.Success = true; } else { result.ErrorMessage = "Cannot search for tags using a null criteria."; } return(result); }
public async Task <ICrudResult <List <Account> > > ReadManyAsync(ICrudCriteria <EmptyClass> criteria) { // Initialze result and verify a valid criteria. var result = new CollectionCrudResult <Account>(); // If the read request is authorization attempt to authorize otherwise throw. var authorizationCriteria = criteria as AuthorizationCriteria; if (authorizationCriteria != null) { var activeStatus = AccountStatus.Active.ToString(); var account = await this.Context.Accounts .Where(a => a.UserName == authorizationCriteria.UserName && a.Status == activeStatus) .FirstOrDefaultAsync(); if (account != null && account.Password == CoreUtility.EncryptPassword(authorizationCriteria.Password, account.Salt)) { result.Model = new List <Account>() { account }; result.Success = true; } else { result.ErrorMessage = "Authorization failed."; } } else { throw new InvalidOperationException(); } return(result); }