public async Task CreateGroup()
        {
            var newGroup = new CombinedControlEntity();

            newGroup.DeviceName = DeviceName;
            if (SelectedHue != null)
            {
                newGroup.HueID   = ((Models.Hue.Group)SelectedHue).HueGroup.Id;
                newGroup.HueName = SelectedHue.DeviceName;
            }
            if (SelectedRemo != null)
            {
                newGroup.RemoID   = ((Models.NatureRemo.Device)SelectedRemo).id;
                newGroup.RemoName = SelectedRemo.DeviceName;
            }

            var dbHelper = new CombinedControlHelper();
            await dbHelper.Init();

            await dbHelper.AddUpdateCombinedControl(newGroup);

            if (SelectedHue != null)
            {
                HueDevices.Remove(SelectedHue);
            }
            if (SelectedRemo != null)
            {
                RemoDevices.Remove(SelectedRemo);
            }

            combinedControls.Add(newGroup);
        }
 public async Task RemoveCombindControl(CombinedControlEntity combinedControl)
 {
     using (var context = new CombinedControlContext())
     {
         context.Remove(combinedControl);
         await context.SaveChangesAsync();
     }
 }
 public async Task RemoveGroupItem(CombinedControlEntity entity)
 {
     try
     {
         CombinedControls.Remove(entity);
         await dbHelper.RemoveCombindControl(entity);
     }
     catch (Exception ex)
     {
         DebugHelper.Debugger.WriteErrorLog("Error occurred while removing combined group.", ex);
         await new MessageDialog("Error occurred while removing combined group: " + ex.Message).ShowAsync();
     }
 }
 /// <summary>
 /// Add or Update Combined Control setting item
 /// </summary>
 /// <param name="combinedControl">Combined Control item newly created or retrieved from DB and updated.</param>
 /// <returns></returns>
 public async Task AddUpdateCombinedControl(CombinedControlEntity combinedControl)
 {
     using (var context = new CombinedControlContext())
     {
         var match = from item in context.CombinedControls
                     where item.ID == combinedControl.ID
                     select item;
         if (match.Any())
         {
             context.Update(combinedControl);
         }
         else
         {
             context.Add(combinedControl);
         }
         await context.SaveChangesAsync();
     }
 }