public void UpdateSettings(Guid userId, UserSettings settings) { var currentUserId = detail.ServiceClient.OrganizationServiceProxy.CallerId; detail.ServiceClient.OrganizationServiceProxy.CallerId = userId; var records = detail.ServiceClient.OrganizationServiceProxy.RetrieveMultiple(new QueryByAttribute("usersettings") { Attributes = { "systemuserid" }, Values = { userId }, }); var record = records.Entities.First(); if (settings.AdvancedFindStartupMode >= 1) record["advancedfindstartupmode"] = settings.AdvancedFindStartupMode; if (settings.AutoCreateContactOnPromote >= 0) record["autocreatecontactonpromote"] = settings.AutoCreateContactOnPromote; if (settings.DefaultCalendarView >= 0) record["defaultcalendarview"] = settings.DefaultCalendarView; if (settings.HomePageArea.Length > 0 && settings.HomePageArea != "No change") record["homepagearea"] = settings.HomePageArea; if (settings.HomePageSubArea.Length > 0 && settings.HomePageSubArea != "No change") record["homepagesubarea"] = settings.HomePageSubArea; if (settings.IncomingEmailFilteringMethod >= 0) record["incomingemailfilteringmethod"] = new OptionSetValue(settings.IncomingEmailFilteringMethod); if (settings.PagingLimit.HasValue) record["paginglimit"] = settings.PagingLimit.Value; if (settings.TimeZoneCode >= 0) record["timezonecode"] = settings.TimeZoneCode; if (settings.WorkdayStartTime.Length > 0 && settings.WorkdayStartTime != "No change") record["workdaystarttime"] = settings.WorkdayStartTime; if (settings.WorkdayStopTime.Length > 0 && settings.WorkdayStopTime != "No change") record["workdaystoptime"] = settings.WorkdayStopTime; if (settings.ReportScriptErrors >= 1) record["reportscripterrors"] = new OptionSetValue(settings.ReportScriptErrors); if (settings.IsSendAsAllowed.HasValue) record["issendasallowed"] = settings.IsSendAsAllowed.Value; if (settings.UiLanguage.HasValue) record["uilanguageid"] = settings.UiLanguage.Value; if (settings.HelpLanguage.HasValue) record["helplanguageid"] = settings.HelpLanguage.Value; if (settings.Currency != null) record["transactioncurrencyid"] = settings.Currency; if (settings.StartupPaneEnabled.HasValue) record["getstartedpanecontentenabled"] = settings.StartupPaneEnabled.Value; if (settings.UseCrmFormForAppointment.HasValue) record["usecrmformforappointment"] = settings.UseCrmFormForAppointment.Value; if (settings.UseCrmFormForContact.HasValue) record["usecrmformforcontact"] = settings.UseCrmFormForContact.Value; if (settings.UseCrmFormForEmail.HasValue) record["usecrmformforemail"] = settings.UseCrmFormForEmail.Value; if (settings.UseCrmFormForTask.HasValue) record["usecrmformfortask"] = settings.UseCrmFormForTask.Value; service.Update(record); detail.ServiceClient.OrganizationServiceProxy.CallerId = currentUserId; }
private void tsbUpdateUserSettings_Click(object sender, EventArgs e) { if (userSelector1.SelectedItems.Count == 0) { MessageBox.Show(this, "No user has been selected!", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } #region Initialisation des données à mettre à jour var setting = new UserSettings { AdvancedFindStartupMode = cbbAdvancedFindMode.SelectedIndex, AutoCreateContactOnPromote = cbbCreateRecords.SelectedIndex - 1, DefaultCalendarView = cbbCalendar.SelectedIndex - 1, IncomingEmailFilteringMethod = cbbTrackMessages.SelectedIndex - 1, ReportScriptErrors = cbbReportScriptErrors.SelectedIndex, HomePageArea = cbbSiteMapArea.SelectedItem.ToString(), HomePageSubArea = cbbSiteMapSubArea.SelectedItem.ToString(), UsersToUpdate = userSelector1.SelectedItems, }; if (cbbSendAsAllowed.SelectedIndex != 0) { setting.IsSendAsAllowed = cbbSendAsAllowed.SelectedIndex == 2; } if (cbbPagingLimit.SelectedIndex != 0) { setting.PagingLimit = int.Parse(cbbPagingLimit.SelectedItem.ToString()); } if (cbbTimeZones.SelectedIndex != 0) { setting.TimeZoneCode = ((AppCode.TimeZone)cbbTimeZones.SelectedItem).Code; } if (cbbWorkStartTime.SelectedIndex != 0 || cbbWorkStartTime.SelectedText != null) { setting.WorkdayStartTime = cbbWorkStartTime.SelectedItem.ToString(); if (cbbWorkStartTime.SelectedIndex == 0) { setting.WorkdayStartTime = cbbWorkStartTime.SelectedText; } } if (cbbWorkStopTime.SelectedIndex != 0 || cbbWorkStopTime.SelectedText != null) { setting.WorkdayStopTime = cbbWorkStopTime.SelectedItem.ToString(); if (cbbWorkStopTime.SelectedIndex == 0) { setting.WorkdayStopTime = cbbWorkStopTime.SelectedText; } } if (cbbHelpLanguage.SelectedIndex != 0) { setting.HelpLanguage = ((Language)cbbHelpLanguage.SelectedItem).Lcid; } if (cbbUiLanguage.SelectedIndex != 0) { setting.UiLanguage = ((Language)cbbUiLanguage.SelectedItem).Lcid; } if (cbbCurrencies.SelectedIndex != 0) { setting.Currency = ((Currency)cbbCurrencies.SelectedItem).CurrencyReference; } if (cbbStartupPane.SelectedIndex != 0) { setting.StartupPaneEnabled = cbbStartupPane.SelectedIndex == 2; } if (cbbUseCrmFormAppt.SelectedIndex != 0) { setting.UseCrmFormForAppointment = cbbUseCrmFormAppt.SelectedIndex == 2; } if (cbbUseCrmFormContact.SelectedIndex != 0) { setting.UseCrmFormForContact = cbbUseCrmFormContact.SelectedIndex == 2; } if (cbbUseCrmFormEmail.SelectedIndex != 0) { setting.UseCrmFormForEmail = cbbUseCrmFormEmail.SelectedIndex == 2; } if (cbbUseCrmFormTask.SelectedIndex != 0) { setting.UseCrmFormForTask = cbbUseCrmFormTask.SelectedIndex == 2; } #endregion Initialisation des données à mettre à jour WorkAsync(new WorkAsyncInfo { Message = "Initializing update...", AsyncArgument = setting, Work = (bw, evt) => { var settingArg = (UserSettings)evt.Argument; var ush = new UserSettingsHelper(Service, ConnectionDetail); foreach (var user in settingArg.UsersToUpdate) { bw.ReportProgress(0, "Updating settings for user " + user.GetAttributeValue<string>("fullname")); ush.UpdateSettings(user.Id, setting); } }, PostWorkCallBack = evt => { if (evt.Error != null) { MessageBox.Show(this, "An error occured: " + evt.Error.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }, ProgressChanged = evt => { SetWorkingMessage(evt.UserState.ToString()); } }); }
public void UpdateSettings(Guid userId, UserSettings settings) { var currentUserId = ((OrganizationServiceProxy)(((OrganizationService)service).InnerService)).CallerId; var records = service.RetrieveMultiple(new QueryByAttribute("usersettings") { Attributes = { "systemuserid" }, Values = { userId }, }); var record = records.Entities.First(); if (settings.AdvancedFindStartupMode >= 1) { record["advancedfindstartupmode"] = settings.AdvancedFindStartupMode; } if (settings.AutoCreateContactOnPromote >= 0) { record["autocreatecontactonpromote"] = settings.AutoCreateContactOnPromote; } if (settings.DefaultCalendarView >= 0) { record["defaultcalendarview"] = settings.DefaultCalendarView; } if (settings.HomePageArea.Length > 0 && settings.HomePageArea != "No change") { record["homepagearea"] = settings.HomePageArea; } if (settings.HomePageSubArea.Length > 0 && settings.HomePageSubArea != "No change") { record["homepagesubarea"] = settings.HomePageSubArea; } if (settings.IncomingEmailFilteringMethod >= 0) { record["incomingemailfilteringmethod"] = new OptionSetValue(settings.IncomingEmailFilteringMethod); } if (settings.PagingLimit.HasValue) { record["paginglimit"] = settings.PagingLimit.Value; } if (settings.TimeZoneCode >= 0) { record["timezonecode"] = settings.TimeZoneCode; } if (settings.WorkdayStartTime.Length > 0 && settings.WorkdayStartTime != "No change") { record["workdaystarttime"] = settings.WorkdayStartTime; } if (settings.WorkdayStopTime.Length > 0 && settings.WorkdayStopTime != "No change") { record["workdaystoptime"] = settings.WorkdayStopTime; } if (settings.ReportScriptErrors >= 1) { record["reportscripterrors"] = new OptionSetValue(settings.ReportScriptErrors); } if (settings.IsSendAsAllowed.HasValue) { record["issendasallowed"] = settings.IsSendAsAllowed.Value; } if (settings.UiLanguage.HasValue) { record["uilanguageid"] = settings.UiLanguage.Value; } if (settings.HelpLanguage.HasValue) { record["helplanguageid"] = settings.HelpLanguage.Value; } if (settings.Currency != null) { record["transactioncurrencyid"] = settings.Currency; } if (settings.StartupPaneEnabled.HasValue) { record["getstartedpanecontentenabled"] = settings.StartupPaneEnabled.Value; } if (settings.UseCrmFormForAppointment.HasValue) { record["usecrmformforappointment"] = settings.UseCrmFormForAppointment.Value; } if (settings.UseCrmFormForContact.HasValue) { record["usecrmformforcontact"] = settings.UseCrmFormForContact.Value; } if (settings.UseCrmFormForEmail.HasValue) { record["usecrmformforemail"] = settings.UseCrmFormForEmail.Value; } if (settings.UseCrmFormForTask.HasValue) { record["usecrmformfortask"] = settings.UseCrmFormForTask.Value; } service.Update(record); ((OrganizationServiceProxy)(((OrganizationService)service).InnerService)).CallerId = currentUserId; }