Example #1
0
        private void button1_Click(object sender, EventArgs e)
        {
            var        filter = new AnimalFilter();
            var        confd  = new ConfidenceCheck();
            List <Tag> tags   = animalImageTagger.GetTagsForImage(textBox1.Text);

            foreach (Tag tag in tags)
            {
                //checking each picutre
                filter.checkAnimal(tag.name, tag.confidence);
                if (confd.result(tag.confidence) == true)
                {
                    if (tag.name == "dog")
                    {
                        checkBox1.Checked = true;
                    }
                    else if (tag.name == "cat")
                    {
                        checkBox2.Checked = true;
                    }
                    else if (tag.name == "bird")
                    {
                        checkBox3.Checked = true;
                    }
                }
                pictureBox1.Image = Image.FromFile(@"" + textBox1.Text);
            }
        }
Example #2
0
        public async Task <IEnumerable <Stay> > HandleFilter(AnimalFilter filter)
        {
            IEnumerable <Stay> stayList = new List <Stay>();

            using (var httpClient = new HttpClient())
            {
                var builder = new UriBuilder(apiBaseUrl + "/api/stay");
                var query   = HttpUtility.ParseQueryString(builder.Query);
                query["AnimalType"]    = filter.AnimalType.ToString();
                query["ChildFriendly"] = filter.ChildFriendly.ToString();
                query["Gender"]        = filter.Gender.ToString();
                query["CanBeAdopted"]  = true.ToString();
                builder.Query          = query.ToString();
                string url = builder.ToString();

                using (var response = await httpClient.GetAsync(url))
                {
                    string apiResponse = await response.Content.ReadAsStringAsync();

                    stayList = JsonConvert.DeserializeObject <List <Stay> >(apiResponse);
                }

                return(stayList);
            }
        }
Example #3
0
        public Pagination <AnimalDto> GetAllAnimals(AnimalFilter filter = null, AnimalPaginationFilter pagination = null)
        {
            var filterQuery             = _mapper.Map <AnimalQuery>(filter);
            var paginationQuery         = _mapper.Map <AnimalPaginationQuery>(pagination);
            var skip                    = (paginationQuery.PageNumber - 1) * paginationQuery.PageSize;
            IQueryable <Animal> animals = _repository.GetAllQueryable()
                                          .Where(x => x.Status != AnimalStatus.Adopted && !x.IsHidden)
                                          .Include(animal => animal.Images)
                                          .Include(x => x.Category)
                                          .Include(x => x.Videos)
                                          .Include(x => x.Description)
                                          .Include(x => x.Breed)
                                          .OrderByDescending(x => x.IsNew).ThenByDescending(x => x.FoundDate);

            if (filter != null)
            {
                animals = _animalFilterService.AddAllFiltersQuery(filterQuery, animals);
            }
            var queryResult   = animals.ToList();
            var animalsResult = animals.Select(x => _mapper.Map <AnimalDto>(x))
                                .Skip(skip).Take(paginationQuery.PageSize).ToList();
            var paginationResponse = PaginationHelper.CreatePaginatedResponse(_uriService, paginationQuery,
                                                                              animalsResult, queryResult, "/Animal/GetAllAnimalsIncludeValues", filterQuery);

            return(paginationResponse);
        }
Example #4
0
        public void FilterByEmptyConditions()
        {
            AnimalFilter animalFilter = new AnimalFilter();

            IEnumerable <Animal> animals = controller.Get(animalFilter);

            Assert.Equal(8, animals.Count());
        }
Example #5
0
        public async Task <IActionResult> IndexAsync([FromQuery] AnimalFilter animalFilters)
        {
            var vm = new StayViewModel();

            vm.Stays = await _stayRepository.HandleFilter(animalFilters);

            return(View(vm));
        }
Example #6
0
        public void FilterByStrainTest()
        {
            AnimalFilter animalFilter = new AnimalFilter();

            animalFilter.Strain = "kot";

            IEnumerable <Animal> animals = controller.Get(animalFilter);

            Assert.Equal(2, animals.Count());
        }
Example #7
0
        public void FilterByAgeAndSizeTest()
        {
            AnimalFilter animalFilter = new AnimalFilter();

            animalFilter.Size = 2;
            animalFilter.Age  = 4;

            IEnumerable <Animal> animals = controller.Get(animalFilter);

            Assert.Equal(1, animals.Count());
        }
