private ValidationResult CheckForPotentiallyMisconfiguredComponents(IWindsorContainer container) { var host = (IDiagnosticsHost)container.Kernel.GetSubSystem(SubSystemConstants.DiagnosticsKey); var diagnostics = host.GetDiagnostic<IPotentiallyMisconfiguredComponentsDiagnostic>(); var handlers = diagnostics.Inspect(); ValidationResult result = new ValidationResult(); if (handlers.Any()) { var message = new StringBuilder(); var inspector = new DependencyInspector(message); foreach (IExposeDependencyInfo handler in handlers) { handler.ObtainDependencyDetails(inspector); } result.AddMessage(Severity.Error, message.ToString()); Console.Write(message.ToString()); } return result; }
public ValidationResult CanPayFines(int number) { var canPayFines = new ValidationResult(); if (!this.Fines.Any(x => x.Outstanding)) { canPayFines.AddMessage(Severity.Error, "This user doesn't have any fines to pay!"); return canPayFines; } if(this.Fines.Count(x => x.Outstanding) < number) { canPayFines.AddMessage(Severity.Warning, "This user doesn't have that many fines!"); } return canPayFines; }
public ValidationResult Second(Guid seconderId) { ValidationResult result = new ValidationResult(); if(seconderId == IssuerId) { result.AddMessage(Severity.Error, "You may not second a fine you awarded!"); } if(result.HasErrors) return result; this.SeconderId = seconderId; return result; }
private ValidationResult ValidateFine(Fine fine) { ValidationResult validationResult = new ValidationResult(); if (fine.Reason.IsNullOrEmpty()) { validationResult.AddMessage(Severity.Error, "A fine requires a reason"); } if (!this.userApi.IsValidFineIssuer(fine.IssuerId)) { validationResult.AddMessage(Severity.Error, string.Format("Only {0} fines per user per day can be awarded", int.Parse(ConfigurationManager.AppSettings["MaxFinesPerUserPerDay"]))); } return validationResult; }
public ValidationResult PayFines(Payment payment, int number) { var validationResult = new ValidationResult(); validationResult.Append(this.CanPayFines(number)); if(payment.PayerId == this.Id) { validationResult.AddMessage(Severity.Error, "You cannot pay a fine for yourself!"); } if(validationResult.HasErrors) return validationResult; var orderedFines = this.Fines.Where(x => x.Outstanding).OrderBy(x => x.AwardedDate).ToList(); bool hasPending = orderedFines.All(x => x.Pending); if (hasPending) { return validationResult.AddMessage(Severity.Error, "Payable fines need to be seconded first"); } int limit = number; if(orderedFines.Count < number) { limit = orderedFines.Count; } for(int i = 0; i < limit; i++) { orderedFines[i].Pay(payment.Id); } return validationResult; }