Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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));
            }
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        /// <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())));
        }
Esempio n. 5
0
        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));
            }
        }