コード例 #1
0
ファイル: CompanySaga.cs プロジェクト: zszqwe/Merp
        public async Task Handle(ImportCompanyCommand message)
        {
            var legalAddressIsDefined  = !string.IsNullOrWhiteSpace(message.LegalAddressAddress);
            var legalAddressAddress    = legalAddressIsDefined ? message.LegalAddressAddress : null;
            var legalAddressCity       = legalAddressIsDefined ? message.LegalAddressCity : null;
            var legalAddressPostalCode = legalAddressIsDefined ? message.LegalAddressPostalCode : null;
            var legalAddressProvince   = legalAddressIsDefined ? message.LegalAddressProvince : null;
            var legalAddressCountry    = legalAddressIsDefined ? !string.IsNullOrWhiteSpace(message.LegalAddressCountry) ? message.LegalAddressCountry : _defaultCountryResolver.GetDefaultCountry() : null;

            var company = Company.Factory.CreateNewEntryByImport(message.CompanyId, message.RegistrationDate, message.CompanyName, message.VatNumber, message.NationalIdentificationNumber,
                                                                 legalAddressAddress, legalAddressCity, legalAddressPostalCode, legalAddressProvince, legalAddressCountry,
                                                                 message.BillingAddressAddress, message.BillingAddressCity, message.BillingAddressPostalCode, message.BillingAddressProvince, message.BillingAddressCountry,
                                                                 message.ShippingAddressAddress, message.ShippingAddressCity, message.ShippingAddressPostalCode, message.ShippingAddressProvince, message.ShippingAddressCountry);

            if (message.MainContactId.HasValue)
            {
                Thread.Sleep(10);
                company.AssociateMainContact(message.MainContactId.Value, Guid.Empty);
            }
            if (message.AdministrativeContactId.HasValue)
            {
                Thread.Sleep(10);
                company.AssociateAdministrativeContact(message.AdministrativeContactId.Value, Guid.Empty);
            }
            if (!string.IsNullOrWhiteSpace(message.PhoneNumber) || !string.IsNullOrWhiteSpace(message.FaxNumber) || !string.IsNullOrWhiteSpace(message.WebsiteAddress) || !string.IsNullOrWhiteSpace(message.EmailAddress))
            {
                Thread.Sleep(10);
                company.SetContactInfo(message.PhoneNumber, null, message.FaxNumber, message.WebsiteAddress, message.EmailAddress, null, Guid.Empty);
            }
            await _repository.SaveAsync(company);

            this.Data.CompanyId = company.Id;
        }
コード例 #2
0
 public Task Handle(ImportCompanyCommand message)
 {
     return(Task.Factory.StartNew(() =>
     {
         var company = Company.Factory.CreateNewEntryByImport(message.CompanyId, message.CompanyName, message.VatNumber, message.NationalIdentificationNumber);
         _repository.Save(company);
         this.Data.CompanyId = company.Id;
     }));
 }
コード例 #3
0
ファイル: CompanySaga.cs プロジェクト: yersans/Merp
 public Task Handle(ImportCompanyCommand message)
 {
     return(Task.Factory.StartNew(() =>
     {
         var country = string.IsNullOrWhiteSpace(message.Address) || !string.IsNullOrWhiteSpace(message.Country) ? message.Country : _defaultCountryResolver.GetDefaultCountry();
         var company = Company.Factory.CreateNewEntryByImport(message.CompanyId, message.CompanyName, message.VatNumber, message.NationalIdentificationNumber, message.Address, message.City, message.PostalCode, message.Province, country);
         _repository.Save(company);
         this.Data.CompanyId = company.Id;
     }));
 }
