public async Task <bool> SaveSocialProfileSettings(SocialProfileSettings settings)
        {
            var socialSettings   = JsonConvert.SerializeObject(settings);
            var existingSettings = await FindSocialProfileSettings();

            if (existingSettings == null)
            {
                using (var transaction = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
                {
                    try
                    {
                        var data = new Settings
                        {
                            SettingKey = SettingKey.Social,
                            Value      = socialSettings
                        };
                        await _unitOfWork.Repository <Settings>().AddAsync(data);

                        transaction.Complete();
                    }
                    catch (Exception)
                    {
                        _unitOfWork.Rollback();
                        return(false);
                    }
                }
            }
            else
            {
                using (var transaction = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
                {
                    try
                    {
                        existingSettings.Value = socialSettings;
                        await _unitOfWork.Repository <Settings>().UpdateAsync(existingSettings);

                        transaction.Complete();
                    }
                    catch (Exception)
                    {
                        _unitOfWork.Rollback();
                        return(false);
                    }
                }
            }

            return(true);
        }
Esempio n. 2
0
        public async Task <IActionResult> SaveSocialSettings([FromBody] SocialProfileSettings socialProfileSettings)
        {
            var result = await _settingsRepository.SaveSocialProfileSettings(socialProfileSettings);

            return(Ok(result));
        }