demo20230512/Models/LCA/LCA.cs
2023-05-12 10:20:28 +08:00

207 lines
7.0 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.Core.Objects;
using System.Linq;
using System.Web;
using System.Runtime.Serialization;
using Resources;
using Newtonsoft.Json;
using Weee.Models.Survey_form_metadata;
using Weee.Models.ExtensionMethods;
namespace Weee.Models
{
public abstract class LCA
{
public LCA()
{
//LCAname = "";
StartDate = DateTime.UtcNow;
EndDate = DateTime.UtcNow;
StatusHistory = new HashSet<LCAStatusLog>();
Status = LCAStatus.New;
//CreatedDate = DateTime.UtcNow;
CreatedDate = DateTime.Now;//DL-13
Comments = new HashSet<Comment>();
WorkHourSheet = new HashSet<WorkHour>();
KitchenSheet = new HashSet<Kitchen>();
GasolineEquipmentSheet = new HashSet<GasolineEquipment>();
FireEquipmentSheet = new HashSet<FireEquipment>();
VehicleSheet = new HashSet<Vehicle>();
RefrigerantSheet = new HashSet<Refrigerant>();
PowerUsageSheet = new HashSet<PowerUsage>();
SteamUsageSheet = new HashSet<SteamUsage>();
}
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Key]
[Display(Name = "LCAid", ResourceType = typeof(Resource))]
public int ID { get; set; }
//[JsonIgnore]
//[IgnoreDataMember]
[Display(Name = "LCAname", ResourceType = typeof(Resource))]
public string LCAname { get; set; }
public string LCAStarter { get; set; }
[Display(Name = "UserDepartment", ResourceType = typeof(Resource))]
public string LCAStarterDepartment { get; set; }
[Display(Name = "UserPhoneNumber", ResourceType = typeof(Resource))]
public string LCAStarterPhone { get; set; }
[Display(Name = "UserJob", ResourceType = typeof(Resource))]
public string LCAStarterJob { get; set; }
[Display(Name = "UserEmail", ResourceType = typeof(Resource))]
public string LCAStarterEmail { get; set; }
public string InterrogationResultUrl { get; set; }
public string ProductInventoryResultUrl { get; set; }
public string CarbonFootprintDocxUrl { get; set; }
public string CertificationFeedbackZipUrl { get; set; }//CFT-89
public string UploadZipReportUrl { get; set; }//CFT-89
[Column(TypeName = "DateTime2")]
[Display(Name = "LCACreatedDate", ResourceType = typeof(Resource))]
[DisplayFormat(DataFormatString = "{0:yyyy/MM/dd HH:mm:ss}", ApplyFormatInEditMode = true)]
public DateTime CreatedDate { get; set; }
[Column(TypeName = "DateTime2")]
[Display(Name = "LCAStartDate", ResourceType = typeof(Resource))]
[Required(ErrorMessageResourceType = typeof(Resource),
ErrorMessageResourceName = "RequiredMessage")]
public DateTime StartDate { get; set; }
[Column(TypeName = "DateTime2")]
[Display(Name = "LCAEndDate", ResourceType = typeof(Resource))]
[Required(ErrorMessageResourceType = typeof(Resource),
ErrorMessageResourceName = "RequiredMessage")]
public DateTime EndDate { get; set; }
[Display(Name = "LCADeadLine", ResourceType = typeof(Resource))]
public DateTime? DeadLine { get; set; }
[Display(Name = "LCADescription", ResourceType = typeof(Resource))]
[MaxLength(200, ErrorMessageResourceType = typeof(Resource),
ErrorMessageResourceName = "LCADescriptionMaxLength")]
public string Description { get; set; }
[Display(Name = "CustomerPartNumber", ResourceType = typeof(Resource))]
public string CustomerPartNumber { get; set; }
[InverseProperty("CommentTarget")]
[JsonIgnore]
[IgnoreDataMember]
public virtual ICollection<Comment> Comments { get; set; }
[InverseProperty("OwnerLCA")]
[JsonIgnore]
[IgnoreDataMember]
public virtual ICollection<WorkHour> WorkHourSheet { get; set; }
[InverseProperty("OwnerLCA")]
[JsonIgnore]
[IgnoreDataMember]
public virtual ICollection<Kitchen> KitchenSheet { get; set; }
[InverseProperty("OwnerLCA")]
[JsonIgnore]
[IgnoreDataMember]
public virtual ICollection<GasolineEquipment> GasolineEquipmentSheet { get; set; }
[InverseProperty("OwnerLCA")]
[JsonIgnore]
[IgnoreDataMember]
public virtual ICollection<FireEquipment> FireEquipmentSheet { get; set; }
[InverseProperty("OwnerLCA")]
[JsonIgnore]
[IgnoreDataMember]
public virtual ICollection<Vehicle> VehicleSheet { get; set; }
[InverseProperty("OwnerLCA")]
[JsonIgnore]
[IgnoreDataMember]
public virtual ICollection<Refrigerant> RefrigerantSheet { get; set; }
[InverseProperty("OwnerLCA")]
[JsonIgnore]
[IgnoreDataMember]
public virtual ICollection<PowerUsage> PowerUsageSheet { get; set; }
[InverseProperty("OwnerLCA")]
[JsonIgnore]
[IgnoreDataMember]
public virtual ICollection<SteamUsage> SteamUsageSheet { get; set; }
[NotMapped]
[Display(Name = "LCAType", ResourceType = typeof(Resource))]
public Type LCAType
{
get
{
return ObjectContext.GetObjectType(this.GetType());
}
}
[NotMapped]
public string LCATypeDisplayName
{
get
{
if (this.LCAType == typeof(OrganizationLCA))
{
return Resource.StaticLabelOrganizationLCA;
}
else if (this.LCAType == typeof(ProductLCA))
{
return Resource.StaticLabelProductLCA;
}
else
{
return Resource.StaticLabelChildProductLCA;
}
}
}
public int? OwnerID { get; set; }
[ForeignKey("OwnerID")]
[JsonIgnore]
[IgnoreDataMember]
[Display(Name = "LCAOwner", ResourceType = typeof(Resource))]
public virtual NormalCompany Owner { get; set; }
public int? VerifierCompanyID { get; set; }
[ForeignKey("VerifierCompanyID")]
[Display(Name = "CertificationUnit", ResourceType = typeof(Resource))]
[JsonIgnore]
[IgnoreDataMember]
public virtual CertificationCompany VerifyBy { get; set; }
[Display(Name = "LCAStatus", ResourceType = typeof(Resource))]
public LCAStatus Status { get; set; }
[NotMapped]
public string StatusDisplayName
{
get
{
return Status.DisplayString();
}
}
[JsonIgnore]
[IgnoreDataMember]
[InverseProperty("LCA")]
public virtual ICollection<LCAStatusLog> StatusHistory { get; set; }
}
}