예제 #1
0
        public string Validate(Customer customer, Film film)
        {
            var rb = new ReasonBuilder();

            rb.AppendOnCondition(film.AgeRating > customer.Age, "Not old enough");
            return(rb.Reason);
        }
예제 #2
0
        public string ValidateAddOrChangeForm(FileAttachment form)
        {
            var rb = new ReasonBuilder();

            rb.AppendOnCondition(form.MimeType != pdfMimeType, "File is not a PDF");
            return(rb.Reason);
        }
예제 #3
0
        public string ValidateAmount(decimal amount)
        {
            var rb = new ReasonBuilder();

            rb.AppendOnCondition(amount <= 0, "Amount must be > 0");
            return(rb.Reason);
        }
예제 #4
0
        public string ValidateAddNewDetails(short quantity)
        {
            var rb = new ReasonBuilder();

            rb.AppendOnCondition(quantity <= 0, "Must be > 0");
            return(rb.Reason);
        }
예제 #5
0
        public string Validate(Film film, Customer customer)
        {
            var rb = new ReasonBuilder();

            rb.AppendOnCondition(film.Rating >= customer.Age, "Not Old Enough");
            return(rb.Reason);
        }
예제 #6
0
        public string ValidateDate(DateTime date)
        {
            var rb = new ReasonBuilder();

            AccountsService.DateMustBeInOpenPeriod(rb, date);
            return(rb.Reason);
        }
예제 #7
0
        public string ValidateAssignTo(IUser user)
        {
            var rb = new ReasonBuilder();

            rb.AppendOnCondition(user == AssignedTo, "Task is already assigned to this User");
            return(rb.Reason);
        }
예제 #8
0
        public string DisableStart()
        {
            var rb = new ReasonBuilder();

            DisableIfNotAssignedToCurrentUser(rb);
            return(rb.Reason);
        }
예제 #9
0
        public string DisableIfNoCustomerForUser()
        {
            var rb = new ReasonBuilder();

            rb.AppendOnCondition(GetCustomerForUser() == null, "User is not a recognised Customer");
            return(rb.Reason);
        }
예제 #10
0
        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);
        }
예제 #11
0
        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);
        }
예제 #12
0
        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 ValidateFindCustomerByAccountNumber(string accountNumber)
        {
            var rb = new ReasonBuilder();

            rb.AppendOnCondition(!accountNumber.StartsWith("AW"), "Account number must start with AW");
            return(rb.Reason);
        }
예제 #14
0
        public void UpdateReasonAfterAddingIt()
        {
            //Arrange
            // add an item
            var repository         = GetRepository();
            var initialDescription = Guid.NewGuid().ToString();
            var item = new ReasonBuilder().Description(initialDescription).Build();

            //Act
            repository.Add(item);

            // detach the item so we get a different instance
            _dbContext.Entry(item).State = EntityState.Detached;

            // fetch the item and update its title
            var newItem = repository.ListAll <Reason>()
                          .FirstOrDefault(i => i.Description == initialDescription);

            Assert.NotNull(newItem);
            Assert.NotSame(item, newItem);
            var newDescription = Guid.NewGuid().ToString();

            newItem.Description = newDescription;

            // Update the item
            repository.Update(newItem);
            var updatedItem = repository.ListAll <Reason>()
                              .FirstOrDefault(i => i.Description == newDescription);

            //Assert
            Assert.NotNull(updatedItem);
            Assert.NotEqual(item.Description, updatedItem.Description);
            Assert.Equal(newItem.Id, updatedItem.Id);
        }
예제 #15
0
        private string DisableIfPeriodClosed()
        {
            var rb = new ReasonBuilder();

            rb.AppendOnCondition(Period.Closed, "Cannot edit a transaction for a closed Period ");
            return(rb.Reason);
        }
        public string DisablePropertyDefault()
        {
            var rb = new ReasonBuilder();

            rb.AppendOnCondition(Status == Status.Archived, "Archived Processes may not be edited");
            return(rb.Reason);
        }
예제 #17
0
        public string DisableCheckCredit()
        {
            var rb = new ReasonBuilder();

            rb.AppendOnCondition(true, "Not yet implemented");
            return(rb.Reason);
        }
예제 #18
0
        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);
        }
예제 #19
0
        protected string DisableIfFinished()
        {
            var rb = new ReasonBuilder();

            rb.AppendOnCondition(IsFinished(), "No longer editable");
            return(rb.Reason);
        }
        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 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 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);
        }
예제 #24
0
        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 ValidateAddUser(string userName)
        {
            var    rb      = new ReasonBuilder();
            string message = null;

            rb.AppendOnCondition(!UserService.CanAddUser(userName, this, out message), message);
            return(rb.Reason);
        }
예제 #26
0
        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);
        }
예제 #27
0
        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 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);
        }
예제 #29
0
        public virtual string ValidatePlannedCost(decimal plannedCost)
        {
            var rb = new ReasonBuilder();

            if (plannedCost <= 0)
            {
                rb.Append("Planned cost must be > 0");
            }
            return(rb.Reason);
        }
예제 #30
0
        public virtual string ValidateOrderQty(int qty)
        {
            var rb = new ReasonBuilder();

            if (qty <= 0)
            {
                rb.Append("Order Quantity must be > 0");
            }
            return(rb.Reason);
        }
 public void SetUp() {
     builder = new ReasonBuilder();
 }