Skip to content

Commit 529231a

Browse files
committed
Added scrollbar for small screens
1 parent dc38dc8 commit 529231a

12 files changed

+134
-132
lines changed

AlbanianXrm.SolutionPackager.Tool/AlbanianXrm.SolutionPackager.Tool.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,9 @@
4444
<DocumentationFile>$(OutputPath)$(AssemblyName).xml</DocumentationFile>
4545
</PropertyGroup>
4646
<ItemGroup>
47-
<PackageReference Include="AlbanianXrm.XrmToolBox.Shared" Version="1.2021.4.5" />
48-
<PackageReference Include="NuGet.Protocol" Version="5.9.0" />
49-
<PackageReference Include="XrmToolBoxPackage" Version="1.2021.02.45" />
47+
<PackageReference Include="AlbanianXrm.XrmToolBox.Shared" Version="1.2021.6.1" />
48+
<PackageReference Include="NuGet.Protocol" Version="5.9.1" />
49+
<PackageReference Include="XrmToolBoxPackage" Version="1.2021.12.53" />
5050
</ItemGroup>
5151
<ItemGroup>
5252
<Compile Update="Properties\DataPlatformErrorCodes.Designer.cs">

AlbanianXrm.SolutionPackager.Tool/CoreToolsDownloader.cs

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
using AlbanianXrm.SolutionPackager.Properties;
2-
using AlbanianXrm.XrmToolBox.Shared;
1+
using AlbanianXrm.BackgroundWorker;
2+
using AlbanianXrm.SolutionPackager.Properties;
3+
using AlbanianXrm.XrmToolBox.Shared.Extensions;
34
using NuGet.Common;
45
using NuGet.Packaging;
56
using NuGet.Protocol;
@@ -8,7 +9,6 @@
89
using System.Diagnostics;
910
using System.IO;
1011
using System.Linq;
11-
using System.Net;
1212
using System.Threading;
1313
using System.Threading.Tasks;
1414
using System.Windows.Forms;
@@ -19,11 +19,11 @@ internal class CoreToolsDownloader
1919
{
2020
public const string coreToolsId = "Microsoft.CrmSdk.CoreTools";
2121
public const string solutionPackagerName = "SolutionPackager.exe";
22-
private readonly BackgroundWorkHandler backgroundWorkHandler;
22+
private readonly AlBackgroundWorkHandler backgroundWorkHandler;
2323
private readonly SolutionPackagerControl solutionPackagerControl;
2424
private readonly ToolViewModel toolViewModel;
2525

26-
public CoreToolsDownloader(BackgroundWorkHandler backgroundWorkHandler, SolutionPackagerControl solutionPackagerControl, ToolViewModel toolViewModel)
26+
public CoreToolsDownloader(AlBackgroundWorkHandler backgroundWorkHandler, SolutionPackagerControl solutionPackagerControl, ToolViewModel toolViewModel)
2727
{
2828
this.backgroundWorkHandler = backgroundWorkHandler ?? throw new ArgumentNullException(nameof(backgroundWorkHandler));
2929
this.solutionPackagerControl = solutionPackagerControl ?? throw new ArgumentNullException(nameof(solutionPackagerControl));
@@ -32,12 +32,10 @@ public CoreToolsDownloader(BackgroundWorkHandler backgroundWorkHandler, Solution
3232

3333
public void DownloadCoreTools(string nuGetFeed)
3434
{
35-
backgroundWorkHandler.EnqueueAsyncWork(
36-
Resources.DOWNLOADING_CORE_TOOLS,
37-
DownloadCoreToolsAsync,
38-
nuGetFeed,
39-
DownloadCoreToolsCompleted
40-
);
35+
backgroundWorkHandler.EnqueueBackgroundWork(
36+
AlBackgroundWorkerFactory.NewAsyncWorker(DownloadCoreToolsAsync, nuGetFeed, DownloadCoreToolsCompleted)
37+
.WithViewModel(toolViewModel)
38+
.WithMessage(solutionPackagerControl, Resources.DOWNLOADING_CORE_TOOLS));
4139
}
4240

4341
public static Version GetSolutionPackagerVersion()
@@ -79,7 +77,7 @@ public async Task<object> DownloadCoreToolsAsync(string nugetSource)
7977

8078
var metadata = (await packageSearch.SearchAsync(coreToolsId, new SearchFilter(false, SearchFilterType.IsLatestVersion), 0, 1, logger, cancellationToken)).FirstOrDefault();
8179
var version = (await metadata.GetVersionsAsync()).Max(v => v.Version);
82-
System.Diagnostics.Debug.WriteLine($"Version {version}");
80+
8381
using (MemoryStream packageStream = new MemoryStream())
8482
{
8583
if (!await findPackageById.CopyNupkgToStreamAsync(
@@ -112,18 +110,18 @@ public async Task<object> DownloadCoreToolsAsync(string nugetSource)
112110
return GetSolutionPackagerVersion(dir);
113111
}
114112

115-
private void DownloadCoreToolsCompleted(BackgroundWorkResult<string, object> args)
113+
private void DownloadCoreToolsCompleted(string source, object value, Exception exception)
116114
{
117-
if (args.Exception != null)
115+
if (exception != null)
118116
{
119-
solutionPackagerControl.WriteErrorLog("The following error occured while downloading core tools: \r\n{0}", args.Exception);
120-
MessageBox.Show(args.Exception.Message, Resources.MBOX_ERROR, MessageBoxButtons.OK, MessageBoxIcon.Error);
117+
solutionPackagerControl.WriteErrorLog("The following error occured while downloading core tools: \r\n{0}", exception);
118+
MessageBox.Show(exception.Message, Resources.MBOX_ERROR, MessageBoxButtons.OK, MessageBoxIcon.Error);
121119
}
122-
else if (args.Value is string errorMessage)
120+
else if (value is string errorMessage)
123121
{
124122
MessageBox.Show(errorMessage, Resources.MBOX_INFORMATION, MessageBoxButtons.OK, MessageBoxIcon.Information);
125123
}
126-
else if (args.Value is Version version)
124+
else if (value is Version version)
127125
{
128126
toolViewModel.SolutionPackagerVersion = version.ToString();
129127
}

AlbanianXrm.SolutionPackager.Tool/CrmSolutionDownloader.cs

Lines changed: 24 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
using AlbanianXrm.SolutionPackager.Models;
1+
using AlbanianXrm.BackgroundWorker;
2+
using AlbanianXrm.SolutionPackager.Models;
23
using AlbanianXrm.SolutionPackager.Properties;
3-
using AlbanianXrm.XrmToolBox.Shared;
4+
using AlbanianXrm.XrmToolBox.Shared.Extensions;
45
using Microsoft.Crm.Sdk.Messages;
56
using Microsoft.Xrm.Sdk;
67
using Microsoft.Xrm.Sdk.Query;
@@ -16,11 +17,11 @@ namespace AlbanianXrm.SolutionPackager
1617
internal class CrmSolutionDownloader
1718
{
1819
private readonly SolutionPackagerControl solutionPackagerControl;
19-
private readonly BackgroundWorkHandler asyncWorkQueue;
20+
private readonly AlBackgroundWorkHandler asyncWorkQueue;
2021
private readonly SolutionPackagerCaller solutionPackagerCaller;
2122
private readonly ComboBox cmbCrmSolutions;
2223

23-
public CrmSolutionDownloader(SolutionPackagerControl solutionPackagerControl, BackgroundWorkHandler asyncWorkQueue, SolutionPackagerCaller solutionPackagerCaller, ComboBox cmbCrmSolutions)
24+
public CrmSolutionDownloader(SolutionPackagerControl solutionPackagerControl, AlBackgroundWorkHandler asyncWorkQueue, SolutionPackagerCaller solutionPackagerCaller, ComboBox cmbCrmSolutions)
2425
{
2526
this.solutionPackagerControl = solutionPackagerControl ?? throw new ArgumentNullException(nameof(solutionPackagerControl));
2627
this.asyncWorkQueue = asyncWorkQueue ?? throw new ArgumentNullException(nameof(asyncWorkQueue));
@@ -30,12 +31,10 @@ public CrmSolutionDownloader(SolutionPackagerControl solutionPackagerControl, Ba
3031

3132
public void DownloadSolution(Parameters @params)
3233
{
33-
asyncWorkQueue.EnqueueWork(
34-
string.Format(CultureInfo.InvariantCulture, Resources.DOWNLOADING_SOLUTION, @params.Solution.FriendlyName),
35-
DownloadSolutionInner,
36-
@params,
37-
DownloadSolutionCompleted
38-
);
34+
asyncWorkQueue.EnqueueBackgroundWork(
35+
AlBackgroundWorkerFactory.NewWorker(DownloadSolutionInner, @params, DownloadSolutionCompleted)
36+
.WithViewModel(solutionPackagerControl.toolViewModel)
37+
.WithMessage(solutionPackagerControl, string.Format(CultureInfo.InvariantCulture, Resources.DOWNLOADING_SOLUTION, @params.Solution.FriendlyName)));
3938
}
4039

4140
private SolutionPackagerCaller.Parameters DownloadSolutionInner(Parameters @params)
@@ -73,31 +72,30 @@ private SolutionPackagerCaller.Parameters DownloadSolutionInner(Parameters @para
7372
return @params.SolutionPackagerParameters;
7473
}
7574

76-
private void DownloadSolutionCompleted(BackgroundWorkResult<Parameters, SolutionPackagerCaller.Parameters> args)
75+
private void DownloadSolutionCompleted(Parameters args, SolutionPackagerCaller.Parameters value, Exception exception)
7776
{
78-
if (args.Exception is FaultException<OrganizationServiceFault> crmError)
77+
if (exception is FaultException<OrganizationServiceFault> crmError)
7978
{
8079
solutionPackagerControl.WriteErrorLog("The following error occurred while downloading the solution:\r\n{0}", crmError);
8180
MessageBox.Show(crmError.Message, Resources.MBOX_ERROR, MessageBoxButtons.OK, MessageBoxIcon.Error);
8281
}
83-
else if (args.Exception != null)
82+
else if (exception != null)
8483
{
85-
solutionPackagerControl.WriteErrorLog("The following error occurred while downloading the solution:\r\n{0}", args.Exception);
86-
MessageBox.Show(args.Exception.Message, Resources.MBOX_ERROR, MessageBoxButtons.OK, MessageBoxIcon.Error);
84+
solutionPackagerControl.WriteErrorLog("The following error occurred while downloading the solution:\r\n{0}", exception);
85+
MessageBox.Show(exception.Message, Resources.MBOX_ERROR, MessageBoxButtons.OK, MessageBoxIcon.Error);
8786
}
8887
else
8988
{
90-
solutionPackagerCaller.ManageSolution(args.Value);
89+
solutionPackagerCaller.ManageSolution(value);
9190
}
9291
}
9392

9493
public void RefreshSolutionList()
9594
{
96-
asyncWorkQueue.EnqueueWork(
97-
Resources.REFRESHING_SOLUTION_LIST,
98-
RefreshSolutionListInner,
99-
RefreshSolutionListCompleted
100-
);
95+
asyncWorkQueue.EnqueueBackgroundWork(
96+
AlBackgroundWorkerFactory.NewWorker(RefreshSolutionListInner, RefreshSolutionListCompleted)
97+
.WithViewModel(solutionPackagerControl.toolViewModel)
98+
.WithMessage(solutionPackagerControl, Resources.REFRESHING_SOLUTION_LIST));
10199
}
102100

103101
private object[] RefreshSolutionListInner()
@@ -111,18 +109,18 @@ private object[] RefreshSolutionListInner()
111109
return solutionPackagerControl.Service.RetrieveMultiple(query).Entities.Select(solution => solution.ToEntity<Solution>()).ToArray<object>();
112110
}
113111

114-
private void RefreshSolutionListCompleted(BackgroundWorkResult<object[]> args)
112+
private void RefreshSolutionListCompleted(object[] value, Exception exception)
115113
{
116-
if (args.Exception != null)
114+
if (exception != null)
117115
{
118-
solutionPackagerControl.WriteErrorLog("The following error occurred while refreshing the solution list:\r\n{0}", args.Exception);
119-
MessageBox.Show(args.Exception.Message, Resources.MBOX_ERROR, MessageBoxButtons.OK, MessageBoxIcon.Error);
116+
solutionPackagerControl.WriteErrorLog("The following error occurred while refreshing the solution list:\r\n{0}", exception);
117+
MessageBox.Show(exception.Message, Resources.MBOX_ERROR, MessageBoxButtons.OK, MessageBoxIcon.Error);
120118
}
121119
else
122120
{
123121
cmbCrmSolutions.BeginUpdate();
124122
cmbCrmSolutions.Items.Clear();
125-
cmbCrmSolutions.Items.AddRange(args.Value);
123+
cmbCrmSolutions.Items.AddRange(value);
126124
cmbCrmSolutions.EndUpdate();
127125
}
128126
}

AlbanianXrm.SolutionPackager.Tool/CrmSolutionImporter.cs

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
using AlbanianXrm.SolutionPackager.Properties;
1+
using AlbanianXrm.BackgroundWorker;
2+
using AlbanianXrm.SolutionPackager.Properties;
23
using AlbanianXrm.XrmToolBox.Shared;
4+
using AlbanianXrm.XrmToolBox.Shared.Extensions;
35
using Microsoft.Xrm.Sdk.Messages;
46
using System;
57
using System.Globalization;
@@ -11,11 +13,11 @@ namespace AlbanianXrm.SolutionPackager
1113
internal class CrmSolutionImporter
1214
{
1315
private readonly SolutionPackagerControl solutionPackagerControl;
14-
private readonly BackgroundWorkHandler asyncWorkQueue;
16+
private readonly AlBackgroundWorkHandler asyncWorkQueue;
1517
private readonly ToolViewModel toolViewModel;
1618
private SolutionImportStatus solutionImportStatus;
1719

18-
public CrmSolutionImporter(SolutionPackagerControl solutionPackagerControl, BackgroundWorkHandler asyncWorkQueue, ToolViewModel pluginViewModel)
20+
public CrmSolutionImporter(SolutionPackagerControl solutionPackagerControl, AlBackgroundWorkHandler asyncWorkQueue, ToolViewModel pluginViewModel)
1921
{
2022
this.solutionPackagerControl = solutionPackagerControl;
2123
this.asyncWorkQueue = asyncWorkQueue;
@@ -30,12 +32,10 @@ public void ImportSolution(Parameters @params)
3032
fileInfo = new FileInfo(fileInfo.FullName.Substring(0, fileInfo.FullName.Length - fileInfo.Extension.Length) + "_managed" + fileInfo.Extension);
3133
@params.CustomizationFile = fileInfo.FullName;
3234
}
33-
asyncWorkQueue.EnqueueWork(
34-
string.Format(CultureInfo.InvariantCulture, Resources.IMPORT_SOLUTION, fileInfo.Name),
35-
ImportSolutionInner,
36-
@params,
37-
ImportSolutionStarted
38-
);
35+
asyncWorkQueue.EnqueueBackgroundWork(
36+
AlBackgroundWorkerFactory.NewWorker(ImportSolutionInner, @params, ImportSolutionStarted)
37+
.WithViewModel(toolViewModel)
38+
.WithMessage(solutionPackagerControl, string.Format(CultureInfo.InvariantCulture, Resources.IMPORT_SOLUTION, fileInfo.Name)));
3939
}
4040

4141
private Models.ImportSolutionRequest ImportSolutionInner(Parameters @params)
@@ -53,23 +53,23 @@ private Models.ImportSolutionRequest ImportSolutionInner(Parameters @params)
5353
CustomizationFile = File.ReadAllBytes(@params.CustomizationFile)
5454
}
5555
};
56-
return new Models.ImportSolutionRequest()
56+
return new Models.ImportSolutionRequest()
5757
{
5858
ImportJobId = importJobId,
5959
ExecuteAsyncResponse = solutionPackagerControl.Service.Execute(importSolutionRequest) as ExecuteAsyncResponse
6060
};
6161
}
6262

63-
private void ImportSolutionStarted(BackgroundWorkResult<Parameters, Models.ImportSolutionRequest> args)
63+
private void ImportSolutionStarted(Parameters @params, Models.ImportSolutionRequest value, Exception exception)
6464
{
65-
if (args.Exception != null)
65+
if (exception != null)
6666
{
67-
solutionPackagerControl.WriteErrorLog("The following error occurred while importing the solution:\r\n{0}", args.Exception);
68-
MessageBox.Show(args.Exception.Message, Resources.MBOX_ERROR, MessageBoxButtons.OK, MessageBoxIcon.Error);
67+
solutionPackagerControl.WriteErrorLog("The following error occurred while importing the solution:\r\n{0}", exception);
68+
MessageBox.Show(exception.Message, Resources.MBOX_ERROR, MessageBoxButtons.OK, MessageBoxIcon.Error);
6969
return;
7070
}
7171

72-
solutionImportStatus = new SolutionImportStatus(args.Value.ExecuteAsyncResponse.AsyncJobId, args.Value.ImportJobId, solutionPackagerControl, toolViewModel);
72+
solutionImportStatus = new SolutionImportStatus(value.ExecuteAsyncResponse.AsyncJobId, value.ImportJobId, solutionPackagerControl, toolViewModel);
7373
solutionImportStatus.Show(solutionPackagerControl);
7474
}
7575

AlbanianXrm.SolutionPackager.Tool/Interfaces/IMyToolFactory.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
using AlbanianXrm.XrmToolBox.Shared;
1+
using AlbanianXrm.BackgroundWorker;
22
using System.Windows.Forms;
33

44
namespace AlbanianXrm.SolutionPackager.Interfaces
55
{
66
interface IMyToolFactory
77
{
88
ToolViewModel NewToolViewModel();
9-
BackgroundWorkHandler BackgroundWorkHandler();
9+
AlBackgroundWorkHandler BackgroundWorkHandler();
1010
CoreToolsDownloader NewCoreToolsDownloader();
1111
CrmSolutionImporter NewCrmSolutionImporter();
1212
SolutionPackagerCaller NewSolutionPackagerCaller(RichTextBox txtOutput, CrmSolutionImporter crmSolutionImporter);

AlbanianXrm.SolutionPackager.Tool/MyToolFactory.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using AlbanianXrm.SolutionPackager.Interfaces;
1+
using AlbanianXrm.BackgroundWorker;
2+
using AlbanianXrm.SolutionPackager.Interfaces;
23
using AlbanianXrm.XrmToolBox.Shared;
34
using System.Windows.Forms;
45

@@ -8,21 +9,21 @@ internal class MyToolFactory : IMyToolFactory
89
{
910
private readonly SolutionPackagerControl solutionPackagerControl;
1011
private readonly ToolViewModel toolViewModel;
11-
private readonly BackgroundWorkHandler backgroundWorkHandler;
12+
private readonly AlBackgroundWorkHandler backgroundWorkHandler;
1213

1314
private MyToolFactory(SolutionPackagerControl solutionPackagerControl)
1415
{
1516
this.solutionPackagerControl = solutionPackagerControl;
1617
this.toolViewModel = new ToolViewModel();
17-
this.backgroundWorkHandler = new BackgroundWorkHandler(solutionPackagerControl, toolViewModel);
18+
this.backgroundWorkHandler = new AlBackgroundWorkHandler();
1819
}
1920

2021
public static IMyToolFactory GetMyToolFactory(SolutionPackagerControl solutionPackagerControl)
2122
{
2223
return new MyToolFactory(solutionPackagerControl);
2324
}
2425

25-
public BackgroundWorkHandler BackgroundWorkHandler()
26+
public AlBackgroundWorkHandler BackgroundWorkHandler()
2627
{
2728
return backgroundWorkHandler;
2829
}

0 commit comments

Comments
 (0)