public async Task <HttpResponseMessage> PostContactsFilter([FromBody] ContactFilterModel contactFilterData, [FromUri] string[] param) { List <ContactResponseModel> response = await manager.GetFilteredContacts(contactFilterData, param); if (response == null) { return(Request.CreateResponse(HttpStatusCode.BadRequest, "wrong Url, can't work with database")); } return(Request.CreateResponse(HttpStatusCode.OK, response)); }
public IActionResult GetContacts([FromBody] ContactFilterModel filter) { filter.ThrowBadRequestIfNull($"The request must include a filter."); if (!filter.IsValid()) { throw new BadRequestException("Contact filter must contain valid values."); } Paged <Dal.Entities.PimsContactMgrVw> contacts = _pimsService.Contact.GetPage((ContactFilter)filter); return(new JsonResult(_mapper.Map <Api.Models.PageModel <ContactSummaryModel> >(contacts))); }
public async Task <List <ContactResponseModel> > GetFilteredContacts(ContactFilterModel contactFilterData, string[] orderParams) { return(await Task.Run(() => { List <ContactResponseModel> result = new List <ContactResponseModel>(); string resultQuery = "SELECT * FROM Contacts"; List <string> conditions = new List <string>(); if (!string.IsNullOrEmpty(contactFilterData.FullName)) { conditions.Add($" FullName LIKE '%{contactFilterData.FullName}%'"); } if (!string.IsNullOrEmpty(contactFilterData.CompanyName)) { conditions.Add($" CompanyName LIKE '%{contactFilterData.CompanyName}%'"); } if (!string.IsNullOrEmpty(contactFilterData.Position)) { conditions.Add($" Position LIKE '%{contactFilterData.Position}%'"); } if (!string.IsNullOrEmpty(contactFilterData.Country)) { conditions.Add($" Country LIKE '%{contactFilterData.Country}%'"); } if (!string.IsNullOrEmpty(contactFilterData.Email)) { conditions.Add($" Email LIKE '%{contactFilterData.Email}%'"); } if (conditions.Count != 0) { resultQuery += " WHERE"; foreach (var item in conditions) { resultQuery += item + " AND"; } resultQuery = resultQuery.Substring(0, resultQuery.Length - 4); } if (orderParams != null && orderParams.Length != 0) { resultQuery += " ORDER BY "; foreach (var item in orderParams) { resultQuery += $"{item.Replace('_', ' ')},"; } resultQuery = resultQuery.TrimEnd(','); } List <Contact> contactList; try { contactList = db.Database.SqlQuery <Contact>(resultQuery).ToList(); } catch { return null; } return contactList.Select(contact => factory.CreateContactResponseModel(contact)).ToList(); })); }
public HttpResponseMessage PostContactsFilter([FromBody] ContactFilterModel contactFilterData, [FromUri] string[] param) { var response = manager.GetFilteredContacts(contactFilterData, param); return(response == null?Request.CreateResponse(HttpStatusCode.BadRequest, "wrong Url, can't work with database") : Request.CreateResponse(HttpStatusCode.OK, response)); }