Beispiel #1
0
        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()); }
            });
        }
Beispiel #2
0
        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 Entity()
            {
                Attributes =
                {
                    { UserSettings.AdvancedFindStartupMode,      cbbAdvancedFindMode.SelectedIndex                       },
                    { UserSettings.AutoCreateContactOnPromote,   cbbCreateRecords.SelectedIndex - 1                      },
                    { UserSettings.DefaultCalendarView,          cbbCalendar.SelectedIndex - 1                           },
                    { UserSettings.IncomingEmailFilteringMethod, new OptionSetValue(cbbTrackMessages.SelectedIndex - 1)  },
                    { UserSettings.ReportScriptErrors,           new OptionSetValue(cbbReportScriptErrors.SelectedIndex) },
                    { UserSettings.HomepageArea,                 cbbSiteMapArea.SelectedItem.ToString()                  },
                    { UserSettings.HomepageSubarea,              cbbSiteMapSubArea.SelectedItem.ToString()               },
                    { UserSettings.DefaultSearchExperience,      new OptionSetValue(cbbSearch.SelectedIndex - 1)         }
                }
            };

            if (cbbSendAsAllowed.SelectedIndex != 0)
            {
                setting[UserSettings.IsSendAsAllowed] = cbbSendAsAllowed.SelectedIndex == 2;
            }

            if (cbbAutoDataCaptureEnabled.SelectedIndex != 0)
            {
                setting[UserSettings.IsAutoDataCaptureEnabled] = cbbAutoDataCaptureEnabled.SelectedIndex == 2;
            }

            if (cbbSynchronizeResourceBookingWithOutlook.SelectedIndex != 0)
            {
                setting[UserSettings.IsResourceBookingExchangeSyncEnabled] =
                    cbbSynchronizeResourceBookingWithOutlook.SelectedIndex == 2;
            }

            if (cbbPagingLimit.SelectedIndex != 0)
            {
                setting[UserSettings.PagingLimit] = int.Parse(cbbPagingLimit.SelectedItem.ToString());
            }

            if (cbbTimeZones.SelectedIndex != 0)
            {
                setting[UserSettings.TimeZoneCode] = ((AppCode.TimeZone)cbbTimeZones.SelectedItem).Code;
            }

            if (cbbWorkStartTime.SelectedIndex != 0 || cbbWorkStartTime.SelectedText != null)
            {
                setting[UserSettings.WorkdayStartTime] = cbbWorkStartTime.SelectedItem.ToString();
                if (cbbWorkStartTime.SelectedIndex == 0)
                {
                    setting[UserSettings.WorkdayStartTime] = cbbWorkStartTime.SelectedText;
                }
            }

            if (cbbWorkStopTime.SelectedIndex != 0 || cbbWorkStopTime.SelectedText != null)
            {
                setting[UserSettings.WorkdayStopTime] = cbbWorkStopTime.SelectedItem.ToString();
                if (cbbWorkStopTime.SelectedIndex == 0)
                {
                    setting[UserSettings.WorkdayStopTime] = cbbWorkStopTime.SelectedText;
                }
            }

            if (cbbHelpLanguage.SelectedIndex != 0)
            {
                setting[UserSettings.HelpLanguageId] = ((Language)cbbHelpLanguage.SelectedItem).Lcid;
            }

            if (cbbUiLanguage.SelectedIndex != 0)
            {
                setting[UserSettings.UILanguageId] = ((Language)cbbUiLanguage.SelectedItem).Lcid;
            }

            if (cbbCurrencies.SelectedIndex != 0)
            {
                setting[UserSettings.TransactionCurrencyId] = (EntityReference)cbbCurrencies.SelectedItem;
            }

            if (cbbStartupPane.SelectedIndex != 0)
            {
                setting[UserSettings.GetStartedPaneContentEnabled] = cbbStartupPane.SelectedIndex == 2;
            }

            if (cbbUseCrmFormAppt.SelectedIndex != 0)
            {
                setting[UserSettings.UseCrmFormForAppointment] = cbbUseCrmFormAppt.SelectedIndex == 2;
            }

            if (cbbUseCrmFormContact.SelectedIndex != 0)
            {
                setting[UserSettings.UseCrmFormForContact] = cbbUseCrmFormContact.SelectedIndex == 2;
            }

            if (cbbUseCrmFormEmail.SelectedIndex != 0)
            {
                setting[UserSettings.UseCrmFormForEmail] = cbbUseCrmFormEmail.SelectedIndex == 2;
            }

            if (cbbUseCrmFormTask.SelectedIndex != 0)
            {
                setting[UserSettings.UseCrmFormForTask] = cbbUseCrmFormTask.SelectedIndex == 2;
            }
            if (cbbDefaultDashboard.SelectedIndex != 0)
            {
                var dashboard = (EntityReference)cbbDefaultDashboard.SelectedItem;
                setting[UserSettings.DefaultDashboardId] = dashboard.Id;
            }
            if (cbbFormat.SelectedIndex != 0)
            {
                setting[UserSettings.LocaleId] = ((CultureInfo)cbbFormat.SelectedItem).LCID;
            }

            if (cbbShowEmailsAsConversation.SelectedIndex != 0)
            {
                setting[UserSettings.IsEmailConversationViewEnabled] = cbbShowEmailsAsConversation.SelectedIndex == 2;
            }

            #endregion Initialisation des données à mettre à jour

            if (File.Exists(log.FilePath))
            {
                var result = MessageBox.Show(this,
                                             @"A log file already exists for this tool. Would you like to overwrite it?", @"Question",
                                             MessageBoxButtons.YesNo, MessageBoxIcon.Question);

                if (result == DialogResult.Yes)
                {
                    log.DeleteLog();
                }
            }

            WorkAsync(new WorkAsyncInfo
            {
                Message       = "Initializing update...",
                AsyncArgument = new Tuple <List <Entity>, Entity>(userSelector1.SelectedItems, setting),
                Work          = (bw, evt) =>
                {
                    var updateUserSettings = (Tuple <List <Entity>, Entity>)evt.Argument;
                    var ush       = new UserSettingsHelper(Service, ConnectionDetail);
                    ush.OnResult += (helper, args) =>
                    {
                        if (args.Success)
                        {
                            log.LogInfo($"User {args.UserName} updated successfully");
                        }
                        else
                        {
                            log.LogError($"User {args.UserName} was not updated. Error message: {args.Message}");
                        }
                    };

                    foreach (var updateUserSetting in updateUserSettings.Item1)
                    {
                        string userFullName = updateUserSetting.GetAttributeValue <string>("fullname");
                        bw.ReportProgress(0, "Updating settings for user " + userFullName);
                        ush.UpdateSettings(updateUserSetting.Id, userFullName, updateUserSettings.Item2);
                    }
                },
                PostWorkCallBack = evt =>
                {
                    if (evt.Error != null)
                    {
                        // Don't show as message if the user has just cancelled the operation
                        if (!evt.Error.Message.Contains("UserAbortedException"))
                        {
                            MessageBox.Show(this, $@"An error occured: {evt.Error}", @"Error", MessageBoxButtons.OK,
                                            MessageBoxIcon.Error);
                        }
                    }

                    var message = "Do you want to open log file?";
                    if (MessageBox.Show(this, message, @"Question", MessageBoxButtons.YesNo, MessageBoxIcon.Question) ==
                        DialogResult.Yes)
                    {
                        log.OpenLog();
                    }
                },
                ProgressChanged = evt => { SetWorkingMessage(evt.UserState.ToString()); }
            });
        }
