// Returns true if the any of the flowering months contained in Wanted matches any of the flowering months in Test // e.g. if Wanted = "Jan or Feb" and Test = "Feb or Mar" then true // if Wanted = "Jan or Feb" and Test = "Mar or Apr" then false // if Wanted = "Jan or Feb" and Test = "AllMonths" then true private bool IncludesMonths(FloweringMonths wanted, FloweringMonths candidate) { FloweringMonths[] target = { FloweringMonths.Jan, FloweringMonths.Feb, FloweringMonths.Mar, FloweringMonths.Apr, FloweringMonths.May, FloweringMonths.Jun, FloweringMonths.Jul, FloweringMonths.Aug, FloweringMonths.Sep, FloweringMonths.Oct, FloweringMonths.Nov, FloweringMonths.Dec }; bool result = false; foreach (FloweringMonths f in target) { result = result || (candidate.HasFlag(f) && wanted.HasFlag(f)); } return(result || wanted.HasFlag(FloweringMonths.AllMonths)); }
private async Task <ObservableCollection <Plant> > GetPlantsAsync(FloweringMonths month) { List <Plant> p; if (month == FloweringMonths.AllMonths) { p = await PlantData.GetAllPlantsAsync(); } else if (FloweringMonths.AllMonths.HasFlag(month)) { p = await PlantData.GetMonthPlantsAsync(floweringMonthDict[month]); } else { //error, bad month passed in p = null; } PlantCount = p.Count(); return(new ObservableCollection <Plant>(p)); }
public void ShowPlantsByMonth(FloweringMonths month) { PlantList = NotifyTask.Create(GetPlantsAsync(month)); }