public async Task<Zone> UpdateZoneAsync(Zone zone)
        {
            Zone zoneToUpdate = (await GetZonesAsync(new List<int> { zone.Id })).SingleOrDefault();
            if (zoneToUpdate == null)
                return null;

            if (zone.Appliances != null)
            {
                List<Appliance> usedAppliances =
                (await GetAppliancesAsync(zone.Appliances.Select(a => a.Id))).ToList();

                zoneToUpdate.Appliances = usedAppliances;
            }
            if (zone.Name != null) zoneToUpdate.Name = zone.Name;

            await SaveAsync();
            return zoneToUpdate;
        }
        public async Task<Zone> CreateZoneAsync(Zone zone)
        {
            List<Appliance> usedAppliances =
                (await GetAppliancesAsync(zone.Appliances.Select(z => z.Id))).ToList();

            zone.Appliances = usedAppliances;

            Zone zoneToCreate = Context.Zones.Add(zone);

            await SaveAsync();
            return zoneToCreate;
        }