public string Validate(DateTime firstRun, DateTime?lastRun) { var rb = new ReasonBuilder(); rb.AppendOnCondition(firstRun < Clock.Today() || lastRun < Clock.Today(), "Dates cannot be before today"); rb.AppendOnCondition(lastRun != null && lastRun.Value < firstRun, "Last Run cannot be before First Run"); return(rb.Reason); }
public string ValidateClosePeriod(Period periodToClose, bool confirmThatYouWishToCloseThisPeriod) { var rb = new ReasonBuilder(); rb.AppendOnCondition(!confirmThatYouWishToCloseThisPeriod, "Check Confirm too proceed"); rb.AppendOnCondition(periodToClose != ListOpenPeriods().First(), "Must Close Periods in calendar order"); rb.AppendOnCondition(Clock.Today() < periodToClose.FromDate, "Cannot close a Period not yet started"); return(rb.Reason); }
public void AppendOnCondition() { builder.AppendOnCondition(false, "Reason 1"); Assert.IsNull(builder.Reason); builder.AppendOnCondition(true, "Reason 2"); AssertMessageIs("Reason 2"); builder.AppendOnCondition(false, "Reason 3"); AssertMessageIs("Reason 2"); builder.AppendOnCondition(true, "Reason 4"); AssertMessageIs("Reason 2; Reason 4"); }
public string ValidateSuspend(int?days, DateTime?until, string comment) { var rb = new ReasonBuilder(); rb.AppendOnCondition((days == null && until == null) || (days != null && until != null), "Specify EITHER 'days' OR 'until'"); if (until != null) { var tomorrow = Clock.Today().AddDays(1); var plus30 = Clock.Today().AddDays(30); var untilDate = until.Value; rb.AppendOnCondition(untilDate <tomorrow || untilDate> plus30, "Can only suspend for 1-30 days"); } return(rb.Reason); }
private string DisableIfPeriodClosed() { var rb = new ReasonBuilder(); rb.AppendOnCondition(Period.Closed, "Cannot edit a transaction for a closed Period "); return(rb.Reason); }
public string ValidateAmount(decimal amount) { var rb = new ReasonBuilder(); rb.AppendOnCondition(amount <= 0, "Amount must be > 0"); return(rb.Reason); }
public string ValidateAddOrChangeForm(FileAttachment form) { var rb = new ReasonBuilder(); rb.AppendOnCondition(form.MimeType != pdfMimeType, "File is not a PDF"); return(rb.Reason); }
public string DisableCancel() { var rb = new ReasonBuilder(); rb.AppendOnCondition(Status == TaskStatusValues.Started && !IsAssignedToCurrentUser(), "Can't cancel a Started task unless it is assigned to you"); return(rb.Reason); }
protected string DisableIfFinished() { var rb = new ReasonBuilder(); rb.AppendOnCondition(IsFinished(), "No longer editable"); return(rb.Reason); }
public string ValidateAssignTo(IUser user) { var rb = new ReasonBuilder(); rb.AppendOnCondition(user == AssignedTo, "Task is already assigned to this User"); return(rb.Reason); }
public string DisableIfNoCustomerForUser() { var rb = new ReasonBuilder(); rb.AppendOnCondition(GetCustomerForUser() == null, "User is not a recognised Customer"); return(rb.Reason); }
public string ValidateAddNewDetails(short quantity) { var rb = new ReasonBuilder(); rb.AppendOnCondition(quantity <= 0, "Must be > 0"); return(rb.Reason); }
public string Validate5CreateMultipleSpecialOffers(DateTime startDate) { var rb = new ReasonBuilder(); rb.AppendOnCondition(startDate > new DateTime(2003, 12, 1), "Start Date must be before 1/12/2003"); return(rb.Reason); }
public string Validate(Customer customer, Film film) { var rb = new ReasonBuilder(); rb.AppendOnCondition(film.AgeRating > customer.Age, "Not old enough"); return(rb.Reason); }
public string Validate0ListProductsBySubCategories(IEnumerable <ProductSubcategory> subCategories) { var rb = new ReasonBuilder(); rb.AppendOnCondition(subCategories.Count() > 5, "Max 5 SubCategories may be selected"); return(rb.Reason); }
public string DisableAddToNote() { var rb = new ReasonBuilder(); rb.AppendOnCondition(Status == NoteStatus.Finished, "Cannot add to a Finished note. Start a new one instead"); return(rb.Reason); }
public string ValidateFindCustomerByAccountNumber(string accountNumber) { var rb = new ReasonBuilder(); rb.AppendOnCondition(!accountNumber.StartsWith("AW"), "Account number must start with AW"); return(rb.Reason); }
public string Validate(Film film, Customer customer) { var rb = new ReasonBuilder(); rb.AppendOnCondition(film.Rating >= customer.Age, "Not Old Enough"); return(rb.Reason); }
public string DisableCheckCredit() { var rb = new ReasonBuilder(); rb.AppendOnCondition(true, "Not yet implemented"); return(rb.Reason); }
public string DisablePropertyDefault() { var rb = new ReasonBuilder(); rb.AppendOnCondition(Status == Status.Archived, "Archived Processes may not be edited"); return(rb.Reason); }
public string ValidateAddUser(string userName) { var rb = new ReasonBuilder(); string message = null; rb.AppendOnCondition(!UserService.CanAddUser(userName, this, out message), message); return(rb.Reason); }
public string ValidateCreateNewFormDefinition(string formCode) { var rb = new ReasonBuilder(); var count = Container.Instances <FormDefinition>().Count(x => x.FormCode.ToUpper() == formCode.ToUpper().Trim()); rb.AppendOnCondition(count > 0, "A Form Definition for this code already exists"); return(rb.Reason); }
public string Validate5CreateNewAccount(DateTime asOf) { bool beforeToday = asOf.Date < Clock.Today(); var rb = new ReasonBuilder(); rb.AppendOnCondition(!beforeToday, "As Of date must be before today"); return(rb.Reason); }
public string ValidateAdjustQuantities(IEnumerable <SalesOrderDetail> details, short newQuantity) { var rb = new ReasonBuilder(); rb.AppendOnCondition(details.Count(d => d.OrderQty == newQuantity) == details.Count(), "All selected details already have specified quantity"); return(rb.Reason); }
public string Validate1CreateNewAccount(string name) { var rb = new ReasonBuilder(); int matches = Container.Instances <Account>().Where(x => x.Name.ToUpper() == name.ToUpper()).Count(); rb.AppendOnCondition(matches > 0, "Account name already exists"); return(rb.Reason); }
public string Validate0CreateNewAccount(string code) { var rb = new ReasonBuilder(); int matches = Container.Instances <Account>().Where(x => x.Code == code).Count(); rb.AppendOnCondition(matches > 0, "Account code already exists"); return(rb.Reason); }
public string DisableComplete() { var rb = new ReasonBuilder(); DisableIfNotAssignedToCurrentUser(rb); rb.AppendOnCondition(Status != TaskStatusValues.Started, "Task must be Started before it can be Completed"); return(rb.Reason); }
public string ValidatePostTransaction( DateTime date, string description, string currency, decimal amount, Account debitAccount, Account creditAccount) { var rb = new ReasonBuilder(); rb.AppendOnCondition(debitAccount == creditAccount, "Accounts must be different"); DateMustBeInOpenPeriod(rb, date); rb.AppendOnCondition(amount <= 0, "Amount must be > 0"); rb.AppendOnCondition(debitAccount.Currency != currency || creditAccount.Currency != currency, "Currency must be the same as for both accounts"); return(rb.Reason); }
public string ValidateCreateNewAccount( ICustomerAccountHolder forHolder, string currencyCode, decimal openingBalance, DateTime asOf, string newAccountName) { var rb = new ReasonBuilder(); rb.AppendOnCondition(FindAccounts(forHolder, newAccountName).Count() > 0, "Holder already has Account matching this name"); return(rb.Reason); }
public void DateMustBeInOpenPeriod(ReasonBuilder rb, DateTime d) { Period p = GetPeriodForDate(d); rb.AppendOnCondition(p == null || p.Closed, "Date must be within an open Period"); }