Пример #1
0
        /**
         * Returns results of search the animals data by key/value, using
         * inclusion of the search term.
         */
        public List <Animal> FindByColumnAndValue(AnimalFieldType column, string value)
        {
            var results = from j in Animals
                          where GetFieldByType(j, column).Contains(value)
                          select j;

            return(results.ToList());
        }
Пример #2
0
        // Lists Animals with a given field matching a given value
        public IActionResult Animals(AnimalFieldType column, string value)
        {
            SearchAnimalsViewModel animalsViewModel = new SearchAnimalsViewModel();

            animalsViewModel.Animals = animalData.FindByColumnAndValue(column, value);
            animalsViewModel.Title   = "Animals with " + column + ": " + value;

            return(View(animalsViewModel));
        }
Пример #3
0
        /**
         * Returns the AnimalField of the given type from the Animal object,
         * for all types other than AnimalFieldType.All. In this case,
         * null is returned.
         */
        public static AnimalField GetFieldByType(Animal animal, AnimalFieldType type)
        {
            switch (type)
            {
            case AnimalFieldType.Size:
                return(animal.Size);

            case AnimalFieldType.Origin:
                return(animal.Origin);

            case AnimalFieldType.Eat:
                return(animal.Eat);

            case AnimalFieldType.Kind:
                return(animal.Kind);
            }

            throw new ArgumentException("Cannot get field of type: " + type);
        }
Пример #4
0
        // Lists the values of a given column, or all animals if selected
        public IActionResult Values(AnimalFieldType column)
        {
            if (column.Equals(AnimalFieldType.All))
            {
                SearchAnimalsViewModel animalsViewModel = new SearchAnimalsViewModel();
                animalsViewModel.Animals = animalData.Animals;
                animalsViewModel.Title   = "All Animals";
                return(View("Animals", animalsViewModel));
            }
            else
            {
                AnimalFieldsViewModel animalFieldsViewModel = new AnimalFieldsViewModel();

                IEnumerable <AnimalField> fields;

                switch (column)
                {
                case AnimalFieldType.Size:
                    fields = animalData.Sizes.ToList().Cast <AnimalField>();
                    break;

                case AnimalFieldType.Origin:
                    fields = animalData.Origins.ToList().Cast <AnimalField>();
                    break;

                case AnimalFieldType.Eat:
                    fields = animalData.Eats.ToList().Cast <AnimalField>();
                    break;

                case AnimalFieldType.Kind:
                default:
                    fields = animalData.Kinds.ToList().Cast <AnimalField>();
                    break;
                }

                animalFieldsViewModel.Fields = fields;
                animalFieldsViewModel.Title  = "All " + column + " Values";
                animalFieldsViewModel.Column = column;

                return(View(animalFieldsViewModel));
            }
        }