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); }
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); }
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); }