Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }