97 lines
3.2 KiB
C#
97 lines
3.2 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Web;
|
|
using System.Xml.Serialization;
|
|
using MongoDB.Bson;
|
|
using MongoDB.Bson.Serialization.Attributes;
|
|
using EnVisage.Models;
|
|
|
|
namespace EnVisage.Code.DAL.Mongo
|
|
{
|
|
/// <summary>
|
|
/// Represents information about one Project of any Mix.
|
|
/// </summary>
|
|
[BsonIgnoreExtraElements]
|
|
[Serializable]
|
|
public class MixProject
|
|
{
|
|
public Guid Id { get; set; }
|
|
public string Name { get; set; }
|
|
public MixScenario Scenario { get; set; }
|
|
public List<Guid> Teams { get; set; }
|
|
public Boolean Pinned { get; set; }
|
|
|
|
public MixProject()
|
|
{
|
|
Teams = new List<Guid>();
|
|
}
|
|
|
|
public static explicit operator MixProject(MixProjectModel project)
|
|
{
|
|
if (project == null)
|
|
return null;
|
|
|
|
return new MixProject()
|
|
{
|
|
Id = project.Id,
|
|
Name = project.Name,
|
|
Scenario = (MixScenario)project.Scenario,
|
|
Teams = project.Teams,
|
|
Pinned = project.Pinned
|
|
};
|
|
}
|
|
}
|
|
|
|
[BsonIgnoreExtraElements]
|
|
[Serializable]
|
|
public class MixScenario
|
|
{
|
|
public Guid Id { get; set; }
|
|
public Guid? ParentId { get; set; }
|
|
public long StartDate { get; set; }
|
|
public long EndDate { get; set; }
|
|
public Guid TemplateId { get; set; }
|
|
public decimal? ProjectedRevenue { get; set; }
|
|
public bool GrowthScenario { get; set; }
|
|
public ScenarioType Type { get; set; }
|
|
public bool UseLMMargin { get; set; }
|
|
public decimal? GrossMargin { get; set; }
|
|
public decimal? LMMargin { get; set; }
|
|
public decimal? TDDirectCosts { get; set; }
|
|
public int Duration { get; set; }
|
|
public decimal CGSplit { get; set; }
|
|
public decimal EFXSplit { get; set; }
|
|
public CostSavingSnapshotModel CostSavings { get; set; }
|
|
public List<ScenarioCalendarRateModel> Rates { get; set; }
|
|
public bool IsNew { get; set; } // SA. ENV-1159
|
|
|
|
public static explicit operator MixScenario(ScenarioCalendarMixModel scenario)
|
|
{
|
|
if (scenario == null)
|
|
return null;
|
|
|
|
return new MixScenario()
|
|
{
|
|
Id = scenario.Id,
|
|
ParentId = scenario.ParentId,
|
|
StartDate = scenario.StartDate,
|
|
EndDate = scenario.EndDate,
|
|
TemplateId = scenario.TemplateId,
|
|
ProjectedRevenue = scenario.ProjectedRevenue,
|
|
GrowthScenario = scenario.GrowthScenario,
|
|
Type = scenario.Type,
|
|
UseLMMargin = scenario.UseLMMargin,
|
|
GrossMargin = scenario.GrossMargin,
|
|
LMMargin = scenario.LMMargin,
|
|
TDDirectCosts = scenario.TDDirectCosts,
|
|
Duration = scenario.Duration,
|
|
CGSplit = scenario.CGSplit,
|
|
EFXSplit = scenario.EFXSplit,
|
|
CostSavings = scenario.CostSavings,
|
|
Rates = scenario.Rates,
|
|
IsNew = scenario.IsNew // SA. ENV-1159
|
|
};
|
|
}
|
|
}
|
|
} |