public ActionResult createPlantAndAddControlPlan(string researchId, FullPlant plant) { try { // checking if already plant with the same IP exsist and Running or Pending var plan = plantCollection.AsQueryable <PlantModel>().First(x => x.Env_control_address == plant.Env_control_address && x.Status == "Pending" || x.Env_control_address == plant.Env_control_address && x.Status == "Running"); if (plan != null) { // return error - will not create another plant return(Content(JsonConvert.SerializeObject( "ip already exsist and running or pending" ))); } } catch { } try { var researchCollection = dBContext.database.GetCollection <ResearchModel>("Research"); var controlPlanCollection = dBContext.database.GetCollection <ControlPlanModel>("ControlPlan"); Create(researchId, new PlantModel { Plant_Name = plant.Plant_Name, Env_control_address = plant.Env_control_address, Growth_control_address = plant.Growth_control_address, Frequency_of_measurement = plant.Frequency_of_measurement, Frequency_of_upload = plant.Frequency_of_upload, Status = "Pending", Humidity = new List <Humidity>(), Plant_size = new List <Size>(), Light = new List <Light>(), PowerConsumption = new List <PowerConsumption>(), WaterAmount = new List <WaterAmount>() }); var plan = plantCollection.AsQueryable <PlantModel>().SingleOrDefault(x => x.Env_control_address == plant.Env_control_address && x.Status == "Pending"); //var controlPlan = controlPlanCollection.AsQueryable<ControlPlanModel>().SingleOrDefault(x => ObjectId.Parse(x.PlantId) == plan.Id); var filter = Builders <ResearchModel> .Filter.Eq("_id", ObjectId.Parse(researchId)); var update = Builders <ResearchModel> .Update .Push("Plants", plan.Id.ToString()); var result = researchCollection.UpdateOne(filter, update); controlPlanCollection.InsertOne(new ControlPlanModel { Frequency_of_measurement = plant.Frequency_of_measurement, Frequency_of_upload = plant.Frequency_of_upload, Intervals = plant.Intervals, PlantId = plan.Id.ToString() }); } catch { } return(Content(JsonConvert.SerializeObject("success"))); }
// GET: api/Plants public IEnumerable <FullPlant> Get() { List <FullPlant> fullPlantList = new List <Models.FullPlant>(); var joinRecords = from p in BotanicGardenDB.tblPlants join s in BotanicGardenDB.tblSpecies on p.speciesID equals s.speciesID select new { plantID = p.plantID, plantDescription = p.plantDescription, commonName = s.commonName, scientificName = s.scientificName }; foreach (var r in joinRecords) { FullPlant fp = new FullPlant(r.plantID, r.plantDescription, r.commonName, r.scientificName); fullPlantList.Add(fp); } return(fullPlantList); }
// GET: api/Plants/5 public FullPlant Get(int id) { var allPlants = BotanicGardenDB.tblPlants; var allSpecies = BotanicGardenDB.tblSpecies; var allCollections = BotanicGardenDB.tblCollections; var selectedPlant = allPlants.Where(p => p.plantID == id).First(); int plantSpeciesFK = (int)selectedPlant.speciesID; var currentPlantSpecies = allSpecies.Where(s => s.speciesID == plantSpeciesFK).First(); int plantID = selectedPlant.plantID; string plantDescription = selectedPlant.plantDescription; string speciesCommonName = currentPlantSpecies.commonName; string speciesScientificName = currentPlantSpecies.scientificName; FullPlant outputPlantData = new FullPlant(plantID, plantDescription, speciesCommonName, speciesScientificName); return(outputPlantData); }