/// <summary> /// Parse setting /// </summary> /// <param name="value"></param> /// <param name="type"></param> /// <returns></returns> private static string ParseSettingValue(object value, CommerceSettingType type) { var response = string.Empty; switch (type) { case CommerceSettingType.Text: case CommerceSettingType.Number: response = value.ToString(); break; case CommerceSettingType.Object: case CommerceSettingType.Array: response = value.SerializeAsJson(); break; } return(response); }
/// <summary> /// Add or update setting /// </summary> /// <param name="key"></param> /// <param name="value"></param> /// <param name="type"></param> /// <returns></returns> public async Task <ResultModel> AddOrUpdateSettingAsync(string key, object value, CommerceSettingType type = CommerceSettingType.Text) { var setting = await Context.CommerceSettings.FirstOrDefaultAsync(x => x.Key.Equals(key)); if (setting == null) { await Context.CommerceSettings.AddAsync(new CommerceSetting { Key = key, Value = ParseSettingValue(value, type) }); } else { setting.Value = ParseSettingValue(value, type); Context.CommerceSettings.Update(setting); } return(await Context.PushAsync()); }