Skip to content

Commit 05bec51

Browse files
committed
Bunch of fixes after a debugging session of scheduled task
1 parent 5634c10 commit 05bec51

5 files changed

Lines changed: 66 additions & 26 deletions

File tree

Server/Core/CheckGithubTask.cs

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,18 +27,26 @@ public override void DoWork()
2727
foreach (var link in links)
2828
{
2929
AddLogLine($"Checking {link.Name}");
30-
if (link.IsResourcesRepo)
30+
try
3131
{
32-
GithubController.CheckResourcesRepo(link);
32+
if (link.IsResourcesRepo)
33+
{
34+
GithubController.CheckResourcesRepo(link);
35+
}
36+
else
37+
{
38+
GithubController.CheckPackage(link);
39+
}
40+
AddLogLine($"Finished checking {link.Name}");
3341
}
34-
else
42+
catch (Exception ex)
3543
{
36-
GithubController.CheckPackage(link);
44+
Logger.Error(ex);
45+
AddLogLine($"Error checking {link.Name}, check log for details - continuing with other packages");
3746
}
38-
AddLogLine($"Finished checking {link.Name}");
3947
}
4048

41-
Data.Sprocs.RefreshNrTexts();
49+
TextRepository.Instance.RefreshNrTexts();
4250
AddLogLine($"Refreshed Nr Texts");
4351

4452
ScheduleHistoryItem.Succeeded = true;
Lines changed: 30 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,41 @@
11
using DotNetNuke.Framework;
22
using Connect.LanguagePackManager.Core.Models.Texts;
3+
using System.Data.SqlClient;
4+
using System;
5+
using DotNetNuke.Data;
6+
using DotNetNuke.Data.PetaPoco;
37

48
namespace Connect.LanguagePackManager.Core.Repositories
59
{
6-
public partial class TextRepository : ServiceLocator<ITextRepository, TextRepository>, ITextRepository
10+
public partial class TextRepository : ServiceLocator<ITextRepository, TextRepository>, ITextRepository
11+
{
12+
public TextBase AddText(int packageVersionId, int resourceFileId, string key, string value)
713
{
8-
public TextBase AddText(int packageVersionId, int resourceFileId, string key, string value)
9-
{
10-
var text = new TextBase()
11-
{
12-
PackageVersionId = packageVersionId,
13-
ResourceFileId = resourceFileId,
14-
TextKey = key,
15-
OriginalValue = value
16-
};
17-
return AddText(text);
18-
}
14+
var text = new TextBase()
15+
{
16+
PackageVersionId = packageVersionId,
17+
ResourceFileId = resourceFileId,
18+
TextKey = key,
19+
OriginalValue = value
20+
};
21+
return AddText(text);
1922
}
20-
public partial interface ITextRepository
23+
24+
public void RefreshNrTexts()
2125
{
22-
TextBase AddText(int packageVersionId, int resourceFileId, string key, string value);
26+
// We have to bypass the regular DB Context as we need to be able to set the timeout. This SPROC can take minutes to complete.
27+
var dbInst = DataProvider.Instance();
28+
PetaPocoHelper.ExecuteNonQuery(
29+
dbInst.ConnectionString,
30+
System.Data.CommandType.StoredProcedure,
31+
(int)TimeSpan.FromMinutes(30).TotalSeconds,
32+
dbInst.DatabaseOwner + dbInst.ObjectQualifier + "Connect_LPM_RefreshNrTexts");
2333
}
34+
}
35+
public partial interface ITextRepository
36+
{
37+
TextBase AddText(int packageVersionId, int resourceFileId, string key, string value);
38+
void RefreshNrTexts();
39+
}
2440
}
2541

Server/Core/Services/Github/GithubController.cs

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,16 @@ public static void CheckPackage(PackageLink package)
1919
{
2020
Logger.Info($"Checking package repo {package.Name}");
2121
var baseVersion = string.IsNullOrEmpty(package.LastDownloadedVersion) ? "00.00.00" : package.LastDownloadedVersion;
22-
var githubVersions = GithubService.GetReleases(package.OrgName, package.RepoName)
23-
.Where(gp => gp.Draft == false
24-
&& gp.Prerelease == false
25-
&& (string.IsNullOrEmpty(package.LastDownloadedVersion) || baseVersion.IsSmallerThan(gp.TagName.ParseVersion().ToNormalizedFormat())))
26-
.OrderBy(p => p.Published);
22+
var gh1 = GithubService.GetReleases(package.OrgName, package.RepoName);
23+
var gh2 = gh1.Where(gp => gp.Draft == false);
24+
var gh3 = gh2.Where(gp => gp.Prerelease == false);
25+
var gh4 = gh3.Where(gp => (string.IsNullOrEmpty(package.LastDownloadedVersion) || baseVersion.IsSmallerThan(gp.TagName.ParseVersion().ToNormalizedFormat())));
26+
var githubVersions = gh4.OrderBy(p => p.Published);
27+
//var githubVersions = GithubService.GetReleases(package.OrgName, package.RepoName)
28+
// .Where(gp => gp.Draft == false
29+
// && gp.Prerelease == false
30+
// && (string.IsNullOrEmpty(package.LastDownloadedVersion) || baseVersion.IsSmallerThan(gp.TagName.ParseVersion().ToNormalizedFormat())))
31+
// .OrderBy(p => p.Published);
2732
foreach (var githubVersion in githubVersions)
2833
{
2934
foreach (var download in githubVersion.Assets)

Server/Core/Services/Github/GithubService.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ public static bool DownloadFile(string fileUrl, string destinationFile)
7979

8080
Logger.Info($"Retrieving {fileUrl} and saving to {destinationFile}");
8181
client.DownloadFile(fileUrl, destinationFile);
82+
System.Threading.Thread.Sleep(1000);
8283
}
8384
}
8485
catch (Exception ex)

Server/Core/Services/Packages/PackageReader.cs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,17 @@ public PackageReader(int packageLinkId, int parentPackageVersionId, string zipFi
4848
else
4949
{
5050
Logger.Info("Regular DNN package");
51-
this.Manifest = new Manifest(this.UnzipResult);
51+
try
52+
{
53+
this.Manifest = new Manifest(this.UnzipResult);
54+
}
55+
catch (Exception ex)
56+
{
57+
Logger.Error("Cannot parse manifest of package");
58+
Logger.Error(ex);
59+
this.IsInError= true;
60+
this.ErrorMessage = "Cannot parse manifest of package";
61+
}
5262
}
5363
}
5464

0 commit comments

Comments
 (0)