Example #1
0
        private void StartExport(ExportToProcess etp)
        {
            progressItems[etp.Request].Solution = etp.Solution.GetAttributeValue <string>("friendlyname");
            progressItems[etp.Request].Start();

            WorkAsync(new WorkAsyncInfo
            {
                Message = "",
                Work    = (bw, evt) =>
                {
                    etp.IsProcessing    = true;
                    etp.SolutionContent = ((ExportSolutionResponse)etp.Detail.GetCrmServiceClient().Execute(etp.Request))
                                          .ExportSolutionFile;
                },
                PostWorkCallBack = evt =>
                {
                    etp.IsProcessed  = true;
                    etp.IsProcessing = false;

                    if (evt.Error != null)
                    {
                        progressItems[etp.Request].Error(DateTime.Now);
                    }
                    else
                    {
                        progressItems[etp.Request].Success(DateTime.Now);
                    }
                }
            });
        }
Example #2
0
        private void TsbTransfertSolutionClick(object sender, EventArgs e)
        {
            if (mForm.SelectedSolutions.Count == 0 || !AdditionalConnectionDetails.Any())
            {
                MessageBox.Show(@"You have to select a source solution and a target organization to continue.", @"Warning",
                                MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            var solutionsToTransfer = PreparareSolutionsToTransfer();

            if (solutionsToTransfer.Count == 0)
            {
                return;
            }

            var requests = new List <OrganizationRequest>();

            progressItems = new Dictionary <OrganizationRequest, ProgressItem>();
            toProcessList = new List <BaseToProcess>();

            foreach (var solution in solutionsToTransfer)
            {
                var exportItem = new ExportToProcess
                {
                    Solution = solution,
                    Previous = toProcessList.OfType <ExportToProcess>().LastOrDefault(),
                    Request  = PrepareExportRequest(solution),
                    Detail   = sourceDetail
                };
                toProcessList.Add(exportItem);

                foreach (var detail in AdditionalConnectionDetails)
                {
                    toProcessList.Add(new ImportToProcess
                    {
                        Solution = solution,
                        Previous = toProcessList.OfType <ImportToProcess>().LastOrDefault(x => x.Detail == detail),
                        Export   = exportItem,
                        Request  = PrepareImportRequest(detail, solution),
                        Detail   = detail
                    });
                }
            }

            if (!Settings.Instance.Managed && Settings.Instance.Publish)
            {
                foreach (var detail in AdditionalConnectionDetails)
                {
                    toProcessList.Add(new PublishToProcess
                    {
                        Request = PreparePublishRequest(detail),
                        Detail  = detail
                    });
                }
            }

            // Add items to progress form
            pForm.Items = progressItems.Values.ToList();
            pForm.Start();

            pForm.Show(dpMain, DockState.DockRight);

            ToggleWaitMode(true);

            StartExport(toProcessList.OfType <ExportToProcess>().First());

            timer.Elapsed += Timer_Elapsed;
            timer.Interval = Settings.Instance.RefreshIntervalProp.TotalMilliseconds;
            timer.Start();
        }