Skip to content

Commit 37c4144

Browse files
feat: Add Plant model
1 parent 0309b47 commit 37c4144

File tree

1 file changed

+83
-0
lines changed
  • Uno.Gallery/Uno.Gallery.Shared/Entities/Data

1 file changed

+83
-0
lines changed
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
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

Comments
 (0)