Пример #1
0
            public static FixedPriceJobOrder CreateNewInstance(IJobOrderNumberGenerator jobOrderNumberGenerator, Guid customerId, string customerName, Guid managerId, string managerName, decimal price, DateTime dateOfStart, DateTime dueDate, string name, string purchaseOrderNumber, string description)
            {
                var id       = Guid.NewGuid();
                var jobOrder = new FixedPriceJobOrder()
                {
                    Id                  = id,
                    Customer            = new CustomerInfo(customerId, customerName),
                    Manager             = new ManagerInfo(managerId, managerName),
                    Price               = price,
                    DateOfStart         = dateOfStart,
                    DueDate             = dueDate,
                    Name                = name,
                    Number              = jobOrderNumberGenerator.Generate(),
                    IsCompleted         = false,
                    PurchaseOrderNumber = purchaseOrderNumber,
                    Description         = description
                };
                var @event = new FixedPriceJobOrderRegisteredEvent(
                    jobOrder.Id,
                    jobOrder.Customer.Id,
                    jobOrder.Customer.Name,
                    jobOrder.Manager.Id,
                    jobOrder.Manager.Name,
                    jobOrder.Price,
                    jobOrder.DateOfStart,
                    jobOrder.DueDate,
                    jobOrder.Name,
                    jobOrder.Number,
                    jobOrder.PurchaseOrderNumber,
                    jobOrder.Description
                    );

                jobOrder.RaiseEvent(@event);
                return(jobOrder);
            }
            public static FixedPriceJobOrder CreateNewInstance(IJobOrderNumberGenerator jobOrderNumberGenerator, Guid customerId, Guid managerId, decimal price, string currency, DateTime dateOfStart, DateTime dueDate, string name, string purchaseOrderNumber, string description)
            {
                if (jobOrderNumberGenerator == null)
                {
                    throw new ArgumentNullException(nameof(jobOrderNumberGenerator));
                }
                if (price < 0)
                {
                    throw new ArgumentException("The price must be zero or higher", nameof(price));
                }
                if (string.IsNullOrWhiteSpace(currency))
                {
                    throw new ArgumentException("The currency must me specified", nameof(currency));
                }
                if (dueDate < dateOfStart)
                {
                    throw new ArgumentException("The due date cannot precede the starting date", nameof(dueDate));
                }
                if (string.IsNullOrWhiteSpace(name))
                {
                    throw new ArgumentException("The job order must have a name", nameof(name));
                }

                var @event = new FixedPriceJobOrderRegisteredEvent(
                    Guid.NewGuid(),
                    customerId,
                    managerId,
                    price,
                    currency,
                    dateOfStart,
                    dueDate,
                    name,
                    jobOrderNumberGenerator.Generate(),
                    purchaseOrderNumber,
                    description
                    );
                var jobOrder = new FixedPriceJobOrder();

                jobOrder.RaiseEvent(@event);
                return(jobOrder);
            }
Пример #3
0
            public static FixedPriceJobOrder CreateNewInstance(IJobOrderNumberGenerator jobOrderNumberGenerator, Guid customerId, string customerName, Guid managerId, string managerName, decimal price, string currency, DateTime dateOfStart, DateTime dueDate, string name, string purchaseOrderNumber, string description)
            {
                var @event = new FixedPriceJobOrderRegisteredEvent(
                    Guid.NewGuid(),
                    customerId,
                    customerName,
                    managerId,
                    managerName,
                    price,
                    currency,
                    dateOfStart,
                    dueDate,
                    name,
                    jobOrderNumberGenerator.Generate(),
                    purchaseOrderNumber,
                    description
                    );
                var jobOrder = new FixedPriceJobOrder();

                jobOrder.RaiseEvent(@event);
                return(jobOrder);
            }
Пример #4
0
 public static FixedPriceJobOrder CreateNewInstance(IJobOrderNumberGenerator jobOrderNumberGenerator, Guid customerId, string customerName, Guid managerId, string managerName, decimal price, string currency, DateTime dateOfStart, DateTime dueDate, string name, string purchaseOrderNumber, string description)
 { 
     var @event = new FixedPriceJobOrderRegisteredEvent(
         Guid.NewGuid(),
         customerId,
         customerName,
         managerId, 
         managerName,
         price,
         currency,
         dateOfStart,
         dueDate,
         name,
         jobOrderNumberGenerator.Generate(),
         purchaseOrderNumber,
         description
         );
     var jobOrder = new FixedPriceJobOrder();
     jobOrder.RaiseEvent(@event);
     return jobOrder;
 }