public ActionResult DeleteConfirmed(int id)
        {
            GreenhouseSchedule greenhouseSchedule = db.GreenhouseSchedules.Find(id);

            db.GreenhouseSchedules.Remove(greenhouseSchedule);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
 public ActionResult Edit([Bind(Include = "ID,GreenhouseID,ScheduleID,StartDate")] GreenhouseSchedule greenhouseSchedule)
 {
     if (ModelState.IsValid)
     {
         db.Entry(greenhouseSchedule).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(greenhouseSchedule));
 }
        public ActionResult Create([Bind(Include = "ID,GreenhouseID,ScheduleID,StartDate")] GreenhouseSchedule greenhouseSchedule)
        {
            if (ModelState.IsValid)
            {
                db.GreenhouseSchedules.Add(greenhouseSchedule);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(greenhouseSchedule));
        }
        // GET: GreenhouseSchedules/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            GreenhouseSchedule greenhouseSchedule = db.GreenhouseSchedules.Find(id);

            if (greenhouseSchedule == null)
            {
                return(HttpNotFound());
            }
            return(View(greenhouseSchedule));
        }
        internal JObject fetchSchedule(string greenHouseID)
        {
            GreenhouseDBContext db         = new GreenhouseDBContext();
            Greenhouse          greenhouse = new Greenhouse();

            GreenhouseSchedule greenhouseSchedule = null;

            foreach (GreenhouseSchedule schedule in db.GreenhouseSchedules)
            {
                if (schedule.GreenhouseID == greenHouseID)
                {
                    greenhouseSchedule = schedule;
                }
            }
            db.SaveChanges();

            JObject jsonSchedule = new JObject();
            JObject daySchedule  = new JObject();

            if (greenhouseSchedule != null)
            {
                foreach (GreenhouseWeb.Models.Schedule schedule in db.Schedules)
                {
                    if (schedule.ScheduleID == greenhouseSchedule.ScheduleID)
                    {
                        JObject block = new JObject();
                        block.Add("temperature", schedule.InternalTemperature);
                        block.Add("humidity", schedule.Humidity);
                        block.Add("waterlevel", schedule.WaterLevel);
                        block.Add("light_blue", schedule.BlueLight);
                        block.Add("light_red", schedule.RedLight);
                        daySchedule.Add("block" + schedule.Blocknumber, block);
                    }
                }
                db.SaveChanges();
            }

            jsonSchedule.Add("day1", daySchedule);
            jsonSchedule.Add("procedure", "applySchedule");
            jsonSchedule.Add("days", 1);

            return(jsonSchedule);
        }
        public void Startup()
        {
            // Arrange
            GreenhouseSchedule greenhouseSchedule = new GreenhouseSchedule();

            greenhouseSchedule.GreenhouseID = greenhouse.GreenhouseID;
            greenhouseSchedule.ScheduleID   = scheduleID;
            greenhouseSchedule.StartDate    = DateTime.Parse("Thu, 17 Aug 2000 23:32:32 GMT", System.Globalization.CultureInfo.InvariantCulture);

            db.GreenhouseSchedules.Add(greenhouseSchedule);
            db.SaveChanges();

            int startPort = 0;
            int newPort   = 0;
            int sendPort  = 8521;

            foreach (Greenhouse greenhouse in db.Greenhouses)
            {
                if (greenhouse.GreenhouseID == greenhouse.GreenhouseID)
                {
                    startPort = greenhouse.Port;
                }
            }
            db.SaveChanges();

            JObject expected = new JObject();

            blocks = new Schedule[12];
            for (int i = 1; i < 13; i++)
            {
                Schedule schedule = new Schedule();
                schedule.Blocknumber         = i;
                schedule.BlueLight           = 20;
                schedule.RedLight            = 20;
                schedule.InternalTemperature = 20;
                schedule.Humidity            = 20;
                schedule.WaterLevel          = 20;
                schedule.ScheduleID          = scheduleID;
                blocks[i - 1] = schedule;
            }
            db.Schedules.AddRange(blocks);
            db.SaveChanges();

            // Act
            JObject response = client.sendStartupMessage(sendPort);

            // Assert
            db = new GreenhouseDBContext();
            bool    scheduleIsCorrect = true;
            JObject day = (JObject)response.GetValue("day1");

            for (int i = 1; i < 13; i++)
            {
                JObject block = (JObject)day.GetValue("block" + i);

                if (blocks[i - 1].BlueLight != (double)block.GetValue("light_blue"))
                {
                    scheduleIsCorrect = false;
                    break;
                }

                if (blocks[i - 1].RedLight != (double)block.GetValue("light_red"))
                {
                    scheduleIsCorrect = false;
                    break;
                }

                if (blocks[i - 1].InternalTemperature != (double)block.GetValue("temperature"))
                {
                    scheduleIsCorrect = false;
                    break;
                }

                if (blocks[i - 1].Humidity != (double)block.GetValue("humidity"))
                {
                    scheduleIsCorrect = false;
                    break;
                }

                if (blocks[i - 1].WaterLevel != (double)block.GetValue("waterlevel"))
                {
                    scheduleIsCorrect = false;
                    break;
                }
            }

            Assert.IsTrue(scheduleIsCorrect);

            foreach (Greenhouse greenhouse in db.Greenhouses)
            {
                if (greenhouse.GreenhouseID == greenhouse.GreenhouseID)
                {
                    newPort = greenhouse.Port;
                }
            }
            db.SaveChanges();

            Assert.AreNotEqual(startPort, newPort);
            Assert.AreEqual(sendPort, newPort);
        }