private IQueryable <Species> searchTimeFilter(string key, string value) { switch (key) { case "Sowing": { IEnumerable <Sowing> sowingMatchesList = _manager.GetAll <Sowing>().Where(s => s.EndMonth.ToString().Equals(value) || s.StartMonth.ToString().Equals(value)).ToList(); if (sowingMatchesList.Any()) { var plants = from plant in _manager.GetAllAsQueryable <Plant>() where plant.TimePeriods.Any(s => sowingMatchesList.Select(e => e.Id.Equals(s.Id) && s is Sowing).Any()) select plant; return(plants.AsQueryable()); } break; } default: { return(null); } } return(null); }
public ActionResult DeleteNode(long id) { try { SubjectManager subjectManager = new SubjectManager(); //InteractionManager interactionManager = new InteractionManager(); Node node = subjectManager.GetAllAsQueryable <Node>().Where(n => n.Id.Equals(Convert.ToInt64(id))).FirstOrDefault(); //remove all dependend interacions //var interactions = subjectManager.GetAllDependingInteractions(node).ToList(); //for (int i = 0; i < interactions.Count(); i++) //{ // interactionManager.Delete(interactions[i]); //} subjectManager.DeleteNode(node); return(Json(true)); } catch (Exception ex) { return(Json(ex.Message)); } }
public static List <SimpleNodeViewModel> GetChildren(long id) { List <SimpleNodeViewModel> tmp = new List <SimpleNodeViewModel>(); SubjectManager subjectManager = new SubjectManager(); var children = subjectManager.GetAllAsQueryable <Node>().Where(n => n.Parent != null && n.Parent.Id.Equals(id)); children.ToList().ForEach(c => tmp.Add(SimpleNodeViewModel.Convert(c))); return(tmp); }
/// <summary> /// search value in name and descrtiption and scientific name /// </summary> /// <param name="searchValue"></param> /// <returns></returns> private IQueryable <Species> search(string searchValue) { _manager = new SubjectManager(); if (string.IsNullOrEmpty(searchValue)) { return(null); } return(_manager.GetAllAsQueryable <Species>().Where(s => s.Name.ToLower().Contains(searchValue.ToLower()) || s.Description.ToLower().Contains(searchValue.ToLower()) || s.ScientificName.ToLower().Contains(searchValue.ToLower()))); }
public ActionResult SavePlant(PlantModel plantModel) { try { SubjectManager subjectManager = new SubjectManager(); InteractionManager interactionManager = new InteractionManager(); Plant plant = new Plant(); if (plantModel.Id > 0) { var x = subjectManager.Get(plantModel.Id).Self; plant = x as Plant; } plant.Name = plantModel.Name; plant.ScientificName = plantModel.ScientificName; //Todo Select the type based on the scientific name //plant.Rank = Utility.GetTaxonRank(plantModel.ScientificName); plant.Rank = plantModel.TaxonRank; #region after culture foreach (var ac in plantModel.AfterCultures) { if (string.IsNullOrEmpty(ac.Name)) { break; } Plant afterCultureTmp = null; //add new culture to plant if (ac.Id == 0) { afterCultureTmp = subjectManager.GetAllAsQueryable <Plant>().Where(p => p.Name.Equals(ac.Name)).FirstOrDefault(); if (afterCultureTmp != null) { plant.AfterCultures.Add(subjectManager.Get(afterCultureTmp.Id) as Plant); } } } //delete cultures List <string> nameOfDeleteAfterCultures = new List <string>(); foreach (var ac in plant.AfterCultures) { if (!plantModel.AfterCultures.Any(a => a.Name.Equals(ac.Name))) { nameOfDeleteAfterCultures.Add(ac.Name); } } foreach (var name in nameOfDeleteAfterCultures) { var tmp = plant.AfterCultures.Where(a => a.Name.Equals(name)).FirstOrDefault(); if (tmp != null) { plant.AfterCultures.Remove(tmp); } } #endregion after culture #region preculture foreach (var pc in plantModel.PreCultures) { if (string.IsNullOrEmpty(pc.Name)) { break; } Plant preCultureTmp = null;; //add new culture to plant if (pc.Id == 0) { preCultureTmp = subjectManager.GetAllAsQueryable <Plant>().Where(p => p.Name.Equals(pc.Name)).FirstOrDefault(); if (preCultureTmp != null) { plant.PreCultures.Add(subjectManager.Get(preCultureTmp.Id) as Plant); } } } //delete cultures List <string> nameOfDeletePreCultures = new List <string>(); foreach (var ac in plant.PreCultures) { if (!plantModel.PreCultures.Any(a => a.Name.Equals(ac.Name))) { nameOfDeletePreCultures.Add(ac.Name); } } foreach (var name in nameOfDeletePreCultures) { var tmp = plant.PreCultures.Where(a => a.Name.Equals(name)).FirstOrDefault(); if (tmp != null) { plant.PreCultures.Remove(tmp); } } #endregion preculture plant.Description = plantModel.Description; plant.Height = plantModel.Height; plant.LocationType = plantModel.LocationType; if (!plantModel.ImagePath.Equals("/Images/Empty.png") && !plant.Medias.Where(m => m.ImagePath.Equals(plantModel.ImagePath)).Any()) { plant.Medias.Add(new Media() { ImagePath = plantModel.ImagePath, MIMEType = MimeMapping.GetMimeMapping(plantModel.ImagePath) }); } plant.NutrientClaim = plantModel.NutrientClaim; plant.RootDepth = plantModel.RootDepth; plant.SowingDepth = plantModel.SowingDepth; plant.Width = plantModel.Width; plant.TimePeriods = new List <TimePeriod>(); foreach (var lifeCylce in plantModel.LifeCycles) { lifeCylce.Reverse(); TimePeriod last = null; foreach (var tpModel in lifeCylce) { TimePeriod tp = Utility.CreateTimePeriodFromModel(tpModel); tp.AssignedTo = plant; if (lifeCylce.Last().Equals(tpModel)) { tp.Start = true; } if (last != null) { tp.Next = last; } plant.TimePeriods.Add(tp); last = tp; } plant.TimePeriods.Reverse(); } if (plantModel.Id == 0) { plant = subjectManager.CreatePlant(plant); } else { plant = subjectManager.UpdatePlant(plant); } //set parent if (plantModel.Parent != null && plantModel.Parent.Id > 0) { var parent = subjectManager.GetAll <Node>().Where(n => n.Id.Equals(plantModel.Parent.Id)).FirstOrDefault(); plant.Parent = parent; } else // delete parent from plant { plant.Parent = null; } subjectManager.Update(plant); return(Json(plant.Id, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { return(Json(ex.Message, JsonRequestBehavior.AllowGet)); } }