public async Task <ActionResult <EntryResultAddViewModel> > AddEntry(AddEntryViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var entry = _mapper.Map <Entry>(model);

            var newEntry = await _entryRepository.AddEntry(entry);

            if (newEntry == null)
            {
                return(BadRequest());
            }
            try
            {
                var newEntryResult = _mapper.Map <EntryResultAddViewModel>(newEntry);
                return(CreatedAtAction(nameof(AddEntry), new { id = newEntryResult.IdEntry }, newEntryResult));
            }
            catch (Exception ex)
            {
                return(null);
            }
        }
        public void AddEntry(AddEntryViewModel model)
        {
            var nationalIdentificationNumber = string.IsNullOrWhiteSpace(model.NationalIdentificationNumber) ? default(string) : model.NationalIdentificationNumber.Trim().ToUpper();
            var command = new RegisterPersonCommand(
                model.FirstName,
                model.LastName,
                nationalIdentificationNumber,
                model.VatNumber,

                model.Address.Address,
                model.Address.City,
                model.Address.PostalCode,
                model.Address.Province,
                model.Address.Country,

                model.PhoneNumber,
                model.MobileNumber,
                model.FaxNumber,
                model.WebsiteAddress,
                model.EmailAddress,
                model.InstantMessaging
                );

            Bus.Send(command);
        }
        public async Task <IActionResult> Post([FromBody] AddEntryViewModel entry)
        {
            //Normally would use automapper for mapping but since its such a small use case decided to map manually
            await phoneBookService.AddEntry(new PhoneBookEntry(entry.Name, entry.PhoneNumber));

            return(CreatedAtAction("Search", entry.Name));
        }
 public AddBookingCommand(AddEntryViewModel addBookingViewModel, OverviewViewModel overviewViewModel, IBookingService bookingService, IDialogService dialogService)
 {
     _addEntryViewModel = addBookingViewModel;
     _overviewViewModel = overviewViewModel;
     _bookingService    = bookingService;
     _dialogService     = dialogService;
 }
Exemple #5
0
 public ActionResult AddEntry(AddEntryViewModel model)
 {
     if (!this.ModelState.IsValid)
     {
         return(View(model));
     }
     WorkerServices.AddEntry(model);
     return(Redirect("/Registry/"));
 }
Exemple #6
0
 public ActionResult AddEntry(AddEntryViewModel model)
 {
     if (!ModelState.IsValid)
     {
         return(View(model));
     }
     WorkerServices.AddEntry(model);
     return(RedirectToRoute("registry", new { }));
 }
Exemple #7
0
 public IActionResult AddEntry(AddEntryViewModel model, string fieldPrefix = "")
 {
     if (!ModelState.IsValid)
     {
         return(Json(new SerializableError(ModelState)));
     }
     WorkerServices.AddEntry(model);
     return(Ok());
 }
Exemple #8
0
        public void ResetClearsTextFields()
        {
            // Arrange
            var vm = new AddEntryViewModel(Enumerable.Empty <TagViewModel>(), null);

            // Act
            vm.Summary = "test";
            vm.Details = "test";
            vm.Reset();

            // Assert
            Assert.IsTrue(string.IsNullOrEmpty(vm.Summary));
            Assert.IsTrue(string.IsNullOrEmpty(vm.Details));
        }
Exemple #9
0
        public IActionResult AddEntry(AddEntryViewModel model, string fieldPrefix = "")
        {
            if (!ModelState.IsValid)
            {
                return(ViewComponent("AddEntry", new { model, mode = "default", fieldPrefix }));
            }

            WorkerServices.AddEntry(model);

            ModelState.Clear();

            model = WorkerServices.GetAddEntryViewModel();
            return(ViewComponent("AddEntry", new { model, mode = "default", fieldPrefix }));
        }
