protected override void CompleteDialogExtention() { base.CompleteDialogExtention(); var connections = ApplicationController.ResolveType <ISavedXrmConnections>(); if (connections.Connections.Any(c => c.Active)) { var savedConfig = connections.Connections.First(c => c.Active); var recordconfig = new ObjectMapping.ClassMapperFor <SavedXrmRecordConfiguration, XrmRecordConfiguration>().Map(savedConfig); ApplicationController.ResolveType <ISettingsManager>().SaveSettingsObject(recordconfig); XrmConnectionModule.RefreshXrmServices(recordconfig, ApplicationController); } }
protected override void CompleteDialogExtention() { ObjectToEnter.HideActive = false; //uh huh - okay now ObjectToEnter.Active = true; //lets set the connection in the service our parent dialog is using XrmRecordService.XrmRecordConfiguration = ObjectToEnter; //lets also refresh it in the applications containers XrmConnectionModule.RefreshXrmServices(ObjectToEnter, ApplicationController, xrmRecordService: XrmRecordService); //lets also refresh it in the saved settings var appSettingsManager = ApplicationController.ResolveType(typeof(ISettingsManager)) as ISettingsManager; var savedConnectionsObject = ApplicationController.ResolveType <ISavedXrmConnections>(); savedConnectionsObject.Connections = savedConnectionsObject.Connections == null ? new [] { ObjectToEnter } : savedConnectionsObject.Connections.Union(new [] { ObjectToEnter }).ToArray(); appSettingsManager.SaveSettingsObject(savedConnectionsObject); var recordconfig = new ObjectMapping.ClassMapperFor <SavedXrmRecordConfiguration, XrmRecordConfiguration>().Map(ObjectToEnter); appSettingsManager.SaveSettingsObject(recordconfig); }
private static void RefreshConnectionNotification(IApplicationController controller, string message, bool isLoading = false) { var actions = new Dictionary <string, Action>(); actions.Add("Create New", () => { var dialog = new AppXrmConnectionEntryDialog(controller.ResolveType <IDialogController>()); controller.NavigateTo(dialog); }); var savedConnections = controller.ResolveType <ISavedXrmConnections>(); if (savedConnections.Connections != null) { foreach (var connection in savedConnections.Connections.OrderBy(c => c.Name).ToArray()) { if (!string.IsNullOrWhiteSpace(connection.Name) && !connection.Active && !actions.ContainsKey(connection.Name)) { actions.Add(connection.Name, () => { controller.DoOnAsyncThread(() => { var appSettingsManager = controller.ResolveType(typeof(ISettingsManager)) as ISettingsManager; var recordconfig = new ObjectMapping.ClassMapperFor <SavedXrmRecordConfiguration, XrmRecordConfiguration>().Map(connection); appSettingsManager.SaveSettingsObject(recordconfig); savedConnections = controller.ResolveType <ISavedXrmConnections>(); foreach (var item in savedConnections.Connections.OrderBy(c => c.Name).ToArray()) { item.Active = item.Name == connection.Name; } appSettingsManager.SaveSettingsObject(savedConnections); RefreshXrmServices(connection, controller); }); }); } } } controller.AddNotification("XRMCONNECTION", message, isLoading: isLoading, actions: actions); }