Example #8
0
        public void FilterByWeightAndStrain()
        {
            AnimalFilter animalFilter = new AnimalFilter();

            animalFilter.Strain = "papuga";
            animalFilter.Weight = 50;

            IEnumerable <Animal> animals = controller.Get(animalFilter);

            Assert.Equal(0, animals.Count());
        }
Example #9
0
        public IEnumerable <Stay> GetAllWithFilter(AnimalFilter filter = null)
        {
            var stayList = _stayRepository.GetStayWithAnimal();

            if (filter == null)
            {
                return(stayList.ToList());
            }
            else
            {
                return(AddFilters(filter, stayList));
            }
        }
Example #10
0
        public IEnumerable <Animal> Get([FromQuery] AnimalFilter filter) //returns list of all animals (filtering and sorting is avaliable)
        {
            IEnumerable <Animal> animals = _context.Animal;

            if (filter != null && filter.ParametersExist())
            {
                animals = filter.FilterAnimals(animals);
            }
            if (filter != null && filter.OrderParameterExist())
            {
                animals = filter.SortAnimals(animals);
            }
            return(animals);
        }
Example #11
0
        public void SortBySizeAscending()
        {
            bool         compareSize  = true;
            AnimalFilter animalFilter = new AnimalFilter();

            animalFilter.OrderBy = "Size";
            IEnumerable <Animal> animals = controller.Get(animalFilter);

            for (int i = 0; i < animals.Count() - 1; i++)
            {
                compareSize = (animals.ElementAt(i).Size <= animals.ElementAt(i + 1).Size);
            }
            Assert.True(compareSize);
        }
Example #12
0
 public ActionResult <Pagination <IEnumerable <AnimalDto> > > Get([FromQuery] AnimalFilter getAllAnimalPostFilter = null
                                                                  , [FromQuery] AnimalPaginationFilter pagination = null)
 {
     try
     {
         var animals = _animalService.GetAllAnimals(getAllAnimalPostFilter, pagination);
         return(Ok(animals));
     }
     catch (Exception ex)
     {
         //log error
         return(BadRequest(ex.Message));
     }
 }
Example #13
0
        public void SortByDateDescending()
        {
            bool         compareDate  = true;
            AnimalFilter animalFilter = new AnimalFilter();

            animalFilter.OrderBy = "Added desc";
            IEnumerable <Animal> animals = controller.Get(animalFilter);

            for (int i = 0; i < animals.Count() - 1; i++)
            {
                compareDate = (DateTime.Compare(animals.ElementAt(i).Added, animals.ElementAt(i + 1).Added) >= 0);
            }
            Assert.True(compareDate);
        }
Example #14
0
        public void GetQueryString_returns_correct_filter()
        {
            var filter = new AnimalFilter()
            {
                Breed    = "apple",
                Distance = 1,
                Location = 2,
            };

            var expected = $"{mockOptions.Object.Value.PetFinderAnimalUrl}?location=2&distance=1&breed=apple";

            var result = petFinderService.GetQueryString(filter);

            Assert.AreEqual(expected, result);
        }
Example #15
0
        public async Task <IActionResult> Filter(StayViewModel stay)
        {
            var vm = new StayViewModel();

            AnimalFilter filter = new AnimalFilter
            {
                Gender        = stay.Animal.Gender,
                AnimalType    = stay.Animal.AnimalType,
                ChildFriendly = stay.Animal.ChildFriendly,
                CanBeAdopted  = true
            };

            vm.Stays = await _stayRepository.HandleFilter(filter);

            return(View("Views/Stay/Index.cshtml", vm));
        }
Example #16
0
        public IActionResult AnimalPagedList([FromQuery] AnimalFilter filter)
        {
            try
            {
                var result = new PagingResultViewModel <AnimalListViewModel>();

                var pagingAnimals = _animalService.GetAnimals(filter.Page.Value, filter.PageSize.Value, filter.AnimalStatus, filter.Search, filter.IsActive);

                if (pagingAnimals.Elements.Any())
                {
                    var animalsListViewModel = pagingAnimals.Elements.Select(animal => new AnimalListViewModel()
                    {
                        Id          = animal.Id,
                        Name        = animal.Name,
                        Age         = animal.Age,
                        AnimalType  = animal.AnimalType.GetDescription(),
                        Behavior    = animal.Behavior,
                        Breed       = animal.Breed,
                        Status      = animal.Status,
                        AdopterName = animal.Adopter?.Name,
                        PictureUrl  = animal.PictureUrl
                    });

                    result = new PagingResultViewModel <AnimalListViewModel>(filter.Page.Value, filter.PageSize.Value)
                    {
                        Elements      = animalsListViewModel,
                        ElementsCount = pagingAnimals.ElementsCount
                    };
                }
                else
                {
                    return(RequestResponse(HttpStatusCode.NotFound, "hipets/api/v1/animals", result: "No content"));
                }

                return(IsAValidOperation()
                    ? RequestResponse(HttpStatusCode.OK, result: result)
                    : RequestResponse(HttpStatusCode.NotFound, "hipets/api/v1/animals", isError: true));
            }
            catch (Exception ex)
            {
                var error = JsonConvert.SerializeObject(ex);
                _logger.LogError(error);

                return(RequestResponse(HttpStatusCode.BadRequest, isError: true, result: "Ocorreu um erro ao listar os animais"));
            }
        }