Exemple #10
0
        public void AddCommandNeedsNonEmptySummary()
        {
            // Arrange
            var vm = new AddEntryViewModel(Enumerable.Empty <TagViewModel>(), null);

            // Act
            vm.Summary = null;
            bool empty = vm.AddCommand.CanExecute(null);

            vm.Summary = "test";
            bool nonEmpty = vm.AddCommand.CanExecute(null);

            // Assert
            Assert.IsFalse(empty);
            Assert.IsTrue(nonEmpty);
        }
        public void AddEntry(AddEntryViewModel model)
        {
            var nationalIdentificationNumber = string.IsNullOrWhiteSpace(model.NationalIdentificationNumber) ? default(string) : model.NationalIdentificationNumber.Trim().ToUpper();

            var shippingAddressAddress    = model.AcquireShippingAddressFromLegalAddress ? model.LegalAddress.Address : model.ShippingAddress.Address;
            var shippingAddressPostalCode = model.AcquireShippingAddressFromLegalAddress ? model.LegalAddress.PostalCode : model.ShippingAddress.PostalCode;
            var shippingAddressCity       = model.AcquireShippingAddressFromLegalAddress ? model.LegalAddress.City : model.ShippingAddress.City;
            var shippingAddressProvince   = model.AcquireShippingAddressFromLegalAddress ? model.LegalAddress.Province : model.ShippingAddress.Province;
            var shippingAddressCountry    = model.AcquireShippingAddressFromLegalAddress ? model.LegalAddress.Country : model.ShippingAddress.Country;

            var billingAddressAddress    = model.AcquireBillingAddressFromLegalAddress ? model.LegalAddress.Address : model.BillingAddress.Address;
            var billingAddressPostalCode = model.AcquireBillingAddressFromLegalAddress ? model.LegalAddress.PostalCode : model.BillingAddress.PostalCode;
            var billingAddressCity       = model.AcquireBillingAddressFromLegalAddress ? model.LegalAddress.City : model.BillingAddress.City;
            var billingAddressProvince   = model.AcquireBillingAddressFromLegalAddress ? model.LegalAddress.Province : model.BillingAddress.Province;
            var billingAddressCountry    = model.AcquireBillingAddressFromLegalAddress ? model.LegalAddress.Country : model.BillingAddress.Country;

            var command = new RegisterPersonCommand(
                model.FirstName,
                model.LastName,
                nationalIdentificationNumber,
                model.VatNumber,
                model.LegalAddress.Address,
                model.LegalAddress.City,
                model.LegalAddress.PostalCode,
                model.LegalAddress.Province,
                model.LegalAddress.Country,
                shippingAddressAddress,
                shippingAddressPostalCode,
                shippingAddressCity,
                shippingAddressProvince,
                shippingAddressCountry,
                billingAddressAddress,
                billingAddressPostalCode,
                billingAddressCity,
                billingAddressProvince,
                billingAddressCountry,
                model.PhoneNumber,
                model.MobileNumber,
                model.FaxNumber,
                model.WebsiteAddress,
                model.EmailAddress,
                model.InstantMessaging
                );

            Bus.Send(command);
        }
Exemple #12
0
        public async Task <IActionResult> AddEntry(AddEntryViewModel model)
        {
            if (ModelState.IsValid)
            {
                string userId   = (await userManager.GetUserAsync(HttpContext.User))?.Id;
                Entry  newEntry = new Entry
                {
                    Topic       = model.Topic,
                    Description = model.Description,
                    User        = await userManager.FindByIdAsync(userId),
                    Date        = DateTime.Now
                };

                _entryRepository.Add(newEntry);
                return(View("AddEntrySuccesfull"));
            }
            return(View(model));
        }
Exemple #13
0
        public void SummaryIsValidatedForNonEmpty()
        {
            // Arrange
            var vm = new AddEntryViewModel(Enumerable.Empty <TagViewModel>(), null);

            // Act
            var start = vm.GetErrors(nameof(AddEntryViewModel.Summary)).Cast <string>().ToArray();

            vm.Summary = "test";
            var valid = vm.GetErrors(nameof(AddEntryViewModel.Summary)).Cast <string>().ToArray();

            vm.Summary = "";
            var empty = vm.GetErrors(nameof(AddEntryViewModel.Summary)).Cast <string>().ToArray();

            // Assert
            Assert.IsFalse(start.Any());
            Assert.IsFalse(valid.Any());
            CollectionAssert.AreEqual(new[] { Strings.EntryNeedsSummary }, empty);
        }
Exemple #14
0
        private void Save_Click(object sender, RoutedEventArgs e)
        {
            int               vehNum         = Convert.ToInt32(VehicleNumber.Text);
            string            slotid         = lblSlotID.Content.ToString();
            AddEntryViewModel entryViewModel = new AddEntryViewModel {
                SlotID = slotid, VehicleNumber = vehNum
            };

            try
            {
                if (entryViewModel.AddParkingEntry())
                {
                    EntryAdded = true;
                }
            } catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            this.Close();
        }
