/// <summary> /// <see cref="IHandleEvent{TEvent}.Handle(TEvent)"/> /// </summary> /// <param name="event"></param> public void Handle(CompanyRegisteredWithAccountEvent @event) { try { EventStore.Save(@event); } catch { throw; } }
public void ToString_Should_Return_Event_Formatted_As_String() { Guid companyId = Guid.NewGuid(); string companyName = "company"; string vatNumber = "1234567890"; string userName = "******"; var ev = new CompanyRegisteredWithAccountEvent(companyId, companyName, vatNumber, userName); string eventAsString = $"Company {companyName}, VAT {vatNumber}, User name {userName} registered"; Assert.Equal(eventAsString, ev.ToString()); }
public void Ctor_Should_Set_All_Values_Correctly() { Guid companyId = Guid.NewGuid(); string companyName = "company"; string vatNumber = "1234567890"; string userName = "******"; var ev = new CompanyRegisteredWithAccountEvent(companyId, companyName, vatNumber, userName); Assert.Equal(companyId, ev.CompanyId); Assert.Equal(companyName, ev.CompanyName); Assert.Equal(vatNumber, ev.VatNumber); Assert.Equal(userName, ev.UserName); Assert.Equal(companyId, ev.AggregateId); Assert.Equal(typeof(Registries.Models.Customer), ev.AggregateType); Assert.Equal(DateTime.Today, ev.FiredOn.Date); }
/// <summary> /// Implementation of <see cref="ICustomerCommands.RegisterNewCompanyWithAccount(string, string, string, string, string)"/> /// </summary> /// <param name="companyName">The company name</param> /// <param name="vatNumber">The company vat number</param> /// <param name="nationalIdentificationNumber">The company national identification number</param> /// <param name="userName">The username</param> /// <param name="password">The password</param> /// <returns></returns> public async Task RegisterNewCompanyWithAccount(string companyName, string vatNumber, string nationalIdentificationNumber, string userName, string password) { if (string.IsNullOrWhiteSpace(companyName)) { throw new ArgumentException("value cannot be empty", nameof(companyName)); } if (string.IsNullOrWhiteSpace(vatNumber)) { throw new ArgumentException("value cannot be empty", nameof(vatNumber)); } if (string.IsNullOrWhiteSpace(userName)) { throw new ArgumentException("value cannot be empty", nameof(userName)); } if (string.IsNullOrWhiteSpace(password)) { throw new ArgumentException("value cannot be empty", nameof(password)); } try { var userId = await AuthClient.RegisterNewAccount(userName, password); var company = Company.RegisterWithAccount(companyName, vatNumber, userId, userName); if (!string.IsNullOrWhiteSpace(nationalIdentificationNumber)) { company.SetNationalIdentificationNumber(nationalIdentificationNumber); } Repository.Add(company); await Repository.SaveChangesAsync(); var @event = new CompanyRegisteredWithAccountEvent(company.Id, companyName, vatNumber, userName); EventBus.RaiseEvent(@event); } catch { throw; } }