tiseza_oss_live/Models/ProjectProfileExternal.cs

137 lines
5.4 KiB
C#

using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.Spatial;
using System.Web.Mvc;
namespace OSS.Models
{
public class ProjectProfileExternal
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public long ProjectID { get; set; }
public string ProjectCode { get; set; }
[Required]
[RegularExpression(@"^[a-zA-Z0-9 &'\(\)-\/_.,]+$", ErrorMessage = "Please enter a valid project name")]
public string ProjectName { get; set; }
public string CompanyTIN { get; set; }
[RegularExpression(@"^[a-zA-Z0-9 &'\(\)-\/_.,]+$", ErrorMessage = "Please enter a valid activity description")]
[Required]
public string MainActivity { get; set; }
[Required(ErrorMessage = "Production capacity is required.")]
[Range(0, double.MaxValue, ErrorMessage = "Production capacity must be a decimal value.")]
public string ProductionCapacity { get; set; }
[StringLength(255)]
public string CompanyName { get; set; }
[DataType(DataType.EmailAddress, ErrorMessage = "Invalid email address")]
[Required]
public string ContactEmail { get; set; }
public string StepName { get; set; }
public string ServiceName { get; set; }
public string LandMarkType { get; set; }
[RegularExpression(@"^[a-zA-Z0-9-\/]+$", ErrorMessage = "Invalid plot number")]
[StringLength(10, ErrorMessage = "Plot number too long (10)")]
public string PlotNumber { get; set; }
[RegularExpression(@"^[a-zA-Z0-9-\/]+$", ErrorMessage = "Invalid house number")]
[StringLength(10, ErrorMessage = "House number too long (10)")]
public string HouseNo { get; set; }
[RegularExpression(@"^[a-zA-Z0-9-'\(\)&._\/ ]+$", ErrorMessage = "Invalid area description")]
[StringLength(20, ErrorMessage = "Area description too long (10)")]
public string Area { get; set; }
[RegularExpression(@"^[a-zA-Z0-9-'\(\)&._\/ ]+$", ErrorMessage = "Invalid area description")]
[StringLength(20, ErrorMessage = "Land mark too long (10)")]
public string LandMarkDescription { get; set; }
public string Ward { get; set; }
public string Street { get; set; }
[Required]
public string Sector { get; set; }
[Required]
public string SubSector { get; set; }
public string UnitMeasure { get; set; }
public string TypeofOwnership { get; set; }
[Required]
[RegularExpression(@"^[0-9]+$", ErrorMessage = "Please enter a number")]
public long? MenForeign { get; set; }
[Required]
[RegularExpression(@"^[0-9]+$", ErrorMessage = "Please enter a number")]
public long? WomenForeign { get; set; }
[Required]
[RegularExpression(@"^[0-9]+$", ErrorMessage = "Please enter a number")]
public long? MenLocal { get; set; }
[Required]
[RegularExpression(@"^[0-9]+$", ErrorMessage = "Please enter a number")]
public long? WomenLocal { get; set; }
[Required]
public string Telephone { get; set; }
[Required]
[RegularExpression(@"^[0-9]+$", ErrorMessage = "Please enter a valid postal address")]
public string PostalAddress { get; set; }
[RegularExpression(@"^[a-zA-Z0-9-\/]+$", ErrorMessage = "Invalid block number")]
[StringLength(10, ErrorMessage = "Block number too long (10)")]
public string BlockPlotNumber { get; set; }
[StringLength(255)]
[DataType(DataType.PhoneNumber)]
public string ContactMobile { get; set; }
[StringLength(255)]
public string CompanyType { get; set; }
[StringLength(255)]
[Required]
public string Region { get; set; }
[StringLength(255)]
[Required]
public string District { get; set; }
public string AddedBy { get; set; }
public string TICCertificateNo { get; set; }
public string OriginalCOI { get; set; }
public string IssuedDate { get; set; }
[RegularExpression(@"^[a-zA-Z-' ]+$", ErrorMessage = "Please enter person name")]
public string ContactPerson { get; set; }
public string Title { get; set; }
public string Mobile { get; set; }
public string Email { get; set; }
public string AreaType { get; set; }
public string ApprovalStatus { get; set; }
[Column(TypeName = "datetime2")]
public DateTime PaymentDate { get; set; }
public string EvaluationStatus { get; set; }
[Column(TypeName = "datetime2")]
public DateTime LastUpdateDate { get; set; }
[Column(TypeName = "datetime2")]
public DateTime CreatedDate { get; set; }
public string UpdatedBy { get; set; }
public IEnumerable<SelectListItem> ListofDistricts { get; set; }
public IEnumerable<SelectListItem> ListofRegions { get; set; }
public IEnumerable<SelectListItem> ListofWards { get; set; }
public IEnumerable<SelectListItem> ListofSectors { get; set; }
public IEnumerable<SelectListItem> ListofSubectors { get; set; }
[ForeignKey("CompanyTIN")]
[NotMapped]
public virtual CompanyProfileExternal CompanyProfilesExternal { get; set; }
}
}