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); }
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); }
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; }