Esempio n. 1
0
 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));
             }
         }
     }
 }
Esempio n. 2
0
        /// <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));
        }
Esempio n. 4
0
        //
        // 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();
        }
Esempio n. 6
0
        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)));
        }
Esempio n. 7
0
 public IHttpActionResult Get(int pageNumber, int pageSize, [FromBody] PersonSearchParams searchParams)
 {
     return(Ok(_personService.GetPersons(pageNumber, pageSize, searchParams)));
 }