예제 #1
0
        private void ImportOrderItemCollection(TenantInfoValueObject tenant, SystemUser executionSystemUser, ICollection <OrderItem> orderItemCollection)
        {
            if (orderItemCollection != null)
            {
                if (OrderItemCollection == null)
                {
                    OrderItemCollection = new List <OrderItem>();
                }

                foreach (var orderItem in orderItemCollection)
                {
                    orderItem.ImportOrderItem(
                        tenant,
                        executionSystemUser,
                        this,
                        orderItem.Product,
                        orderItem.Sequence,
                        orderItem.Description,
                        orderItem.Quantity,
                        orderItem.UnitPrice
                        );

                    OrderItemCollection.Add(orderItem);
                }
            }
        }
예제 #2
0
        // Public Methods
        public void ImportProduct(
            TenantInfoValueObject tenant,
            SystemUser executionSystemUser,
            string code,
            string name,
            string description,
            bool isActive)
        {
            SetNewId();
            SetCode(code);
            SetName(name);
            SetDescription(description);

            SetTenant(tenant);
            SetCreationInfo(executionSystemUser.Username);

            if (isActive)
            {
                Activate(executionSystemUser.Username);
            }
            else
            {
                Inactivate(executionSystemUser.Username);
            }
        }
예제 #3
0
        protected OrderDemoTestBase(ITestOutputHelper testOutputHelper)
            : base(testOutputHelper, TENANT_CODE, USERNAME, CULTURE_NAME)
        {
            var cultureInfo = new CultureInfo(CULTURE_NAME);

            UserSessionInfo = new UserSessionInfo
            {
                TenantInfo = new TenantInfo
                {
                    TenantCode = TENANT_CODE
                },
                Username = USERNAME
            };
            GlobalizationInfo = new GlobalizationInfo(
                LOCALIZATION,
                UILANGUAGE,
                cultureInfo,
                cultureInfo
                );

            DefaultSystemUser = ServiceProvider.GetService <ISystemUserFactory>().Create(
                (
                    tenantInfo: UserSessionInfo.TenantInfo.TenantCode,
                    creationUser: UserSessionInfo.Username
                )
                );

            DefaultTestTenant = new TenantInfoValueObject(TENANT_CODE);
        }
예제 #4
0
        public async Task TenantInfoValueObject_Creation_Fail()
        {
            await RunWithTelemetryAsync(
                totalOfExecutions : 1,
                runInParallel : false,
                handler : async execution =>
            {
                #region Arrange
                var tenantInfo_1 = new TenantInfoValueObject("a");
                var tenantInfo_2 = (TenantInfoValueObject)"b";
                TenantInfoValueObject tenantInfo_3 = "c";
                #endregion

                #region Act
                var resultCollection = new List <bool>
                {
                    tenantInfo_1.ToString() != tenantInfo_2.ToString(),
                    tenantInfo_2.ToString() != tenantInfo_3.ToString(),
                    tenantInfo_1.TenantCode != tenantInfo_2.TenantCode,
                    tenantInfo_2.TenantCode != tenantInfo_3.TenantCode
                };
                #endregion

                #region Assert
                return(await Task.FromResult(resultCollection.All(q => q)).ConfigureAwait(false));

                #endregion
            }
                );
        }
예제 #5
0
 // Constructors
 protected AppServiceBase(
     IBus bus,
     IGlobalizationConfig globalizationConfig,
     ITenantInfoValueObjectFactory tenantInfoValueObjectFactory
     )
 {
     Bus = bus;
     GlobalizationConfig   = globalizationConfig;
     TenantInfoValueObject = tenantInfoValueObjectFactory.CreateAsync().GetAwaiter().GetResult();
 }
예제 #6
0
        public void ImportOrderShipping(
            TenantInfoValueObject tenant,
            SystemUser executionSystemUser,
            Order order,
            AddressValueObject address,
            string observation)
        {
            SetNewId();
            SetAddress(address);
            SetObservation(observation);
            SetOrder(order);

            SetTenant(tenant);
            SetCreationInfo(executionSystemUser.Username);
        }
예제 #7
0
        public void ImportCustomer(
            TenantInfoValueObject tenant,
            SystemUser executionSystemUser,
            string code,
            string name,
            DateTime?birthDate)
        {
            SetNewId();
            SetCode(code);
            SetName(name);
            SetBirthDate(birthDate);

            SetTenant(tenant);
            SetCreationInfo(executionSystemUser?.Username);

            Activate(executionSystemUser?.Username);
        }
예제 #8
0
        // Public Methods
        public void ImportOrderItem(
            TenantInfoValueObject tenant,
            SystemUser executionSystemUser,
            Order order,
            Product product,
            int number,
            string description,
            decimal quantity,
            decimal unitPrice)
        {
            SetNewId();
            SetOrder(order);
            SetProduct(product);
            SetSequence(number);
            SetDescription(description);
            SetQuantity(quantity);
            SetUnitPrice(unitPrice);

            SetTenant(tenant);
            SetCreationInfo(executionSystemUser.Username);
        }
예제 #9
0
        public async Task DomainModelBase_SetTenantInfo_Success()
        {
            await RunWithTelemetryAsync(
                totalOfExecutions : 1,
                runInParallel : false,
                handler : async execution =>
            {
                #region Arrange
                var tenantInfo            = new TenantInfoValueObject(TENANT_CODE);
                var domainModelWithGuidId = new DomainModelWithGuidId(Guid.NewGuid());
                #endregion

                #region Act
                domainModelWithGuidId.ChangeTenant(tenantInfo);
                #endregion

                #region Assert
                return(await Task.FromResult(domainModelWithGuidId.TenantInfo.TenantCode == TENANT_CODE).ConfigureAwait(false));

                #endregion
            });
        }
예제 #10
0
        // Public Methods
        public void ImportOrder(
            TenantInfoValueObject tenant,
            SystemUser executionSystemUser,
            DateTime orderDate,
            string code,
            Customer customer,
            OrderShipping orderShipping,
            ICollection <OrderItem> orderItemCollection)
        {
            SetNewId();
            SetOrderDate(orderDate);
            SetCode(code);
            SetCustomer(customer);
            SetOrderShipping(orderShipping);

            SetOrderStatus(OrderStatusEnum.Open);
            OrderStatus.SetTenantInfo(tenant);
            OrderStatus.SetCreationInfo(executionSystemUser.Username);

            ImportOrderItemCollection(tenant, executionSystemUser, orderItemCollection);

            SetTenant(tenant);
            SetCreationInfo(executionSystemUser.Username);
        }
예제 #11
0
 protected void SetTenant(TenantInfoValueObject tenantInfo)
 {
     TenantInfo = tenantInfo;
 }
예제 #12
0
 // Constructors
 public ImportInvoiceCommandAdapter(ITenantInfoValueObjectFactory tenantInfoValueObjectFactory)
 {
     _tenantInfoValueObject = tenantInfoValueObjectFactory.CreateAsync().Result;
 }
예제 #13
0
 public static bool IsValid(TenantInfoValueObject tenant)
 {
     return(tenant.TenantCode == TENANT_CODE);
 }
예제 #14
0
 public void SetTenantInfo(TenantInfoValueObject tenantInfo)
 {
     SetTenant(tenantInfo);
 }
예제 #15
0
 public void ChangeTenant(TenantInfoValueObject tenantInfo)
 {
     SetTenant(tenantInfo);
 }
예제 #16
0
 public void SetTenantInfo(string tenantCode)
 {
     TenantInfo = new TenantInfoValueObject(tenantCode);
 }