private async Task <bool> InitaliseRooms()
        {
            Rooms.Clear();
            IMobileServiceTableQuery <RoomItem> roomQuery;

            roomQuery = RoomTable.RoomSyncTable.Where(p => p.HomeId == SelectedHomeId);
            await RoomTable.Read(roomQuery);

            foreach (RoomItem RoomItem in RoomTable.RoomItems)
            {
                Room room = RoomConverter.CreateFrom(RoomItem);
                IMobileServiceTableQuery <DeviceItem> deviceQuery;
                deviceQuery = DeviceTable.deviceTable.Where(p => p.RoomId == room.Id);
                await DeviceTable.Read(deviceQuery);

                foreach (DeviceItem DeviceItem in DeviceTable.deviceItems)
                {
                    Device device = DeviceConverter.CreateFrom(DeviceItem);
                    try
                    {
                        device = await Lights.GetLightState(device);
                    }
                    catch (Exception e)
                    {
                        device.HasAccess = false;
                    }
                }
                Rooms.Add(room);
            }
            return(true);
        }
        public async Task <bool> GetDevices(string roomid)
        {
            Devices.Clear();
            IMobileServiceTableQuery <DeviceItem> deviceQuery;

            deviceQuery = DeviceTable.deviceTable.Where(p => p.RoomId == roomid);
            await DeviceTable.Read(deviceQuery);

            foreach (DeviceItem DeviceItem in DeviceTable.deviceItems)
            {
                Device device = DeviceConverter.CreateFrom(DeviceItem);
                Devices.Add(device);
            }
            return(true);
        }
        public static async void AddUser(string userID, string homeId)
        {
            IMobileServiceTableQuery <HomeItem> homeQuery;

            homeQuery = HomeTable.HomeSyncTable.Where(p => p.HomeId == homeId);
            await HomeTable.Read(homeQuery);

            foreach (HomeItem HomeItem in HomeTable.HomeItems)
            {
                HomeItem.UserId   = userID;
                HomeItem.UserName = "******";
                HomeItem.Id       = null;
                await HomeTable.Create(HomeItem);

                IMobileServiceTableQuery <RoomItem> roomQuery;
                roomQuery = RoomTable.RoomSyncTable.Where(p => p.HomeId == homeId);
                await RoomTable.Read(roomQuery);

                foreach (RoomItem RoomItem in RoomTable.RoomItems)
                {
                    RoomItem.UserId = userID;
                    string roomId = RoomItem.Id;
                    RoomItem.Id     = null;
                    RoomItem.HomeId = HomeTable.HomeItem.Id;
                    await RoomTable.Create(RoomItem);

                    IMobileServiceTableQuery <DeviceItem> deviceQuery;
                    deviceQuery = DeviceTable.deviceTable.Where(p => p.RoomId == roomId);
                    await DeviceTable.Read(deviceQuery);

                    foreach (DeviceItem DeviceItem in DeviceTable.deviceItems)
                    {
                        DeviceItem.UserId = userID;
                        DeviceItem.Id     = null;
                        DeviceItem.RoomId = RoomTable.RoomItem.Id;
                        await DeviceTable.Create(DeviceItem);
                    }
                }
            }
        }
        private async void GetFavouriteDevices()
        {
            FavouriteDevices.Clear();
            IMobileServiceTableQuery <DeviceItem> deviceQuery;

            deviceQuery = DeviceTable.deviceTable.Where(p => p.HomeId == SelectedHome.Id && p.Deleted == false);
            if (await DeviceTable.Read(deviceQuery))
            {
                foreach (DeviceItem DeviceItem in DeviceTable.deviceItems)
                {
                    Device device = DeviceConverter.CreateFrom(DeviceItem);
                    try
                    {
                        device = await Lights.GetLightState(device);
                    }
                    catch (Exception e)
                    {
                        device.HasAccess = false;
                    }
                    FavouriteDevices.Add(device);
                }
            }
        }