public IEnumerable <Person> GetByFilters(PersonSearchParams filters) { using (SqlCommand cmd = this.connection.CreateCommand()) { cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = "paging"; //cmdGet.Parameters["@id"].Value = id; using (SqlDataReader dr = cmd.ExecuteReader()) { while (dr.Read()) { yield return(Create(dr)); } } } }
/// <summary> /// Возвращает страницу списка Persons с учетом параметров поиска <paramref name="searchParams"/> /// </summary> /// <param name="pageNumber"></param> /// <param name="pageSize"></param> /// <param name="searchParams"></param> /// <returns></returns> public IList <PersonModel> GetPersons(int pageNumber, int pageSize, PersonSearchParams searchParams = null) { var page = new PageInfo(pageNumber, pageSize); var sex = searchParams?.SexId; var persons = _personRepository.FindPerson(page, searchParams?.Alphabetically, sex); var listPerson = PersonModelHelper.GetPersonModels(persons); foreach (var item in listPerson) { var models = _personRepository.GetConnections(item.Id); item.Connections = PersonModelHelper.GetConnectionModels(models); var con = item.Connections.FirstOrDefault(o => o.Event != null); item.EventName = con?.Event?.Name; item.EventType = con?.Event?.EventCategory; item.LastChange = LogModelHelper.GetLastChangeModel(_logRepository.GetLastChangePerson(item.Id)); } return(listPerson); }
public IActionResult Search([FromBody] PersonSearchParams param) { IEnumerable <Person> allPerson = _unitOfWork.PersonRepository.GetAll(); IEnumerable <Person> filtered = new PersonSelectQueryBuilder(allPerson).Filter(param, _unitOfWork); List <Tuple <Person, string> > toReturn = new List <Tuple <Person, string> >(); foreach (var person in filtered) { File img = _unitOfWork.FileRepository.GetByKey(person.PhotoId); toReturn.Add(new Tuple <Person, string>(person, $"data:{img.FileType};base64,{FileManager.GetBase64File(img.Path)}")); } return(Json(toReturn)); }
// // Get an array of all Person that match the PersonSearchParams parameters in the database // // Argumentos 1º name , 2º birthday , 3º nacionalidade public PersonSearchResult GetAllPerson(PersonSearchParams personSearchParams) { try { string[] filters = personSearchParams.filters; using (var connect = new Connect()) { SqlConnection sqlconn = connect.GetConnection(); var personDoa = new PersonDataMapper(sqlconn); PersonSearchResult sr = new PersonSearchResult(); sr.result = personDoa.GetAll().Where(p => p.Birthplace == filters[2]).ToArray(); return(sr); } } catch (Exception exception) { throw new FaultException <ServerError>(new ServerError(), "Server Error "); } }
public void SearchTest() { PersonSearchParams pss = new PersonSearchParams() { Name = "name", Country = "Ukraine" }; Mock <IUnitOfWork> uow = new Mock <IUnitOfWork>(); uow.Setup(x => x.PersonRepository.GetAll()).Returns(new List <Person>() { new Person() { Id = 1, Name = "name", Country = "Ukraine" } }); PersonService ps = new PersonService(uow.Object); Mock <Microsoft.Extensions.Configuration.IConfiguration> conf = new Mock <Microsoft.Extensions.Configuration.IConfiguration>(); PersonApiController pc = new PersonApiController(ps, uow.Object, conf.Object); var result = pc.Search(pss) as JsonResult; result.Value.Should().NotBeNull(); }
public IEnumerable <Person> Filter(PersonSearchParams param, IUnitOfWork uow) { DateTime startDate = default(DateTime); DateTime endDate = default(DateTime); if (!string.IsNullOrWhiteSpace(param.StartDate) && !string.IsNullOrWhiteSpace(param.EndDate)) { startDate = DateTime.Parse(param.StartDate); endDate = DateTime.Parse(param.EndDate); toFilter = toFilter.Where(x => x.BirthDate >= startDate && x.BirthDate <= endDate); } if (!string.IsNullOrWhiteSpace(param.Role)) { List <Person> a = new List <Person>(); List <PersonRole> personRoles = uow.PersonRoleRepository.GetAll().ToList(); List <FilmRole> filmRoles = uow.FilmRoleRepository.GetAll().ToList(); foreach (var person in toFilter) { var personRolesCurr = personRoles.Where(x => x.PersonId == person.Id); bool success = false; foreach (var pr in personRolesCurr) { FilmRole fr = filmRoles.Where(x => x.Id == pr.FilmRoleId).First(); if (fr.Name.ToLower().Equals(param.Role.Trim().ToLower())) { success = true; break; } } if (success) { a.Add(person); } } toFilter = a; } if (!String.IsNullOrWhiteSpace(param.Name)) { toFilter = toFilter.Where(x => x.Name.ToLower().Contains(param.Name.Trim().ToLower())); } if (!String.IsNullOrWhiteSpace(param.Surname)) { toFilter = toFilter.Where(x => x.Surname.ToLower().Contains(param.Surname.ToLower().Trim())); } if (!String.IsNullOrWhiteSpace(param.Country)) { toFilter = toFilter.Where(x => x.Country.ToLower().Contains(param.Country.ToLower().Trim())); } toFilter = toFilter.Where(x => x.Id > param.LastId); return(toFilter.Take(Math.Min(toFilter.Count(), param.ChunkSize))); }
public IHttpActionResult Get(int pageNumber, int pageSize, [FromBody] PersonSearchParams searchParams) { return(Ok(_personService.GetPersons(pageNumber, pageSize, searchParams))); }