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);
        }
예제 #3
0
        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);
        }