protected override SolutionAnalysis ApproveWhenValid(WeighingMachineSolution solution) { if (!solution.TareAdjustmentHasInitializer) { solution.AddComment(SharedComments.PropertyBetterUseInitializer("TareAdjustment")); } return(solution.Approve()); }
protected override SolutionAnalysis DisapproveWhenInvalid(WeighingMachineSolution solution) { if (solution.MissingWeighingMachineClass) { solution.AddComment(MissingClass(WeighingMachineClassName)); return(solution.Disapprove()); } foreach (var missing in solution.MissingRequiredProperties()) { solution.AddComment(MissingProperty(missing)); return(solution.Disapprove()); } if (!solution.PrecisionIsAutoProperty) { solution.AddComment(SharedComments.PropertyIsNotAutoProperty("Precision")); } if (!solution.TareAdjustmentIsAutoProperty) { solution.AddComment(SharedComments.PropertyIsNotAutoProperty("TareAdjustment")); } if (solution.PrecisionPropertyHasNonPrivateSetter()) { solution.AddComment(SharedComments.PrecisionPropertyHasNonPrivateSetter("Precision")); } if (!solution.WeightFieldNameIsPrivate(out var fieldName) && !string.IsNullOrWhiteSpace(fieldName)) { solution.AddComment(UsePrivateVisibility(fieldName)); } if (!solution.IsRoundMethodCalledInDisplayWeightProperty()) { solution.AddComment(WeighingMachineComments.RoundMethodNotCalledInDisplayWeightProperty); } return(solution.HasComments ? solution.Disapprove() : solution.ContinueAnalysis()); }