public void VsixRefreshConnectionDialogTest()
        {
            var xrmConfiguration       = new InterfaceMapperFor <IXrmConfiguration, XrmConfiguration>().Map(XrmConfiguration);
            var xrmRecordConfiguration = SavedXrmRecordConfiguration.CreateNew(new XrmConfigurationMapper().Map(xrmConfiguration));
            var dialog = new ConnectionEntryDialog(CreateDialogController(), xrmRecordConfiguration, VisualStudioService, true);

            dialog.Controller.BeginDialog();

            var entryViewModel = (ObjectEntryViewModel)dialog.Controller.UiItems.First();

            Assert.IsTrue(entryViewModel.Validate());
            entryViewModel.OnSave();
        }
 private void AddRedirectToConnectionEntryIfNotConnected(IVisualStudioService visualStudioService)
 {
     if (string.IsNullOrWhiteSpace(XrmRecordService.XrmRecordConfiguration.OrganizationUniqueName))
     {
         //if there was no connection then lets redirect to the connection entry first
         var    newConnection = new SavedXrmRecordConfiguration();
         Action refreshChildDialogConnection = () =>
         {
             newConnection.Active = true;
             XrmRecordService.XrmRecordConfiguration = newConnection;
             SettingsObject.Connections = new[] { newConnection };
         };
         RefreshActiveServiceConnection = true;
         var connectionEntryDialog = new ConnectionEntryDialog(this, newConnection, visualStudioService, true, doPostEntry: refreshChildDialogConnection);
         var subDialogList         = new List <DialogViewModel>();
         subDialogList.Add(connectionEntryDialog);
         XrmRecordService.XrmRecordConfiguration = newConnection;
         subDialogList.AddRange(SubDialogs);
         SubDialogs = subDialogList;
     }
 }
        public XrmPackageSettingsDialog(IDialogController dialogController, XrmPackageSettings objectToEnter, IVisualStudioService visualStudioService, XrmRecordService xrmRecordService)
            : base(dialogController, xrmRecordService, objectToEnter)
        {
            XrmRecordService    = xrmRecordService;
            VisualStudioService = visualStudioService;

            if (string.IsNullOrWhiteSpace(XrmRecordService.XrmRecordConfiguration.OrganizationUniqueName))
            {
                //if there was no connection then lets redirect to the connection entry first
                var    newConnection = new SavedXrmRecordConfiguration();
                Action refreshChildDialogConnection = () => {
                    newConnection.Active = true;
                    XrmRecordService.XrmRecordConfiguration = newConnection;
                    SettingsObject.Connections = new[] { newConnection };
                };
                var connectionEntryDialog = new ConnectionEntryDialog(this, newConnection, visualStudioService, true, doPostEntry: refreshChildDialogConnection);
                var subDialogList         = new List <DialogViewModel>();
                subDialogList.Add(connectionEntryDialog);
                XrmRecordService.XrmRecordConfiguration = newConnection;
                subDialogList.AddRange(SubDialogs);
                SubDialogs = subDialogList;
            }
        }