Mike Phares 326bd1ea73 CoD
With Parents on pages
WSJF Columns
2024-10-21 17:55:24 -07:00

137 lines
5.4 KiB
C#

using System;
using System.Text.Json.Serialization;
namespace Adaptation.FileHandlers.json.WorkItems;
public class WorkItem
{
#nullable enable
[JsonConstructor]
public WorkItem(DateTime? activatedDate,
string areaPath,
string? assignedTo,
long? businessValue,
DateTime changedDate,
DateTime? closedDate,
int commentCount,
DateTime createdDate,
string description,
long? effort,
int id,
string iterationPath,
int? parent,
int? priority,
Relation[]? relations,
string? requester,
DateTime? resolvedDate,
int revision,
long? riskReductionMinusOpportunityEnablement,
DateTime? startDate,
string state,
string tags,
DateTime? targetDate,
long? timeCriticality,
string title,
string? violation,
long? weightedShortestJobFirst,
string workItemType)
{
ActivatedDate = activatedDate;
AreaPath = areaPath;
AssignedTo = assignedTo;
BusinessValue = businessValue;
ChangedDate = changedDate;
ClosedDate = closedDate;
CommentCount = commentCount;
CreatedDate = createdDate;
Description = description;
Effort = effort;
Id = id;
IterationPath = iterationPath;
Parent = parent;
Priority = priority;
Relations = relations;
Requester = requester;
ResolvedDate = resolvedDate;
Revision = revision;
RiskReductionMinusOpportunityEnablement = riskReductionMinusOpportunityEnablement;
StartDate = startDate;
State = state;
Tags = tags;
TargetDate = targetDate;
TimeCriticality = timeCriticality;
Title = title;
Violation = violation;
WeightedShortestJobFirst = weightedShortestJobFirst;
WorkItemType = workItemType;
}
public override string ToString() => $"{Id} - {WorkItemType} - {Title}";
public static Record Get(Record record, string? violation)
{
Record result;
WorkItem workItem = new(record.WorkItem.ActivatedDate,
record.WorkItem.AreaPath,
record.WorkItem.AssignedTo,
record.WorkItem.BusinessValue,
record.WorkItem.ChangedDate,
record.WorkItem.ClosedDate,
record.WorkItem.CommentCount,
record.WorkItem.CreatedDate,
record.WorkItem.Description,
record.WorkItem.Effort,
record.WorkItem.Id,
record.WorkItem.IterationPath,
record.WorkItem.Parent,
record.WorkItem.Priority,
record.WorkItem.Relations,
record.WorkItem.Requester,
record.WorkItem.ResolvedDate,
record.WorkItem.Revision,
record.WorkItem.RiskReductionMinusOpportunityEnablement,
record.WorkItem.StartDate,
record.WorkItem.State,
record.WorkItem.Tags,
record.WorkItem.TargetDate,
record.WorkItem.TimeCriticality,
record.WorkItem.Title,
record.WorkItem.Violation is null ? violation : record.WorkItem.Violation,
record.WorkItem.WeightedShortestJobFirst,
record.WorkItem.WorkItemType);
result = new(workItem, record.Parent, Array.Empty<Record>());
return result;
}
public DateTime? ActivatedDate { get; set; }
public string AreaPath { get; set; }
public string? AssignedTo { get; set; }
public long? BusinessValue { get; set; }
public DateTime ChangedDate { get; set; }
public DateTime? ClosedDate { get; set; }
public int CommentCount { get; set; }
public DateTime CreatedDate { get; set; }
public string Description { get; set; }
public long? Effort { get; set; }
public int Id { get; set; }
public string IterationPath { get; set; }
public int? Parent { get; set; }
public int? Priority { get; set; }
public Relation[]? Relations { get; set; }
public string? Requester { get; set; }
public DateTime? ResolvedDate { get; set; }
public int Revision { get; set; }
public long? RiskReductionMinusOpportunityEnablement { get; set; }
public DateTime? StartDate { get; set; }
public string State { get; set; }
public string Tags { get; set; }
public DateTime? TargetDate { get; set; }
public long? TimeCriticality { get; set; }
public string Title { get; set; }
public string? Violation { get; set; }
public string WorkItemType { get; set; }
public long? WeightedShortestJobFirst { get; set; }
}