예제 #1
0
            public static TimeAndMaterialJobOrder CreateNewInstance(IJobOrderNumberGenerator jobOrderNumberGenerator, Guid customerId, string customerName, Guid managerId, string managerName, decimal?value, DateTime dateOfStart, DateTime?dateOfExpiration, string name, string purchaseOrderNumber, string description)
            {
                var id       = Guid.NewGuid();
                var jobOrder = new TimeAndMaterialJobOrder()
                {
                    Id                  = id,
                    Customer            = new CustomerInfo(customerId, customerName),
                    Manager             = new ManagerInfo(managerId, managerName),
                    Value               = value,
                    DateOfStart         = dateOfStart,
                    DateOfExpiration    = dateOfExpiration,
                    Name                = name,
                    Number              = jobOrderNumberGenerator.Generate(),
                    IsCompleted         = false,
                    PurchaseOrderNumber = purchaseOrderNumber,
                    Description         = description
                };
                var @event = new TimeAndMaterialJobOrderRegisteredEvent(
                    jobOrder.Id,
                    jobOrder.Customer.Id,
                    jobOrder.Customer.Name,
                    jobOrder.Manager.Id,
                    jobOrder.Manager.Name,
                    jobOrder.Value,
                    jobOrder.DateOfStart,
                    jobOrder.DateOfExpiration,
                    jobOrder.Name,
                    jobOrder.Number,
                    jobOrder.PurchaseOrderNumber,
                    jobOrder.Description
                    );

                jobOrder.RaiseEvent(@event);
                return(jobOrder);
            }
예제 #2
0
파일: JobOrderSaga.cs 프로젝트: rioka/Merp
 public JobOrderSaga(IBus bus, IEventStore eventStore, IRepository repository, IJobOrderNumberGenerator jobOrderNumberGenerator)
 {
     _repository             = repository ?? throw new ArgumentNullException(nameof(repository));
     _bus                    = bus ?? throw new ArgumentNullException(nameof(bus));
     _eventStore             = eventStore ?? throw new ArgumentNullException(nameof(eventStore));
     JobOrderNumberGenerator = jobOrderNumberGenerator ?? throw new ArgumentNullException(nameof(jobOrderNumberGenerator));
 }
예제 #3
0
 public TimeAndMaterialJobOrderSaga(IBus bus, IEventStore eventStore, IRepository repository, IJobOrderNumberGenerator jobOrderNumberGenerator)
     : base(bus, eventStore, repository)
 {
     if (jobOrderNumberGenerator == null)
     {
         throw new ArgumentNullException("jobOrderNumberGenerator");
     }
     JobOrderNumberGenerator = jobOrderNumberGenerator;
 }
        public FixedPriceJobOrderSaga(IBus bus, IEventStore eventStore, IRepository repository, IJobOrderNumberGenerator jobOrderNumberGenerator)
            : base(bus, eventStore, repository)
        {
            if (jobOrderNumberGenerator == null)
            {
                throw new ArgumentNullException(nameof(jobOrderNumberGenerator));
            }

            JobOrderNumberGenerator = jobOrderNumberGenerator;
        }
예제 #5
0
파일: JobOrder.cs 프로젝트: zszqwe/Merp
            public static JobOrder RegisterNew(IJobOrderNumberGenerator jobOrderNumberGenerator, Guid customerId, string customerName, Guid?contactPersonId, Guid managerId, decimal?price, string currency, DateTime dateOfStart, DateTime dueDate, bool isTimeAndMaterial, string name, string purchaseOrderNumber, string description, Guid userId)
            {
                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 JobOrderRegisteredEvent(
                    Guid.NewGuid(),
                    customerId,
                    customerName,
                    contactPersonId,
                    managerId,
                    price,
                    currency,
                    DateTime.Now,
                    dateOfStart,
                    dueDate,
                    isTimeAndMaterial,
                    name,
                    jobOrderNumberGenerator.Generate(),
                    purchaseOrderNumber,
                    description,
                    userId
                    );
                var jobOrder = new JobOrder();

                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);
            }
