public ActionResult Search([FromBody] ProviderSearchDTO model) { Expression <Func <Provider, bool> > filter = x => !string.IsNullOrWhiteSpace(x.Id); if (!string.IsNullOrWhiteSpace(model.Name)) { filter = filter.AndOrCustom( x => x.Name.ToUpper().Contains(model.Name.ToUpper()), model.Condition.Equals(ActionDto.AND)); } if (!string.IsNullOrWhiteSpace(model.Phone)) { filter = filter.AndOrCustom( x => x.Phone.ToUpper().Contains(model.Phone.ToUpper()), model.Condition.Equals(ActionDto.AND)); } if (!string.IsNullOrWhiteSpace(model.Email)) { filter = filter.AndOrCustom( x => x.Email.ToUpper().Contains(model.Email.ToUpper()), model.Condition.Equals(ActionDto.AND)); } var providers = this.service.Search(filter); return(Ok(providers)); }
public ActionResult Search([FromBody] ProviderSearchDTO model) { Expression <Func <Provider, bool> > filter = x => !string.IsNullOrWhiteSpace(x.Id); try{ filter = filter.AndOrCustom( x => x.Name.ToUpper().Contains(model.Name.ToUpper())); filter = filter.AndOrCustom( x => x.Email.ToUpper().Contains(model.Email.ToUpper())); var provider = this.mapper.Map <IEnumerable <ProviderSearchDTO> >(this.service.Search(filter)); return(Ok(provider)); }catch (Exception) { return(Ok(new { Success = false, Message = "The name or email are invalid" })); } }