Exemple #15
0
        public void AddUsesCorrectValues()
        {
            // Arrange
            var tags = new[]
            {
                new TagViewModel(new Tag {
                    Id = 1, Name = "Tag1"
                }),
                new TagViewModel(new Tag {
                    Id = 2, Name = "Tag2"
                })
            };

            var currentProject = new ProjectViewModel(new Project {
                Id = 123
            });

            var  messenger          = new Messenger();
            bool addMessageReceived = false;

            messenger.Register <EntryAddedMessage>(this, msg => addMessageReceived = true);

            var todoRepoMock = new Mock <ITodoRepository>();

            todoRepoMock.Setup(x => x.Add(It.Is <Todo>(t => t.Summary.Equals("summary") && t.Details.Equals("details") && t.Project.Id == 123))).Verifiable();
            todoRepoMock.Setup(x => x.Update(It.Is <Todo>(t => t.Tags.First().Id == 2))).Verifiable();

            var vm = new AddEntryViewModel(tags, currentProject, todoRepoMock.Object, messenger)
            {
                Summary = "summary",
                Details = "details"
            };

            // Act
            vm.Tags[1].IsSelected = true;
            vm.AddCommand.Execute(null);

            // Assert
            todoRepoMock.VerifyAll();
            Assert.IsTrue(addMessageReceived);
        }
Exemple #16
0
        public async Task <ActionResult> AddEntry(AddEntryViewModel model)
        {
            var list = PinglistHelpers.GetPinglist(model.ListId, false, DataContext);

            if (list == null)
            {
                AddErrorNotification($"There is no pinglist with the ID '{model.ListId}'.");
                return(RedirectToRoute("PinglistInfo"));
            }

            if (!HasAccess(list, model.SecretKey))
            {
                AddErrorNotification("You do not have access to this pinglist. Make sure you are logged in or provide the correct secret key.");
                return(RedirectToRoute("Pinglist"));
            }

            try
            {
                var entry = await PinglistHelpers.AddEntryToList(list, model.Username, model.UserId, model.Remarks, DataContext);

                if (!string.IsNullOrEmpty(TempData["Success"] as string))
                {
                    TempData["Success"] += "<br/>";
                }
                TempData["Success"] += $"User '{entry.FRUser.Username}' has been added to the pinglist.";

                if (!IsOwner(list, model.SecretKey))
                {
                    TempData["NewEntry"] = (entry.GeneratedId, entry.SecretKey, entry.FRUser.Username);
                }
            }
            catch
            {
                AddErrorNotification($"Could not find user '{(model.UserId?.ToString() ?? model.Username)}' on Flight Rising. Verify the name or id is correct.");
            }
            DataContext.SaveChanges();

            return(RedirectToRoute("PinglistDirect", new { model.ListId, model.SecretKey }));
        }
Exemple #17
0
        public void ResetClearsTagSelection()
        {
            // Arrange
            var tags = new[]
            {
                new TagViewModel(new Tag {
                    Id = 1, Name = "Tag1"
                }),
                new TagViewModel(new Tag {
                    Id = 2, Name = "Tag2"
                })
            };

            var vm = new AddEntryViewModel(tags, null);

            // Act
            vm.Tags[1].IsSelected = true;
            vm.Reset();

            // Assert
            Assert.IsTrue(vm.Tags.All(t => !t.IsSelected));
        }
        public IActionResult Add(AddEntryViewModel addEntryViewModel)
        {
            if (ModelState.IsValid)
            {
                var currentUserId = userManager.GetUserId(User);

                Entry newEntry = new Entry
                {
                    Date        = addEntryViewModel.Date,
                    Time        = addEntryViewModel.Time,
                    Type        = addEntryViewModel.Type,
                    Description = addEntryViewModel.Description,
                    Feelings    = addEntryViewModel.Feelings,
                    UserId      = currentUserId
                };

                context.Entries.Add(newEntry);
                context.SaveChanges();

                return(Redirect("/Entries"));
            }

            return(View(addEntryViewModel));
        }
Exemple #19
0
        public void AddEntry(AddEntryViewModel model)
        {
            var command = new RegisterPersonCommand(
                model.FirstName,
                model.LastName,
                model.NationalIdentificationNumber,
                model.VatNumber,

                model.Address.Address,
                model.Address.City,
                model.Address.PostalCode,
                model.Address.Province,
                model.Address.Country,

                model.PhoneNumber,
                model.MobileNumber,
                model.FaxNumber,
                model.WebsiteAddress,
                model.EmailAddress,
                model.InstantMessaging
                );

            Bus.Send(command);
        }