Beispiel #3
0
        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 Entity()
            {
                Attributes =
                {
                    { UserSettings.AdvancedFindStartupMode,      cbbAdvancedFindMode.SelectedIndex                       },
                    { UserSettings.AutoCreateContactOnPromote,   cbbCreateRecords.SelectedIndex - 1                      },
                    { UserSettings.DefaultCalendarView,          cbbCalendar.SelectedIndex - 1                           },
                    { UserSettings.IncomingEmailFilteringMethod, new OptionSetValue(cbbTrackMessages.SelectedIndex - 1)  },
                    { UserSettings.ReportScriptErrors,           new OptionSetValue(cbbReportScriptErrors.SelectedIndex) },
                    { UserSettings.HomepageArea,                 cbbSiteMapArea.SelectedItem.ToString()                  },
                    { UserSettings.HomepageSubarea,              cbbSiteMapSubArea.SelectedItem.ToString()               }
                }
            };

            if (cbbSendAsAllowed.SelectedIndex != 0)
            {
                setting[UserSettings.IsSendAsAllowed] = cbbSendAsAllowed.SelectedIndex == 2;
            }

            if (cbbPagingLimit.SelectedIndex != 0)
            {
                setting[UserSettings.PagingLimit] = int.Parse(cbbPagingLimit.SelectedItem.ToString());
            }

            if (cbbTimeZones.SelectedIndex != 0)
            {
                setting[UserSettings.TimeZoneCode] = ((AppCode.TimeZone)cbbTimeZones.SelectedItem).Code;
            }

            if (cbbWorkStartTime.SelectedIndex != 0 || cbbWorkStartTime.SelectedText != null)
            {
                setting[UserSettings.WorkdayStartTime] = cbbWorkStartTime.SelectedItem.ToString();
                if (cbbWorkStartTime.SelectedIndex == 0)
                {
                    setting[UserSettings.WorkdayStartTime] = cbbWorkStartTime.SelectedText;
                }
            }

            if (cbbWorkStopTime.SelectedIndex != 0 || cbbWorkStopTime.SelectedText != null)
            {
                setting[UserSettings.WorkdayStopTime] = cbbWorkStopTime.SelectedItem.ToString();
                if (cbbWorkStopTime.SelectedIndex == 0)
                {
                    setting[UserSettings.WorkdayStopTime] = cbbWorkStopTime.SelectedText;
                }
            }

            if (cbbHelpLanguage.SelectedIndex != 0)
            {
                setting[UserSettings.HelpLanguageId] = ((Language)cbbHelpLanguage.SelectedItem).Lcid;
            }

            if (cbbUiLanguage.SelectedIndex != 0)
            {
                setting[UserSettings.UILanguageId] = ((Language)cbbUiLanguage.SelectedItem).Lcid;
            }

            if (cbbCurrencies.SelectedIndex != 0)
            {
                setting[UserSettings.TransactionCurrencyId] = (EntityReference)cbbCurrencies.SelectedItem;;
            }

            if (cbbStartupPane.SelectedIndex != 0)
            {
                setting[UserSettings.GetStartedPaneContentEnabled] = cbbStartupPane.SelectedIndex == 2;
            }

            if (cbbUseCrmFormAppt.SelectedIndex != 0)
            {
                setting[UserSettings.UseCrmFormForAppointment] = cbbUseCrmFormAppt.SelectedIndex == 2;
            }

            if (cbbUseCrmFormContact.SelectedIndex != 0)
            {
                setting[UserSettings.UseCrmFormForContact] = cbbUseCrmFormContact.SelectedIndex == 2;
            }

            if (cbbUseCrmFormEmail.SelectedIndex != 0)
            {
                setting[UserSettings.UseCrmFormForEmail] = cbbUseCrmFormEmail.SelectedIndex == 2;
            }

            if (cbbUseCrmFormTask.SelectedIndex != 0)
            {
                setting[UserSettings.UseCrmFormForTask] = cbbUseCrmFormTask.SelectedIndex == 2;
            }
            if (cbbDefaultDashboard.SelectedIndex != 0)
            {
                var dashboard = (EntityReference)cbbDefaultDashboard.SelectedItem;
                setting[UserSettings.DefaultDashboardId] = dashboard.Id;
            }
            if (cbbFormat.SelectedIndex != 0)
            {
                setting[UserSettings.LocaleId] = ((CultureInfo)cbbFormat.SelectedItem).LCID;
            }

            #endregion Initialisation des données à mettre à jour

            WorkAsync(new WorkAsyncInfo
            {
                Message       = "Initializing update...",
                AsyncArgument = new Tuple <List <Entity>, Entity>(userSelector1.SelectedItems, setting),
                Work          = (bw, evt) =>
                {
                    var updateUserSettings = (Tuple <List <Entity>, Entity>)evt.Argument;
                    var ush = new UserSettingsHelper(Service, ConnectionDetail);

                    foreach (var updateUserSetting in updateUserSettings.Item1)
                    {
                        bw.ReportProgress(0, "Updating settings for user " + updateUserSetting.GetAttributeValue <string>("fullname"));
                        ush.UpdateSettings(updateUserSetting.Id, updateUserSettings.Item2);
                    }
                },
                PostWorkCallBack = evt =>
                {
                    if (evt.Error != null)
                    {
                        MessageBox.Show(this, "An error occured: " + evt.Error.ToString(), "Error", MessageBoxButtons.OK,
                                        MessageBoxIcon.Error);
                    }
                },
                ProgressChanged = evt => { SetWorkingMessage(evt.UserState.ToString()); }
            });
        }