public async Task <ControlPanelConfigData> GetItemAsync()
        {
            ControlPanelConfigData config = await DataProvider.GetAsync(KEY);

            if (config == null)
            {
                config = await DataProvider.GetAsync(KEY);
                await AddConfigAsync(config);
            }
            return(config);
        }
 private async Task AddConfigAsync(ControlPanelConfigData data)
 {
     data.Id = KEY;
     if (!await DataProvider.AddAsync(data))
     {
         throw new InternalError("Unexpected error adding settings");
     }
     await Auditing.AddAuditAsync($"{nameof(ControlPanelConfigDataProvider)}.{nameof(AddConfigAsync)}", "Config", Guid.Empty,
                                  "Add ControlPanel Config",
                                  DataBefore : null,
                                  DataAfter : data,
                                  ExpensiveMultiInstance : true
                                  );
 }
        public async Task UpdateConfigAsync(ControlPanelConfigData data)
        {
            ControlPanelConfigData origConfig = Auditing.Active ? await GetItemAsync() : null;

            data.Id = KEY;
            UpdateStatusEnum status = await DataProvider.UpdateAsync(data.Id, data.Id, data);

            if (status != UpdateStatusEnum.OK)
            {
                throw new InternalError("Unexpected error saving configuration {0}", status);
            }
            await Auditing.AddAuditAsync($"{nameof(ControlPanelConfigDataProvider)}.{nameof(UpdateConfigAsync)}", "Config", Guid.Empty,
                                         "Update ControlPanel Config",
                                         DataBefore : origConfig,
                                         DataAfter : data,
                                         ExpensiveMultiInstance : true
                                         );
        }