Exemple #20
0
        public void FlyoutStaysOpenIfWanted()
        {
            // Arrange
            var currentProject = new ProjectViewModel(new Project {
                Id = 123
            });
            var messenger    = new Messenger();
            var todoRepoMock = new Mock <ITodoRepository>();

            bool messageReceived = false;

            messenger.Register <FlyoutMessage>(this, msg => { if (msg.FlyoutName == FlyoutMessage.AddEntryFlyoutName)
                                                              {
                                                                  messageReceived = true;
                                                              }
                                               });

            var vm = new AddEntryViewModel(Enumerable.Empty <TagViewModel>(), currentProject, todoRepoMock.Object, messenger)
            {
                Summary = "summary"
            };

            // Act
            vm.StayOpen = true;
            vm.AddCommand.Execute(null);
            bool stay = messageReceived;

            vm.Summary  = "summary";
            vm.StayOpen = false;
            vm.AddCommand.Execute(null);
            bool dontStay = messageReceived;

            // Assert
            Assert.IsFalse(stay);
            Assert.IsTrue(dontStay);
        }
        public IActionResult Add()
        {
            AddEntryViewModel addEntryViewModel = new AddEntryViewModel();

            return(View(addEntryViewModel));
        }
Exemple #22
0
        public IActionResult Add()
        {
            var vm = new AddEntryViewModel();

            return(View(vm));
        }
Exemple #23
0
 public IViewComponentResult Invoke(AddEntryViewModel model, string mode = "default", string fieldPrefix = "")
 {
     ViewData.TemplateInfo.HtmlFieldPrefix = fieldPrefix;
     return(View(mode, model ?? new AddEntryViewModel()));
 }
 public AddCategoryCommand(AddEntryViewModel addBookingViewModel, ICategoryService categoryService)
 {
     _addEntryViewModel = addBookingViewModel;
     _categoryService   = categoryService;
 }
        public void AddEntry(AddEntryViewModel model)
        {
            var command = new RegisterCompanyCommand(model.CompanyName, model.VatIndex);

            Bus.Send(command);
        }
Exemple #26
0
        public ActionResult AddEntry()
        {
            var model = new AddEntryViewModel();

            return(View(model));
        }
Exemple #27
0
        public void AddEntry(AddEntryViewModel model)
        {
            var command = new RegisterPersonCommand(model.FirstName, model.LastName, model.DateOfBirth);

            Bus.Send(command);
        }
