Ejemplo n.º 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 void ApplyEvent([AggregateId(nameof(FixedPriceJobOrderRegisteredEvent.JobOrderId))] FixedPriceJobOrderRegisteredEvent evt)
 {
     Id                  = evt.JobOrderId;
     CustomerId          = evt.CustomerId;
     ManagerId           = evt.ManagerId;
     Price               = new PositiveMoney(evt.Price, evt.Currency);
     DateOfStart         = evt.DateOfStart;
     DueDate             = evt.DueDate;
     Name                = evt.JobOrderName;
     Number              = evt.JobOrderNumber;
     IsCompleted         = false;
     PurchaseOrderNumber = evt.PurchaseOrderNumber;
     Description         = evt.Description;
 }
            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);
            }
Ejemplo n.º 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);
            }