|
| 1 | +using System; |
| 2 | +using System.Collections.Generic; |
| 3 | +using System.Linq; |
| 4 | +using static Uno.Gallery.Entities.Data.Plant; |
| 5 | + |
| 6 | +namespace Uno.Gallery.Entities.Data; |
| 7 | + |
| 8 | +public class Plant : IComparable |
| 9 | +{ |
| 10 | + public Plant( |
| 11 | + string plantName, |
| 12 | + int plantsCount, |
| 13 | + FruitOrVegetableEnum fruitOrVegetable, |
| 14 | + DateTime plantDate, |
| 15 | + bool isWatered) |
| 16 | + { |
| 17 | + PlantName = plantName; |
| 18 | + PlantsCount = plantsCount; |
| 19 | + FruitOrVegetable = fruitOrVegetable; |
| 20 | + PlantDate = plantDate; |
| 21 | + IsWatered = isWatered; |
| 22 | + } |
| 23 | + |
| 24 | + public string PlantName { get; set; } |
| 25 | + public int PlantsCount { get; set; } |
| 26 | + public enum FruitOrVegetableEnum { Fruit, Vegetable } |
| 27 | + public FruitOrVegetableEnum FruitOrVegetable { get; set; } |
| 28 | + public DateTime PlantDate { get; set; } |
| 29 | + public bool IsWatered { get; set; } |
| 30 | + |
| 31 | + public IEnumerable<FruitOrVegetableEnum> FruitOrVegetableEnumValues { get; } = |
| 32 | + Enum.GetValues(typeof(FruitOrVegetableEnum)).Cast<FruitOrVegetableEnum>(); |
| 33 | + |
| 34 | + public int CompareTo(object obj) |
| 35 | + { |
| 36 | + if (obj == null) |
| 37 | + return 1; |
| 38 | + |
| 39 | + if (obj is Plant otherPlant) |
| 40 | + { |
| 41 | + return PlantName.CompareTo(otherPlant.PlantName); |
| 42 | + } |
| 43 | + else |
| 44 | + { |
| 45 | + throw new ArgumentException("Object is not a Plant"); |
| 46 | + } |
| 47 | + } |
| 48 | +} |
| 49 | + |
| 50 | +public class PlantCollection : List<Plant> |
| 51 | +{ |
| 52 | + public PlantCollection() : base(GetPlants()) { } |
| 53 | + |
| 54 | + private static IEnumerable<Plant> GetPlants() |
| 55 | + { |
| 56 | + yield return new Plant("Tomato", 12, FruitOrVegetableEnum.Vegetable, new DateTime(2021, 5, 29), true); |
| 57 | + yield return new Plant("Cucumber", 10, FruitOrVegetableEnum.Vegetable, new DateTime(2021, 6, 15), true); |
| 58 | + yield return new Plant("Bell Pepper", 15, FruitOrVegetableEnum.Vegetable, new DateTime(2021, 4, 15), false); |
| 59 | + yield return new Plant("Lettuce", 8, FruitOrVegetableEnum.Vegetable, new DateTime(2021, 4, 1), true); |
| 60 | + yield return new Plant("Strawberry", 35, FruitOrVegetableEnum.Fruit, new DateTime(2021, 5, 1), true); |
| 61 | + yield return new Plant("Carrot", 5, FruitOrVegetableEnum.Vegetable, new DateTime(2021, 3, 15), false); |
| 62 | + yield return new Plant("Watermelon", 1, FruitOrVegetableEnum.Fruit, new DateTime(2021, 6, 1), true); |
| 63 | + yield return new Plant("Blueberries", 31, FruitOrVegetableEnum.Fruit, new DateTime(2021, 6, 20), true); |
| 64 | + yield return new Plant("Eggplant", 7, FruitOrVegetableEnum.Vegetable, new DateTime(2021, 5, 10), false); |
| 65 | + yield return new Plant("Broccoli", 9, FruitOrVegetableEnum.Vegetable, new DateTime(2021, 4, 20), false); |
| 66 | + yield return new Plant("Raspberry", 18, FruitOrVegetableEnum.Fruit, new DateTime(2021, 5, 25), false); |
| 67 | + yield return new Plant("Pumpkin", 3, FruitOrVegetableEnum.Fruit, new DateTime(2021, 6, 10), true); |
| 68 | + yield return new Plant("Green Beans", 50, FruitOrVegetableEnum.Vegetable, new DateTime(2021, 5, 5), true); |
| 69 | + yield return new Plant("Kale", 10, FruitOrVegetableEnum.Vegetable, new DateTime(2021, 4, 15), true); |
| 70 | + yield return new Plant("Grapes", 25, FruitOrVegetableEnum.Fruit, new DateTime(2021, 9, 1), true); |
| 71 | + yield return new Plant("Potato", 6, FruitOrVegetableEnum.Vegetable, new DateTime(2021, 10, 15), false); |
| 72 | + yield return new Plant("Orange", 20, FruitOrVegetableEnum.Fruit, new DateTime(2021, 11, 1), true); |
| 73 | + yield return new Plant("Zucchini", 11, FruitOrVegetableEnum.Vegetable, new DateTime(2021, 8, 20), false); |
| 74 | + yield return new Plant("Apple", 30, FruitOrVegetableEnum.Fruit, new DateTime(2021, 10, 1), true); |
| 75 | + yield return new Plant("Spinach", 5, FruitOrVegetableEnum.Vegetable, new DateTime(2021, 7, 15), true); |
| 76 | + yield return new Plant("Pear", 15, FruitOrVegetableEnum.Fruit, new DateTime(2021, 8, 1), true); |
| 77 | + yield return new Plant("Celery", 7, FruitOrVegetableEnum.Vegetable, new DateTime(2021, 9, 10), true); |
| 78 | + yield return new Plant("Pineapple", 2, FruitOrVegetableEnum.Fruit, new DateTime(2021, 12, 1), true); |
| 79 | + yield return new Plant("Cherry", 40, FruitOrVegetableEnum.Fruit, new DateTime(2021, 6, 1), true); |
| 80 | + yield return new Plant("Mango", 8, FruitOrVegetableEnum.Fruit, new DateTime(2021, 9, 15), true); |
| 81 | + yield return new Plant("Cabbage", 12, FruitOrVegetableEnum.Vegetable, new DateTime(2021, 11, 15), true); |
| 82 | + } |
| 83 | +} |
0 commit comments