Moved logic around

This commit is contained in:
2024-10-16 13:51:24 -07:00
parent 6581945127
commit 2acb024d87
7 changed files with 433 additions and 148 deletions

View File

@ -8,6 +8,7 @@ using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Text.Json;
@ -197,22 +198,31 @@ public class FileRead : Shared.FileRead, IFileRead
}
}
private static void ParseWorkItemsAsync(FileConnectorConfiguration fileConnectorConfiguration, string[] alternateTargetFolders)
private static void ParseWorkItemsAsync(FileConnectorConfiguration fileConnectorConfiguration, Calendar calendar, string[] alternateTargetFolders)
{
if (!Directory.Exists(fileConnectorConfiguration.TargetFileLocation))
_ = Directory.CreateDirectory(fileConnectorConfiguration.TargetFileLocation);
DateTime dateTime = DateTime.Now;
string weekOfYear = calendar.GetWeekOfYear(dateTime, CalendarWeekRule.FirstDay, DayOfWeek.Sunday).ToString("00");
string weekDirectory = Path.Combine(fileConnectorConfiguration.TargetFileLocation, $"{dateTime:yyyy}_Week_{weekOfYear}");
string[] files = Directory.GetFiles(fileConnectorConfiguration.TargetFileLocation, fileConnectorConfiguration.SourceFileFilter, SearchOption.TopDirectoryOnly);
if (!Directory.Exists(weekDirectory))
{
_ = Directory.CreateDirectory(weekDirectory);
foreach (string file in files)
File.Copy(file, Path.Combine(weekDirectory, Path.GetFileName(file)));
}
ReadOnlyCollection<Value> collection = GetWorkItems(files);
ReadOnlyCollection<WorkItem> workItems = GetWorkItems(collection);
if (workItems.Count > 0)
WriteCollectionJson(fileConnectorConfiguration, alternateTargetFolders, workItems);
}
private static void ParseWorkItemsAsync(FileConnectorConfiguration fileConnectorConfiguration)
private static void ParseWorkItemsAsync(FileConnectorConfiguration fileConnectorConfiguration, Calendar calendar)
{
string[] alternateTargetFolders = fileConnectorConfiguration.AlternateTargetFolder.Split('|');
if (alternateTargetFolders.Length > 0)
ParseWorkItemsAsync(fileConnectorConfiguration, alternateTargetFolders);
ParseWorkItemsAsync(fileConnectorConfiguration, calendar, alternateTargetFolders);
}
private void Callback(object state)
@ -220,7 +230,7 @@ public class FileRead : Shared.FileRead, IFileRead
try
{
if (_IsEAFHosted)
ParseWorkItemsAsync(_FileConnectorConfiguration);
ParseWorkItemsAsync(_FileConnectorConfiguration, _Calendar);
}
catch (Exception exception)
{