using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace EnVisage.Models.ProjectDependencies { public class DependencyChain : Dictionary { public static DependencyChain CreateFrom(Dictionary obj) { if (obj == null) return null; var result = new DependencyChain(); 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 }; } } }