コード例 #4
0
        public void Ctor_should_properly_initialise_instance()
        {
            var companyId   = Guid.NewGuid();
            var companyName = "Mastreeno ltd";
            var nationalIdentificationNumber = "FAKE";
            var vatNumber               = "123";
            var address                 = "Via Torino 51";
            var city                    = "Milan";
            var postalCode              = "20123";
            var province                = "MI";
            var country                 = "Italy";
            var mainContactId           = Guid.NewGuid();
            var administrativeContactId = Guid.NewGuid();
            var phoneNumber             = "0123456789";
            var faxNumber               = "012345679";
            var websiteAddress          = "www.info.com";
            var emailAddress            = "*****@*****.**";

            var command = new ImportCompanyCommand(companyId, DateTime.Now, companyName, nationalIdentificationNumber, vatNumber, address, postalCode, city, province, country, address, postalCode, city, province, country, address, postalCode, city, province, country, mainContactId, administrativeContactId, phoneNumber, faxNumber, websiteAddress, emailAddress);

            Assert.Equal(companyId, command.CompanyId);
            Assert.Equal(companyName, command.CompanyName);
            Assert.Equal(nationalIdentificationNumber, command.NationalIdentificationNumber);
            Assert.Equal(vatNumber, command.VatNumber);
            Assert.Equal(address, command.LegalAddressAddress);
            Assert.Equal(city, command.LegalAddressCity);
            Assert.Equal(postalCode, command.LegalAddressPostalCode);
            Assert.Equal(province, command.LegalAddressProvince);
            Assert.Equal(country, command.LegalAddressCountry);
            Assert.Equal(mainContactId, command.MainContactId);
            Assert.Equal(administrativeContactId, command.AdministrativeContactId);
            Assert.Equal(phoneNumber, command.PhoneNumber);
            Assert.Equal(faxNumber, command.FaxNumber);
            Assert.Equal(websiteAddress, command.WebsiteAddress);
            Assert.Equal(emailAddress, command.EmailAddress);
        }
コード例 #5
0
        public async Task ImportCompanyAsync(ImportCompanyModel model)
        {
            var nationalIdentificationNumber = string.IsNullOrWhiteSpace(model.NationalIdentificationNumber) ? default(string) : model.NationalIdentificationNumber.Trim().ToUpper();

            var legalAddressAddress    = model.LegalAddressAddress;
            var legalAddressPostalCode = model.LegalAddressPostalCode;
            var legalAddressCity       = model.LegalAddressCity;
            var legalAddressProvince   = model.LegalAddressProvince;
            var legalAddressCountry    = model.LegalAddressCountry;

            var shippingAddressAddress    = model.ShippingAddressAddress;
            var shippingAddressPostalCode = model.ShippingAddressPostalCode;
            var shippingAddressCity       = model.ShippingAddressCity;
            var shippingAddressProvince   = model.ShippingAddressProvince;
            var shippingAddressCountry    = model.ShippingAddressCountry;

            var billingAddressAddress    = model.BillingAddressAddress;
            var billingAddressPostalCode = model.BillingAddressPostalCode;
            var billingAddressCity       = model.BillingAddressCity;
            var billingAddressProvince   = model.BillingAddressProvince;
            var billingAddressCountry    = model.BillingAddressCountry;

            var phoneNumber    = model.PhoneNumber;
            var faxNumber      = model.FaxNumber;
            var websiteAddress = model.WebsiteAddress;
            var emailAddress   = model.EmailAddress;

            Guid?mainContactId           = default(Guid?);
            Guid?administrativeContactId = default(Guid?);

            var command = new ImportCompanyCommand(
                model.UserId,
                model.CompanyId,
                model.RegistrationDate,
                model.CompanyName,
                nationalIdentificationNumber,
                model.VatNumber,
                model.LegalAddressAddress,
                model.LegalAddressPostalCode,
                model.LegalAddressCity,
                model.LegalAddressProvince,
                model.LegalAddressCountry,
                model.ShippingAddressAddress,
                model.ShippingAddressPostalCode,
                model.ShippingAddressCity,
                model.ShippingAddressProvince,
                model.ShippingAddressCountry,
                model.BillingAddressAddress,
                model.BillingAddressPostalCode,
                model.BillingAddressCity,
                model.BillingAddressProvince,
                model.BillingAddressCountry,
                mainContactId,
                administrativeContactId,
                model.PhoneNumber,
                model.FaxNumber,
                model.WebsiteAddress,
                model.EmailAddress
                );

            await Bus.Send(command);
        }