예제 #7
0
            public static TimeAndMaterialJobOrder CreateNewInstance(IJobOrderNumberGenerator jobOrderNumberGenerator, Guid customerId, Guid managerId, decimal value, string currency, DateTime dateOfStart, DateTime?dateOfExpiration, string name, string purchaseOrderNumber, string description)
            {
                if (jobOrderNumberGenerator == null)
                {
                    throw new ArgumentNullException(nameof(jobOrderNumberGenerator));
                }
                if (value < 0)
                {
                    throw new ArgumentException("The value must be zero or higher", nameof(value));
                }
                if (string.IsNullOrWhiteSpace(currency))
                {
                    throw new ArgumentException("The currency must me specified", nameof(currency));
                }
                if (dateOfExpiration.HasValue && dateOfExpiration.Value < dateOfStart)
                {
                    throw new ArgumentException("The date of expiration cannot precede the starting date", nameof(dateOfExpiration));
                }
                if (string.IsNullOrWhiteSpace(name))
                {
                    throw new ArgumentException("The job order must have a name", nameof(name));
                }

                var @event = new TimeAndMaterialJobOrderRegisteredEvent(
                    Guid.NewGuid(),
                    customerId,
                    managerId,
                    value,
                    currency,
                    dateOfStart,
                    dateOfExpiration,
                    name,
                    jobOrderNumberGenerator.Generate(),
                    purchaseOrderNumber,
                    description
                    );
                var jobOrder = new TimeAndMaterialJobOrder();

                jobOrder.RaiseEvent(@event);
                return(jobOrder);
            }
예제 #8
0
 public static TimeAndMaterialJobOrder CreateNewInstance(IJobOrderNumberGenerator jobOrderNumberGenerator, Guid customerId, string customerName, Guid managerId, string managerName, decimal value, string currency, DateTime dateOfStart, DateTime? dateOfExpiration, string name, string purchaseOrderNumber, string description)
 {
     var @event = new TimeAndMaterialJobOrderRegisteredEvent(
         Guid.NewGuid(),
         customerId,
         customerName,
         managerId,
         managerName,
         value,
         currency,
         dateOfStart,
         dateOfExpiration,
         name,
         jobOrderNumberGenerator.Generate(),
         purchaseOrderNumber,
         description
         );
     var jobOrder = new TimeAndMaterialJobOrder(); 
     jobOrder.RaiseEvent(@event);
     return jobOrder;
 }
예제 #9
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;
 }
예제 #10
0
            public static TimeAndMaterialJobOrder CreateNewInstance(IJobOrderNumberGenerator jobOrderNumberGenerator, Guid customerId, string customerName, Guid managerId, string managerName, decimal value, string currency, DateTime dateOfStart, DateTime?dateOfExpiration, string name, string purchaseOrderNumber, string description)
            {
                var @event = new TimeAndMaterialJobOrderRegisteredEvent(
                    Guid.NewGuid(),
                    customerId,
                    customerName,
                    managerId,
                    managerName,
                    value,
                    currency,
                    dateOfStart,
                    dateOfExpiration,
                    name,
                    jobOrderNumberGenerator.Generate(),
                    purchaseOrderNumber,
                    description
                    );
                var jobOrder = new TimeAndMaterialJobOrder();

                jobOrder.RaiseEvent(@event);
                return(jobOrder);
            }
예제 #11
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);
            }
예제 #12
0
        public TimeAndMaterialJobOrderSaga(IBus bus, IEventStore eventStore, IRepository repository, IJobOrderNumberGenerator jobOrderNumberGenerator)
        {
            if (bus == null)
            {
                throw new ArgumentNullException(nameof(bus));
            }
            if (eventStore == null)
            {
                throw new ArgumentNullException(nameof(eventStore));
            }
            if (repository == null)
            {
                throw new ArgumentNullException(nameof(repository));
            }
            if (jobOrderNumberGenerator == null)
            {
                throw new ArgumentNullException(nameof(jobOrderNumberGenerator));
            }

            this._repository        = repository;
            this._bus               = bus;
            this._eventStore        = eventStore;
            JobOrderNumberGenerator = jobOrderNumberGenerator;
        }