90 lines
3.2 KiB
C#
90 lines
3.2 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Web;
|
|
|
|
namespace EnVisage.Models.ProjectDependencies
|
|
{
|
|
public class DependencyChain<T> : Dictionary<Guid, T>
|
|
{
|
|
public static DependencyChain<T> CreateFrom(Dictionary<Guid, T> obj)
|
|
{
|
|
if (obj == null)
|
|
return null;
|
|
var result = new DependencyChain<T>();
|
|
foreach (var item in obj)
|
|
{
|
|
result.Add(item.Key, item.Value);
|
|
}
|
|
return result;
|
|
}
|
|
}
|
|
public class DependencyChainItem
|
|
{
|
|
public Guid Id { get; set; }
|
|
public Guid SourceProjectId { get; set; }
|
|
public Guid TargetProjectId { get; set; }
|
|
public int Level { get; set; }
|
|
public short Type { get; set; }
|
|
public string SourceProjectName { get; set; }
|
|
public string TargetProjectName { get; set; }
|
|
public DateTime? SourceStartDate { get; set; }
|
|
public DateTime? SourceEndDate { get; set; }
|
|
public DateTime? TargetStartDate { get; set; }
|
|
public DateTime? TargetEndDate { get; set; }
|
|
public DateTime? SourceDeadline { get; set; }
|
|
public DateTime? TargetDeadline { get; set; }
|
|
public bool SourceHasActuals { get; set; }
|
|
public bool TargetHasActuals { get; set; }
|
|
public bool IsReversed { get; set; }
|
|
|
|
public static explicit operator DependencyChainItem(VW_ProjectDependencies obj)
|
|
{
|
|
if (obj == null)
|
|
return null;
|
|
return new DependencyChainItem
|
|
{
|
|
Id = obj.Id,
|
|
SourceProjectId = obj.SourceProjectId,
|
|
TargetProjectId = obj.TargetProjectId,
|
|
Type = obj.Type,
|
|
Level = 0,
|
|
SourceStartDate = obj.SourceStartDate,
|
|
SourceEndDate = obj.SourceEndDate,
|
|
SourceProjectName = obj.SourceProjectName,
|
|
TargetStartDate = obj.TargetStartDate,
|
|
TargetEndDate = obj.TargetEndDate,
|
|
TargetProjectName = obj.TargetProjectName,
|
|
SourceDeadline = obj.SourceDeadline,
|
|
TargetDeadline = obj.TargetDeadline,
|
|
SourceHasActuals = obj.SourceHasActuals,
|
|
TargetHasActuals = obj.TargetHasActuals
|
|
};
|
|
}
|
|
|
|
public static DependencyChainItem CreateFrom(VW_ProjectDependencies obj, int level, bool isReversed)
|
|
{
|
|
if (obj == null)
|
|
return null;
|
|
return new DependencyChainItem
|
|
{
|
|
Id = obj.Id,
|
|
SourceProjectId = obj.SourceProjectId,
|
|
TargetProjectId = obj.TargetProjectId,
|
|
Type = obj.Type,
|
|
Level = level,
|
|
SourceStartDate = obj.SourceStartDate,
|
|
SourceEndDate = obj.SourceEndDate,
|
|
SourceProjectName = obj.SourceProjectName,
|
|
TargetStartDate = obj.TargetStartDate,
|
|
TargetEndDate = obj.TargetEndDate,
|
|
TargetProjectName = obj.TargetProjectName,
|
|
IsReversed = isReversed,
|
|
SourceDeadline = obj.SourceDeadline,
|
|
TargetDeadline = obj.TargetDeadline,
|
|
SourceHasActuals = obj.SourceHasActuals,
|
|
TargetHasActuals = obj.TargetHasActuals
|
|
};
|
|
}
|
|
}
|
|
} |