Exemple #28
0
        public async Task <IActionResult> Post(long Id, [FromBody] AddEntryViewModel model)
        {
            if (model == null)
            {
                return(BadRequest());
            }
            if (model == null)
            {
                return(BadRequest());
            }

            if (_periodManager.GetPeriod() == Guid.Empty)
            {
                ModelState.AddModelError("", Resources.Global.Common.FinancialPeriodMustBeSpecified);
                return(BadRequest(ModelState.GetWithErrorsKey()));
            }

            var financialPeriod = await _financialPeriodRepo.FindAsync(_periodManager.GetPeriod());

            if (financialPeriod == null)
            {
                return(NotFound("FinancialPeriodNotFound"));
            }
            if (!financialPeriod.CheckIfDateInPeriod(model.Date))
            {
                ModelState.AddModelError("Date", Resources.Global.Common.DateOutCurrenctPeriod);
                return(BadRequest(ModelState.GetWithErrorsKey()));
            }

            #region checks

            Guid currencyId;
            var  currency = await _currencyRepo.GetAsync(model.CurrencyId);

            if (currency != null)
            {
                currencyId          = currency.Id;
                model.CurrencyValue = currency.Value;
            }
            else
            {
                currencyId          = _defaultKeysOptions.Value.CurrencyId;
                model.CurrencyValue = 1;
            }

            Guid?costCenterId = null;
            if (model.CostCenterId.HasValue)
            {
                var costCenter = await _costCenterRepo.GetAsync(model.CostCenterId.Value);

                if (costCenter == null)
                {
                    return(NotFound(Resources.CostCenters.CostCenterResource.CostCenterNotFound));
                }
                costCenterId = costCenter.Id;
            }

            Guid?branchId = null;
            if (model.BranchId.HasValue)
            {
                var branch = await _branchRepo.GetAsync(model.BranchId.Value);

                if (branch == null)
                {
                    return(NotFound(Resources.Branchs.BranchResource.BranchNotFound));
                }
                branchId = branch.Id;
            }

            // get new number value if the value from model is exist
            if (!await _entryRepo.CheckIfNotExistAsync(model.Number))
            {
                model.Number = await _entryRepo.GetNextNumberAsync();
            }

            #endregion

            var entry = new Entry(model.Number, currencyId, model.CurrencyValue, branchId, model.Note);

            var itemsIndex = 0;
            // check form items if not found
            foreach (var item in model.Items)
            {
                itemsIndex++;

                Guid accountId;
                var  account = await _accountRepo.GetAsync(item.AccountId);

                if (account == null)
                {
                    return(NotFound($"account in entry item {itemsIndex} not found"));
                }
                accountId = account.Id;

                Guid itemCurrencyId;
                if (model.CurrencyId == item.CurrencyId)
                {
                    itemCurrencyId     = currencyId;
                    item.CurrencyValue = model.CurrencyValue;
                }
                else
                {
                    var itemCurrency = await _currencyRepo.GetAsync(item.CurrencyId.Value);

                    if (itemCurrency != null)
                    {
                        itemCurrencyId     = itemCurrency.Id;
                        item.CurrencyValue = itemCurrency.Value;
                    }
                }

                Guid?itemCostCenterId = null;
                if (model.CostCenterId.HasValue && item.CostCenterId.HasValue && model.CostCenterId == item.CostCenterId)
                {
                    itemCostCenterId = costCenterId;
                }
                else
                {
                    if (item.CostCenterId.HasValue)
                    {
                        var costCenter = await _costCenterRepo.GetAsync(item.CostCenterId.Value);

                        if (costCenter == null)
                        {
                            return(NotFound(Resources.CostCenters.CostCenterResource.CostCenterNotFound));
                        }
                        itemCostCenterId = costCenter.Id;
                    }
                }

                var entryItem = new EntryItem(accountId, item.Debit, item.Credit, itemCurrencyId, item.CurrencyValue.Value, costCenterId, item.Date.Value.UtcDateTime, item.Note);
                entry.Items.Add(entryItem);
            }
            await _accountBalanceService.PostEntryToAccounts(entry);

            var affectedRows = await _entryRepo.AddAsync(entry);

            if (affectedRows > 0)
            {
                var viewModel = AutoMapper.Mapper.Map <EntryViewModel>(entry);
                return(CreatedAtRoute("GetEntry", new { id = entry.Number }, viewModel));
            }

            return(BadRequest());
        }
        public void AddEntry(AddEntryViewModel model)
        {
            if (model == null)
            {
                throw new ArgumentNullException(nameof(model));
            }

            var companyName = model.CompanyName;
            var nationalIdentificationNumber = model.NationalIdentificationNumber;
            var vatNumber = model.VatNumber;

            var legalAddressAddress    = model.LegalAddress.Address;
            var legalAddressPostalCode = model.LegalAddress.PostalCode;
            var legalAddressCity       = model.LegalAddress.City;
            var legalAddressProvince   = model.LegalAddress.Province;
            var legalAddressCountry    = model.LegalAddress.Country;

            var shippingAddressAddress    = model.AcquireShippingAddressFromLegalAddress ? model.LegalAddress.Address : model.ShippingAddress.Address;
            var shippingAddressPostalCode = model.AcquireShippingAddressFromLegalAddress ? model.LegalAddress.PostalCode : model.ShippingAddress.PostalCode;
            var shippingAddressCity       = model.AcquireShippingAddressFromLegalAddress ? model.LegalAddress.City: model.ShippingAddress.City;
            var shippingAddressProvince   = model.AcquireShippingAddressFromLegalAddress ? model.LegalAddress.Province : model.ShippingAddress.Province;
            var shippingAddressCountry    = model.AcquireShippingAddressFromLegalAddress ? model.LegalAddress.Country : model.ShippingAddress.Country;

            var billingAddressAddress    = model.AcquireBillingAddressFromLegalAddress ? model.LegalAddress.Address : model.BillingAddress.Address;
            var billingAddressPostalCode = model.AcquireBillingAddressFromLegalAddress ? model.LegalAddress.PostalCode : model.BillingAddress.PostalCode;
            var billingAddressCity       = model.AcquireBillingAddressFromLegalAddress ? model.LegalAddress.City : model.BillingAddress.City;
            var billingAddressProvince   = model.AcquireBillingAddressFromLegalAddress ? model.LegalAddress.Province : model.BillingAddress.Province;
            var billingAddressCountry    = model.AcquireBillingAddressFromLegalAddress ? model.LegalAddress.Country : model.BillingAddress.Country;

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

            Guid?mainContactId           = model.MainContact == null ? default(Guid?) : model.MainContact.OriginalId;
            Guid?administrativeContactId = model.AdministrativeContact == null ? default(Guid?) : model.AdministrativeContact.OriginalId;

            var command = new RegisterCompanyCommand(
                companyName,
                nationalIdentificationNumber,
                vatNumber,

                legalAddressAddress,
                legalAddressPostalCode,
                legalAddressCity,
                legalAddressProvince,
                legalAddressCountry,

                shippingAddressAddress,
                shippingAddressPostalCode,
                shippingAddressCity,
                shippingAddressProvince,
                shippingAddressCountry,

                billingAddressAddress,
                billingAddressPostalCode,
                billingAddressCity,
                billingAddressProvince,
                billingAddressCountry,

                mainContactId,
                administrativeContactId,
                phoneNumber,
                faxNumber,
                websiteAddress,
                emailAddress
                );

            Bus.Send(command);
        }
        public void AddEntry(AddEntryViewModel model)
        {
            if (model == null)
            {
                throw new ArgumentNullException(nameof(model));
            }

            var shippingAddressIsDefined = !string.IsNullOrWhiteSpace(model.ShippingAddress.Address) && !string.IsNullOrWhiteSpace(model.ShippingAddress.City);
            var billingAddressIsDefined  = !string.IsNullOrWhiteSpace(model.BillingAddress.Address) && !string.IsNullOrWhiteSpace(model.BillingAddress.City);

            string companyName = model.CompanyName;
            string nationalIdentificationNumber = model.NationalIdentificationNumber;
            string vatNumber = model.VatNumber;

            string legalAddressAddress    = model.LegalAddress.Address;
            string legalAddressPostalCode = model.LegalAddress.PostalCode;
            string legalAddressCity       = model.LegalAddress.City;
            string legalAddressProvince   = model.LegalAddress.Province;
            string legalAddressCountry    = model.LegalAddress.Country;

            string shippingAddressAddress    = shippingAddressIsDefined ? model.ShippingAddress.Address : model.LegalAddress.Address;
            string shippingAddressPostalCode = shippingAddressIsDefined ? model.ShippingAddress.PostalCode : model.LegalAddress.PostalCode;
            string shippingAddressCity       = shippingAddressIsDefined ? model.ShippingAddress.City : model.LegalAddress.City;
            string shippingAddressProvince   = shippingAddressIsDefined ? model.ShippingAddress.Province : model.LegalAddress.Province;
            string shippingAddressCountry    = shippingAddressIsDefined ? model.ShippingAddress.Country : model.LegalAddress.Country;

            string billingAddressAddress    = billingAddressIsDefined ? model.BillingAddress.Address : model.LegalAddress.Address;
            string billingAddressPostalCode = billingAddressIsDefined ? model.BillingAddress.PostalCode : model.LegalAddress.PostalCode;
            string billingAddressCity       = billingAddressIsDefined ? model.BillingAddress.City : model.LegalAddress.City;
            string billingAddressProvince   = billingAddressIsDefined ? model.BillingAddress.Province : model.LegalAddress.Province;
            string billingAddressCountry    = billingAddressIsDefined ? model.BillingAddress.Country : model.LegalAddress.Country;

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

            Guid?mainContactId           = model.MainContact == null ? default(Guid?) : model.MainContact.OriginalId;
            Guid?administrativeContactId = model.AdministrativeContact == null ? default(Guid?) : model.AdministrativeContact.OriginalId;

            var command = new RegisterCompanyCommand(
                companyName,
                nationalIdentificationNumber,
                vatNumber,

                legalAddressAddress,
                legalAddressPostalCode,
                legalAddressCity,
                legalAddressProvince,
                legalAddressCountry,

                shippingAddressAddress,
                shippingAddressPostalCode,
                shippingAddressCity,
                shippingAddressProvince,
                shippingAddressCountry,

                billingAddressAddress,
                billingAddressPostalCode,
                billingAddressCity,
                billingAddressProvince,
                billingAddressCountry,

                mainContactId,
                administrativeContactId,
                phoneNumber,
                faxNumber,
                websiteAddress,
                emailAddress
                );

            Bus.Send(command);
        }