Example #17
0
        public IEnumerable <Animal> GetByStrain(string strain, [FromQuery] AnimalFilter filter) //returns animal with specific strain (filtering and sorting is avaliable)
        {
            IEnumerable <Animal> animals = Enumerable.Empty <Animal>();;

            if (!String.IsNullOrEmpty(strain))
            {
                animals = _context.Animal.Where(a => a.Strain.Equals(strain));
            }
            if (filter != null && filter.ParametersExist())
            {
                animals = filter.FilterAnimals(animals);
            }
            if (filter != null && filter.OrderParameterExist())
            {
                animals = filter.SortAnimals(animals);
            }
            return(animals);
        }
Example #18
0
        public async Task <AnimalResult> GetPets(AnimalFilter filters)
        {
            var result   = new AnimalResult();
            var filter   = GetQueryString(filters);
            var response = await Get(filter);

            if (response.IsSuccessStatusCode)
            {
                var data = await response.Content.ReadAsStringAsync();

                result = JsonConvert.DeserializeObject <AnimalResult>(data);
            }
            else
            {
                throw new Exception(response.ReasonPhrase);
            }

            return(result);
        }
Example #19
0
        public string GetQueryString(AnimalFilter filters)
        {
            if (filters == null)
            {
                return(settings.Value.PetFinderAnimalUrl);
            }

            List <string> parameters = new List <string>();

            foreach (var property in filters.GetType().GetProperties())
            {
                if (property.GetValue(filters) != null)
                {
                    parameters.Add($"{property.Name.ToLower()}={property.GetValue(filters)}");
                }
            }

            var queryUrl = $"{settings.Value.PetFinderAnimalUrl}?{string.Join('&', parameters.ToArray())}";

            return(queryUrl);
        }
Example #20
0
        // TODO: Clean this function up if possible
        private IEnumerable <Stay> AddFilters(AnimalFilter filter, IEnumerable <Stay> stays)
        {
            // Filter will only work on animals that can actually be adopted; others should not show up
            stays = stays.Where(x => x.CanBeAdopted == true);

            if (filter.AnimalType != null)
            {
                stays = stays.Where(x => x.Animal.AnimalType == filter.AnimalType);
            }

            if (filter.ChildFriendly != null)
            {
                stays = stays.Where(x => x.Animal.ChildFriendly == filter.ChildFriendly);
            }

            if (filter.Gender != null)
            {
                stays = stays.Where(x => x.Animal.Gender == filter.Gender);
            }

            return(stays.ToList());
        }
        static void Main(string[] args)
        {
            List <IAnimal> animals = new List <IAnimal>
            {
                new Mamifero {
                    Name = "Tigre", Order = AnimalOrder.Carnivoro
                },
                new Mamifero {
                    Name = "Chimpancé", Order = AnimalOrder.Omnivoro
                },
                new Ave {
                    Name = "Aguila", Order = AnimalOrder.Carnivoro
                },
                new Ave {
                    Name = "Condor", Order = AnimalOrder.Carnivoro
                },
                new Pez {
                    Name = "Pez globo", Order = AnimalOrder.Carnivoro
                },
                new Mamifero {
                    Name = "Vaca", Order = AnimalOrder.Herbivoro
                },
                new Mamifero {
                    Name = "Oveja", Order = AnimalOrder.Herbivoro
                }
            };

            animals.ForEach(animal => Console.WriteLine(animal.ToString()));

            Console.WriteLine("Aves:");
            var birds = new AnimalFilter().FilterByClass(animals, AnimalClass.Aves);

            birds.ForEach(bird => Console.WriteLine(bird.ToString()));

            Console.ReadLine();
        }
Example #22
0
        public IActionResult Index([FromQuery] AnimalFilter animalFilters)
        {
            var animalList = _stayService.GetAllWithFilter(animalFilters);

            return(Ok(animalList.ToList()));
        }