Ejemplo n.º 1
0
        public IActionResult Create([FromBody] PoombaItem poombaItem)
        {
            if (poombaItem == null)
            {
                return(BadRequest());
            }

            if (poombaItem.WakeUpTime == DateTime.MinValue)
            {
                poombaItem.WakeUpTime = _context.PoombaItems.Last().WakeUpTime;
            }

            if (poombaItem.SleepTime == DateTime.MinValue)
            {
                poombaItem.SleepTime = _context.PoombaItems.Last().SleepTime;
            }

            _context.PoombaItems.Add(poombaItem);
            _context.SaveChanges();

            new DebugWriter().Write(string.Format("Created Poombaitem with ID: {0}", poombaItem.Id));

            try
            {
                _hub.Clients.All.InvokeAsync("UpdateSpecific", "Poomba", poombaItem.Command, poombaItem);
            }
            catch (Exception e)
            {
                new DebugWriter().Write(e.Message);
            }

            return(CreatedAtRoute("GetPoomba", new { id = poombaItem.Id }, poombaItem));
        }
Ejemplo n.º 2
0
        /////////////////////////////////////////////////
        /// Handler function for when the Web Api requests
        /// to set the timers on Poomba
        /////////////////////////////////////////////////
        private static void UpdateTime(string message)
        {
            Console.WriteLine("Poomba: Asked to update timers");
            WebApiConnector connector = new WebApiConnector();
            //Get latest PoombaObject from database
            string     json   = connector.GetItem("Poomba/Newest");
            PoombaItem poomba = JsonConvert.DeserializeObject <PoombaItem>(json);

            //Find time for next sleep time
            TimeSpan timeToTurnOff = poomba.SleepTime - DateTime.Now;
            TimeSpan timeToTurnOn  = poomba.WakeUpTime - DateTime.Now;

            // Increment TimeSpan by one day until the day matches with current day
            while (timeToTurnOff < TimeSpan.Zero)
            {
                timeToTurnOff = timeToTurnOff + TimeSpan.FromDays(1);
            }

            while (timeToTurnOn < TimeSpan.Zero)
            {
                timeToTurnOn = timeToTurnOn + TimeSpan.FromDays(1);
            }

            Console.WriteLine("Poomba: Timer for wakeup is now in: {0} hours", timeToTurnOn.TotalHours);
            Console.WriteLine("Poomba: Timer for sleep is now in: {0} hours", timeToTurnOff.TotalHours);

            //Set up timer for automatic sleep
            _sleepTimer?.Dispose();
            _wakeUpTimer?.Dispose();

            _sleepTimer           = new System.Timers.Timer(timeToTurnOff.TotalMilliseconds);
            _sleepTimer.Elapsed  += Sleep;
            _sleepTimer.AutoReset = false;
            _sleepTimer.Start();


            _wakeUpTimer           = new System.Timers.Timer(timeToTurnOn.TotalMilliseconds);
            _wakeUpTimer.Elapsed  += WakeUp;
            _wakeUpTimer.AutoReset = false;
            _wakeUpTimer.Start();
        }
Ejemplo n.º 3
0
        public void SetUp()
        {
            _stubRoom = new Room()
            {
                RoomName = "Room"
            };

            _command = "What";
            _isRun   = true;
            _rooms   = new List <Room>()
            {
                _stubRoom
            };
            _cleaningTime = DateTime.Parse("2018-03-04 22:46:23");


            _uut = new PoombaItem()
            {
                CleaningTime = _cleaningTime,
                Command      = _command,
                IsRun        = _isRun,
                Rooms        = _rooms
            };
        }