Skip to content

Commit

Permalink
Merge branch 'dev'
Browse files Browse the repository at this point in the history
  • Loading branch information
ctrl-brk committed Apr 18, 2024
2 parents 4cf3de5 + 36a787d commit d407cba
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 4 deletions.
2 changes: 1 addition & 1 deletion src/AF0E.Functions/DX/Activities/MergeAndSaveActivity.cs
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ async Task Save()
if (result.EndDate < minDate) // already ended
continue;

var endDate = new DateOnly(result.EndDate.Year, result.EndDate.Month, 1);
var endDate = new DateOnly(result.EndDate.Year, result.EndDate.Month, 1).AddMonths(1).AddDays(-1);
var iterator = result.BeginDate > minDate
? new DateOnly(result.BeginDate.Year, result.BeginDate.Month, 1)
: new DateOnly(minDate.Year, minDate.Month, minDate.Day);
Expand Down
28 changes: 25 additions & 3 deletions src/AF0E.Functions/DX/Activities/VA3RJActivity.cs
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ private static string ExtractTableBody(string body)

private static List<DxInfo> ParseDxData(string html)
{
List<DxInfo> results = new();
List<DxInfo> results = [];

var rows = html.Split("<tr ").Where(x => !string.IsNullOrEmpty(x));
foreach (var row in rows)
Expand All @@ -64,8 +64,18 @@ private static List<DxInfo> ParseDxData(string html)
startIdx = cells[4].IndexOf('>');
var beginDate = ParseDate(cells[4][(startIdx + 1)..], out var beginDateSet);


DateTime endDate;
var endDateSet = false;
startIdx = cells[5].IndexOf('>');
var endDate = ParseDate(cells[5][(startIdx + 1)..], out var endDateSet);
try
{
endDate = ParseDate(cells[5][(startIdx + 1)..], out endDateSet);
}
catch
{
endDate = DateTime.Now.AddMonths(1);
}

if (endDate > DateTime.Now.AddMonths(1))
{
Expand Down Expand Up @@ -98,12 +108,24 @@ private static DateTime ParseDate(string dateStr, out bool isSet)
var startIdx = dateStr.IndexOf('>'); // <td><font color="gray">2023-12-31?</font>

if (startIdx < 0)
return DateTime.Parse(dateStr);
return TryParseDate(dateStr);

var endIdx = dateStr.IndexOf('?', startIdx);
dateStr = dateStr.Substring(startIdx+1, endIdx - startIdx - 1);
isSet = false;

return TryParseDate(dateStr);
}

private static DateTime TryParseDate(string dateStr)
{
if (DateTime.TryParse(dateStr, out var parsedDate))
return parsedDate;

//seen dates like 2024-31-12

var dateParts = dateStr.Split('-');
dateStr = $"{dateParts[0]}-{dateParts[2]}-{dateParts[1]}";
return DateTime.Parse(dateStr);
}
}

0 comments on commit d407cba

Please sign in to comment.