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)
{

View File

@ -0,0 +1,36 @@
namespace Adaptation.FileHandlers.json.WorkItems;
public class PollValues
{
#nullable enable
public PollValues(float? business,
int businessCount,
float? effort,
int effortCount,
float? risk,
int riskCount,
float? time,
int timeCount)
{
Business = business;
BusinessCount = businessCount;
Effort = effort;
EffortCount = effortCount;
Risk = risk;
RiskCount = riskCount;
Time = time;
TimeCount = timeCount;
}
public float? Business { get; set; }
public int? BusinessCount { get; set; }
public float? Effort { get; set; }
public int? EffortCount { get; set; }
public float? Risk { get; set; }
public int? RiskCount { get; set; }
public float? Time { get; set; }
public int? TimeCount { get; set; }
}

View File

@ -7,15 +7,17 @@ public class Record
#nullable enable
public Record(WorkItem workItem, WorkItem? parent, ReadOnlyCollection<Record> children)
public Record(WorkItem workItem, WorkItem? parent, ReadOnlyCollection<Record> children, PollValues? pollValues)
{
WorkItem = workItem;
Parent = parent;
Children = children;
PollValues = pollValues;
}
public WorkItem WorkItem { get; set; }
public WorkItem? Parent { get; set; }
public ReadOnlyCollection<Record> Children { get; set; }
public PollValues? PollValues { get; set; }
}