using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.ComponentModel.DataAnnotations; namespace Sleis.Models { public abstract class UnitProcess : ListItemModel { public virtual int EmissionUnitId { get; set; } public virtual string UnitProcessClassCode { get; set; } public virtual EpaUnitProcessClass Scc { get; set; } public virtual string EmissionIdentifier { get; set; } public virtual string Comment { get; set; } public virtual EmissionUnit EmissionUnit { get; set; } public virtual FacilityModel Facility { get; set; } public virtual int? MasterUnitProcessId { get; set; } //public virtual PublicUnitProcessModel UnitProcess { get; set; } //TODO: Refactor. Should be part of detail view...not Domain Object public virtual List UnitProcessReleasePointSelectionList { get; set; } public virtual UnitProcessControlDevice EntityControlDevice { get; set; } public virtual List RegulationPrograms { get; set; } public virtual UnitProcessControlApproach ControlApproach { get; set; } public virtual List UnitProcessReleasePoints { get; set; } public virtual List ReleasePoints { get; set; } public virtual List EpaRegulationPrograms { get; set; } //public virtual List EmissionUnits { get; set; } public virtual ProcessEmission ProcessEmission { get; set; } public virtual string UniqueIdentifier { get { return String.Format("{0} - {1}", EmissionIdentifier, Identifier); } } public UnitProcess() { EpaRegulationPrograms = new List(); RegulationPrograms = new List(); UnitProcessReleasePoints = new List(); } public UnitProcess(UnitProcessListItem listItem) { Description = listItem.Description; FacilityId = listItem.FacilityId; Id = listItem.Id; Identifier = listItem.Identifier; LastEmissionsYear = listItem.LastEmissionsYear; Scc = listItem.Scc; Type = listItem.Type; TypeCode = listItem.TypeCode; Status = listItem.Status; StatusCode = listItem.StatusCode; EmissionUnitId = listItem.EmissionUnit.Id; StatusEffectiveDate = listItem.StatusEffectiveDate; } public UnitProcess(bool isAgency) { Type = new SimpleLookupItem(); UnitProcessReleasePointSelectionList = new List(); if (isAgency) { //UnitProcess = new PublicUnitProcessModel(); RegulationPrograms = new List(); ControlApproach = new AgencyUnitProcessControlApproach(); UnitProcessReleasePoints = new List(); ReleasePoints = new List(); EntityControlDevice = new UnitProcessControlDevice(); EpaRegulationPrograms = new List(); //EmissionUnits = new List(); //add some dummy data for add //RegulationPrograms.Add(new AgencyUnitProcessRegulationProgram()); //UnitProcessReleasePoints.Add(new PublicUnitProcessReleasePoint()); //EpaRegulationPrograms.Add(new SimpleLookupItem()); //EntityControlDevice.ControlDevices.Add(new PublicControlDevice()); //EntityControlDevice.EntityControlDevices.Add(new PublicUnitProcessControlDevice()); } else { //UnitProcess = new PublicUnitProcessModel(); RegulationPrograms = new List(); ControlApproach = new PublicUnitProcessControlApproach(); UnitProcessReleasePoints = new List(); ReleasePoints = new List(); EntityControlDevice = new UnitProcessControlDevice(); EpaRegulationPrograms = new List(); //EmissionUnits = new List(); //add some dummy data for add //RegulationPrograms.Add(new PublicUnitProcessRegulationProgram()); //UnitProcessReleasePoints.Add(new PublicUnitProcessReleasePoint()); //EpaRegulationPrograms.Add(new SimpleLookupItem()); //EntityControlDevice.ControlDevices.Add(new PublicControlDevice()); //EntityControlDevice.EntityControlDevices.Add(new PublicUnitProcessControlDevice()); } } public override void SetContext(string parentContext) { int id = Id; ValidationContxt = String.Format("{0} Emission Unit: {1} Unit Process:{2}", parentContext, EmissionIdentifier, Identifier); base.ValidationContxt = this.ValidationContxt; //if (UnitProcess != null) //{ //UnitProcess.SetContext(parentContext); //ValidationContxt = UnitProcess.ValidationContxt; if (EntityControlDevice != null) EntityControlDevice.SetContext(ValidationContxt); if (RegulationPrograms != null) RegulationPrograms.ForEach(x => x.SetContext(ValidationContxt)); if (UnitProcessReleasePoints != null) UnitProcessReleasePoints.ForEach(x => x.SetContext(ValidationContxt)); //if (ReleasePoints != null) ReleasePoints.ForEach(x => x.SetContext(UnitProcess.ValidationContxt)); //if (EpaRegulationPrograms != null) EpaRegulationPrograms.ForEach(x => x.SetContext(UnitProcess.ValidationContxt)); //if (EmissionUnits != null) EmissionUnits.ForEach(x => x.SetContext(UnitProcess.ValidationContxt)); //if (UnitProcessReleasePointSelectionList != null) UnitProcessReleasePointSelectionList.ForEach(x => x.SetContext(UnitProcess.ValidationContxt)); //} } } }