/// <summary>
 /// Get all UserSettings
 /// </summary>
 /// <returns>A UserSettingsTD</returns>
 public static DataSet GetUserSettings()
 {
     using (new TransactionScope(TransactionScopeOption.Suppress))
     {
         var ds = new UserSettingsTD();
         var ta = new UserSettingsTDTableAdapters.UserSettingsTableAdapter();
         ta.Fill(ds.UserSettings);
         return(ds);
     }
 }
        /// <summary>
        /// Service callable code to Delete/Insert/Update User Settings
        /// </summary>
        /// <param name="ds">A DataSet of type UserSettingsCD</param>
        /// <returns>A UserSettingsCD. If ALL updated OK contains updated data, if not contains the RowErrors</returns>
        public static UserSettingsCD UpdateUserSettings(DataSet ds)
        {
            if (ds == null || ds.Tables["UserSettings"] == null)
            {
                throw new Exception("The DataSet and/or DataTable is null.");
            }

            var clientDataSet = new UserSettingsCD();

            clientDataSet.Merge(ds, false, MissingSchemaAction.Ignore);

            if (clientDataSet.UserSettings.Select("", "", DataViewRowState.Deleted).Length > 0 ||
                clientDataSet.UserSettings.Select("", "", DataViewRowState.Added).Length > 0 ||
                clientDataSet.UserSettings.Select("", "", DataViewRowState.ModifiedCurrent).Length > 0)
            {
                var tblDataSet = new UserSettingsTD.UserSettingsDataTable();

                if (clientDataSet.UserSettings.Select("", "", DataViewRowState.ModifiedCurrent).Length > 0)
                {
                    var modifiedUserSetting = new UserSettingsDataTable();

                    foreach (UserSettingsRow modifiedRow in clientDataSet.UserSettings.Select("", "", DataViewRowState.ModifiedCurrent))
                    {
                        modifiedUserSetting.Clear();
                        modifiedUserSetting.ImportRow(modifiedRow);

                        tblDataSet.Merge(UserSettingsTD.GetUserSetting(modifiedRow.UserName));
                        tblDataSet.Merge(modifiedUserSetting, false, MissingSchemaAction.Ignore);
                    }
                }

                var userSettingsTD = new UserSettingsTD();
                userSettingsTD.UserSettings.BeginLoadData();
                userSettingsTD.UserSettings.Merge(clientDataSet.UserSettings, false, MissingSchemaAction.Ignore);
                userSettingsTD.UserSettings.Merge(tblDataSet, false, MissingSchemaAction.Ignore);

                using (var ts = new TransactionScope(TransactionScopeOption.Required))
                {
                    UserSettingsTD.UpdateUserSettings(userSettingsTD);
                    ts.Complete();
                }
            }

            return(clientDataSet);
        }