private static void GetFormSetting(string userName, string formName, bool validateResponse) { try { _formSettingTable.Clear(); _formSettingTable.Merge(FormSettingsTD.GetFormSetting(userName, formName), false); if (_formSettingTable.Rows.Count > 0) { _formSettingRow = (FormSettingsTD.FormSettingsRow)_formSettingTable.Rows[0]; } else { _formSettingRow = null; } if (validateResponse) { Assert.AreNotEqual(null, _formSettingTable); Assert.AreEqual(1, _formSettingTable.Rows.Count); if (_formSettingRow != null) { Assert.AreEqual(userName, _formSettingRow.UserName); Assert.AreEqual(formName, _formSettingRow.FormName); } } } catch { if (validateResponse) { throw; } } }
/// <summary> /// Service callable code to Delete/Insert/Update FormSettings /// </summary> /// <param name="cd">A ClientDataSet of type FormSettingsCD</param> /// <returns>A FormSettingsCD ClientDataSet. If ALL OK contains updated data, if not contains the RowErrors</returns> public static FormSettingsCD UpdateFormSettings(FormSettingsCD cd) { if (cd == null || cd.Tables["FormSettings"] == null) { throw new Exception("The DataSet and/or DataTable is null."); } var tt = new FormSettingsTD.FormSettingsDataTable(); // ReSharper disable RedundantNameQualifier var ct = new FormSettingsCD.FormSettingsDataTable(); // ReSharper restore RedundantNameQualifier foreach (FormSettingsRow modifiedRow in cd.FormSettings.Select("", "", DataViewRowState.ModifiedCurrent)) { ct.Clear(); // clear for next row to import ct.ImportRow(modifiedRow); // import single row into Table for merge tt.Merge(FormSettingsTD.GetFormSetting(modifiedRow.UserName, modifiedRow.FormName)); // populate with all current columns tt.Merge(ct, false, MissingSchemaAction.Ignore); // overlay with updated columns } var td = new FormSettingsTD(); td.FormSettings.BeginLoadData(); td.FormSettings.Merge(cd.FormSettings, false, MissingSchemaAction.Ignore); td.FormSettings.Merge(tt, false, MissingSchemaAction.Ignore); using (var ts = new TransactionScope(TransactionScopeOption.Required)) { FormSettingsTD.UpdateFormSettings(td); ts.Complete(); } return(cd); }