Пример #1
0
        public IEnumerable <User> GetAll(string query, string name, string address, string ids, int startId)
        {
            //initialize a list
            IEnumerable <User> list = _userRepo.GetAll();

            //case has query
            if (query.Length > 0)
            {
                //validate

                if (query.Contains("start-id="))
                {
                    if (!util.ValidIntParam(query, "start-id=", startId))
                    {
                        return(null);
                    }
                }

                if (query.Contains("ids="))
                {
                    if (!util.ValidIntParams(query, "ids=", ids))
                    {
                        return(null);
                    }
                }

                if (query.Contains("name="))
                {
                    if (!util.ValidStringParam(query, "name=", name))
                    {
                        return(null);
                    }
                }

                if (query.Contains("address="))
                {
                    if (!util.ValidStringParam(query, "address=", address))
                    {
                        return(null);
                    }
                }

                //case param
                if (!query.Contains("&"))
                {
                    //name
                    if (query.Contains("name="))
                    {
                        return(list.Where(brand => brand.Name.Equals(name)));
                    }

                    //address
                    if (query.Contains("address="))
                    {
                        return(list.Where(brand => brand.Address.Equals(address)));
                    }

                    //ids
                    if (query.Contains("ids="))
                    {
                        return(list.Where(brand => ids.Contains(brand.Id.ToString())));
                    }

                    //startId
                    if (query.Contains("start-id="))
                    {
                        return(list.Where(brand => brand.Id >= startId));
                    }
                }

                //case params
                if (query.Contains("&"))
                {
                    //case params: name, address
                    if (query.Contains("name=") & query.Contains("address="))
                    {
                        return(list.Where(brand => brand.Name.Equals(name) && brand.Address.Equals(address)));
                    }
                }
                return(null);
            } // end if uri has query

            //case uri has no query
            return(list);
        }
Пример #2
0
        public IEnumerable <Store> GetAll(string query, int brandId, string name, string address,
                                          string ids, int startId)
        {
            //initialize a list
            IEnumerable <Store> list = _repo.GetAll();

            //case has query
            if (query.Length > 0)
            {
                //validate

                if (query.Contains("brand-id="))
                {
                    if (!util.ValidIntParam(query, "brand-id=", brandId))
                    {
                        return(null);
                    }
                }

                if (query.Contains("start-id="))
                {
                    if (!util.ValidIntParam(query, "id=", startId))
                    {
                        return(null);
                    }
                }

                if (query.Contains("ids="))
                {
                    if (!util.ValidIntParams(query, "ids=", ids))
                    {
                        return(null);
                    }
                }

                if (query.Contains("name="))
                {
                    if (!util.ValidStringParam(query, "name=", name))
                    {
                        return(null);
                    }
                }

                if (query.Contains("address="))
                {
                    if (!util.ValidStringParam(query, "address=", address))
                    {
                        return(null);
                    }
                }

                //id, ids must not in a uri
                if (query.Contains("brand-id=") && query.Contains("ids="))
                {
                    return(null);
                }

                //page only involve with limit and fields
                //not filter changing list item
                if (query.Contains("page=") && (query.Contains("brand-id=") ||
                                                query.Contains("name=") ||
                                                query.Contains("address=") ||
                                                query.Contains("ids=") ||
                                                query.Contains("start-id=")))
                {
                    return(null);
                }

                //case param
                if (!query.Contains("&"))
                {
                    //id
                    if (query.Contains("brand-id="))
                    {
                        return(list.Where(store => store.BrandId == brandId));
                    }

                    //name
                    if (query.Contains("name="))
                    {
                        return(list.Where(store => store.Name.Equals(name)));
                    }

                    //address
                    if (query.Contains("address="))
                    {
                        return(list.Where(store => store.Address.Equals(address)));
                    }

                    //ids
                    if (query.Contains("ids="))
                    {
                        return(list.Where(store => ids.Contains(store.Id.ToString())));
                    }

                    //startId
                    if (query.Contains("start-id="))
                    {
                        return(list.Where(store => store.Id >= startId));
                    }
                }

                //case params
                if (query.Contains("&"))
                {
                    //case params: name, address
                    if (query.Contains("name=") & query.Contains("address="))
                    {
                        return(list.Where(store => store.Name.Equals(name) && store.Address.Equals(address)));
                    }

                    //case params: id, address
                    if (query.Contains("brand-id=") && query.Contains("address="))
                    {
                        return(list.Where(store => store.BrandId == brandId && store.Address.Equals(address)));
                    }

                    //case params: id, name
                    if (query.Contains("brand-id=") && query.Contains("name="))
                    {
                        return(list.Where(store => store.BrandId == brandId && store.Name.Equals(name)));
                    }

                    //case params: id, name, address
                    if (query.Contains("brand-id=") && query.Contains("name=") && query.Contains("address="))
                    {
                        return(list.Where(store => store.BrandId == brandId && store.Name.Equals(name) &&
                                          store.Address.Equals(address)));
                    }
                }
                return(null);
            } // end if uri has query

            //case uri has no query
            return(list);
        }
Пример #3
0
        public IEnumerable <Brand> GetAll(string query, string name, string address, string ids, int startId)
        {
            //initialize a list
            IEnumerable <Brand> list = _repo.GetAll();

            //case has query
            if (query.Length > 0)
            {
                //validate

                if (query.Contains("start-id="))
                {
                    if (!util.ValidIntParam(query, "start-id=", startId))
                    {
                        return(null);
                    }
                }

                if (query.Contains("ids="))
                {
                    if (!util.ValidIntParams(query, "ids=", ids))
                    {
                        return(null);
                    }
                }

                if (query.Contains("name="))
                {
                    if (!util.ValidStringParam(query, "name=", name))
                    {
                        return(null);
                    }
                }

                if (query.Contains("address="))
                {
                    if (!util.ValidStringParam(query, "address=", address))
                    {
                        return(null);
                    }
                }

                //page only involve with limit and fields
                //not filter changing list item
                if (query.Contains("page=") && (query.Contains("name=") ||
                                                query.Contains("address=") ||
                                                query.Contains("ids=") ||
                                                query.Contains("start-id=")))
                {
                    return(null);
                }

                //case param
                if (!query.Contains("&"))
                {
                    //name
                    if (query.Contains("name="))
                    {
                        return(list.Where(brand => brand.Name.ToLower().Equals(name.Trim().ToLower())));
                    }

                    //address
                    if (query.Contains("address="))
                    {
                        return(list.Where(brand => brand.Address.Equals(address)));
                    }

                    //ids
                    if (query.Contains("ids="))
                    {
                        return(list.Where(brand => ids.Contains(brand.Id.ToString())));
                    }

                    //startId
                    if (query.Contains("start-id="))
                    {
                        return(list.Where(brand => brand.Id >= startId));
                    }

                    //limit must be last
                    if (query.Contains("limit="))
                    {
                        return(list);
                    }
                }

                //case params
                if (query.Contains("&"))
                {
                    //case params: name, address
                    if (query.Contains("name=") & query.Contains("address="))
                    {
                        return(list.Where(brand => brand.Name.Equals(name) && brand.Address.Equals(address)));
                    }
                }
                return(null);
            } // end if uri has query

            //case uri has no query
            return(list);
        }