Skip to content

Instantly share code, notes, and snippets.

@trinvh
Created July 26, 2017 02:22
Show Gist options
  • Save trinvh/0a2777e2ec6c6f15c189d7a3475be553 to your computer and use it in GitHub Desktop.
Save trinvh/0a2777e2ec6c6f15c189d7a3475be553 to your computer and use it in GitHub Desktop.
public class CertificateApiEditModel : IValidatableObject
{
[Required]
public CertificateType? Type { get; set; }
[Required]
public CertificateRegionType? Region { get; set; }
//[MustBeTrue]
public bool SignedOff { get; set; }
#region Customer details
[Required]
public CustomerDetailsWorkType? WorkType { get; set; }
[RequiredIf("WorkType", CustomerDetailsWorkType.Commercial), StringLength(100)]
public string BusinessName { get; set; }
[RequiredIf("WorkType", CustomerDetailsWorkType.Commercial), StringLength(100)]
public string ContactName { get; set; }
[StringLength(20)]
public string JobId { get; set; }
[RequiredIf("WorkType", CustomerDetailsWorkType.Residential), StringLength(50)]
public string FirstName { get; set; }
[RequiredIf("WorkType", CustomerDetailsWorkType.Residential), StringLength(50)]
public string LastName { get; set; }
[Required, StringLength(500)]
public string BillingAddress { get; set; }
[Required, StringLength(500)]
public string SiteAddress { get; set; }
#endregion
[Required]
public WorkerApiEditModel Worker { get; set; }
[Required]
public ContractorApiEditModel Contractor { get; set; }
#region TestResults
[Required]
public DateTime? TestDate { get; set; }
[Required]
public List<CircuitResultApiEditModel> CircuitResults { get; set; }
#endregion
#region added by trinvh
public InstrumentApiEditModel Instrument { get; set; }
[Required]
public CertificateBussinessType BussinessType { get; set; }
[Required]
public List<BoardApiEditModel> Boards { get; set; }
#endregion
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
var result = new List<ValidationResult>();
if (CircuitResults != null && CircuitResults.Count == 0)
{
result.Add(new ValidationResult("At least one circut result must be added."));
}
return result;
}
}
public class BoardApiEditModel
{
public bool IsMainboard { get; set; }
public bool IsNew { get; set; }
public bool IsMen { get; set; }
[StringLength(50)]
public string Location { get; set; }
[StringLength(50)]
public string Designation { get; set; }
[StringLength(50)]
public string SupplyVia { get; set; }
public int NumOfPhases { get; set; }
public float Rating { get; set; }
public float PfcAtBoard { get; set; }
public float NominalVoltage { get; set; }
public float EarthContinuity { get; set; }
public float Bonding { get; set; }
[Required]
public List<CircuitResultApiEditModel> CircuitResults { get; set; }
}
public class TestResultApiEditModel
{
[StringLength(50)]
public string Name { get; set; }
[StringLength(50)]
public string Value { get; set; }
public TestResultType Type { get; set; }
}
public class InstrumentApiEditModel
{
[StringLength(50)]
public string Model { get; set; }
[StringLength(100)]
public string SerialNumber { get; set; }
}
public class CircuitResultApiEditModel : IValidatableObject
{
[Required, StringLength(50)]
public string Name { get; set; }
[StringLength(50)]
public string EarthContinuity { get; set; }
[StringLength(50)]
public string Bonding { get; set; }
[StringLength(50)]
public string Polarity { get; set; }
[StringLength(50)]
public string InsulationResistance { get; set; }
[StringLength(50)]
public string FaultLoopImpedance { get; set; }
[StringLength(4000)]
public string Notes { get; set; }
#region Added by trinvh
public CircuitPhaseType Phase { get; set; }
public string WiringType { get; set; }
public float NumOfPoints { get; set; }
public float CableActiveSize { get; set; }
public float CableEarthSize { get; set; }
public float Rating { get; set; }
[StringLength(50)]
public string Type { get; set; }
public float ShortCapacity { get; set; }
public float RCDOperationCurrent { get; set; }
public List<TestResultApiEditModel> TestResults { get; set; }
#endregion
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
var result = new List<ValidationResult>();
if (String.IsNullOrEmpty(EarthContinuity) && String.IsNullOrEmpty(Bonding) && String.IsNullOrEmpty(Polarity) && String.IsNullOrEmpty(InsulationResistance) && String.IsNullOrEmpty(FaultLoopImpedance))
{
result.Add(new ValidationResult("At least one test must be included in a circuit test result."));
}
return result;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment