public override List <Error> Validate(List <Error> errors) { RequireString(this, x => x.TaskID, 14, errors, "A"); ValidateString(this, x => x.TaskDesignator, 32, errors, "B"); ValidateString(this, x => x.CustomerIdRef, 14, errors, "C"); ValidateString(this, x => x.FarmIdRef, 14, errors, "D"); ValidateString(this, x => x.PartFieldIdRef, 14, errors, "E"); ValidateString(this, x => x.ResponsibleWorkerIdRef, 14, errors, "F"); ValidateEnumerationValue(typeof(ISOTaskStatus), TaskStatusInt, errors); if (DefaultTreatmentZoneCode.HasValue) { ValidateRange(this, x => x.DefaultTreatmentZoneCode.Value, 0, 254, errors, "H"); } if (PositionLostTreatmentZoneCode.HasValue) { ValidateRange(this, x => x.PositionLostTreatmentZoneCode.Value, 0, 254, errors, "I"); } if (OutOfFieldTreatmentZoneCode.HasValue) { ValidateRange(this, x => x.OutOfFieldTreatmentZoneCode.Value, 0, 254, errors, "J"); } TreatmentZones.ForEach(i => i.Validate(errors)); Times.ForEach(i => i.Validate(errors)); if (OperationTechPractice != null) { OperationTechPractice.Validate(errors); } WorkerAllocations.ForEach(i => i.Validate(errors)); DeviceAllocations.ForEach(i => i.Validate(errors)); Connections.ForEach(i => i.Validate(errors)); ProductAllocations.ForEach(i => i.Validate(errors)); DataLogTriggers.ForEach(i => i.Validate(errors)); CommentAllocations.ForEach(i => i.Validate(errors)); TimeLogs.ForEach(i => i.Validate(errors)); if (Grid != null) { Grid.Validate(errors); } GuidanceAllocations.ForEach(i => i.Validate(errors)); return(errors); }