protected override async Task Handle(Commands.UpdateContact request, CancellationToken cancellationToken) { if (string.IsNullOrEmpty(request.FirstName) && string.IsNullOrEmpty(request.LastName)) { throw new Exceptions.ContactNameIsEmptyException(request.ContactId, request.FirstName, request.LastName); } if (!string.IsNullOrEmpty(request.Email)) { if (!new EmailAddressAttribute().IsValid(request.Email)) { throw new Exceptions.ContactEmailIsNotValidException(request.ContactId, request.Email); } } var contact = new Core.Entities.Contact( id: request.ContactId, firstName: request.FirstName, lastName: request.LastName, email: request.Email, phone: request.Phone ); dataStore.Contacts.UpdateContact(contact); await dataStore.CommitChanges(); eventBus.Publish(new Events.ContactDeleted("TenantId", contact.Id)); }
public async Task <int> Update(Core.Entities.Contact entity) { var sql = "UPDATE Contacts SET Name = @Name, Nickname = @Nickname, Emoji = @Emoji WHERE Id = @Id;"; using (var connection = new SqlConnection(_configuration.GetConnectionString("DefaultConnection"))) { connection.Open(); var affectedRows = await connection.ExecuteAsync(sql, entity); return(affectedRows); } }
public async Task <int> Add(Core.Entities.Contact entity) { var sql = "INSERT INTO Contacts (Name, Nickname, Emoji) Values (@Name, @Nickname, @Emoji);"; using (var connection = new SqlConnection(_configuration.GetConnectionString("DefaultConnection"))) { connection.Open(); var affectedRows = await connection.ExecuteAsync(sql, entity); return(affectedRows); } }
public async Task <CreateContactResult> Handle(CreateContact request, CancellationToken cancellationToken) { if (string.IsNullOrEmpty(request.FirstName) && string.IsNullOrEmpty(request.LastName)) { throw new Exceptions.ContactNameIsEmptyException(request.ContactId, request.FirstName, request.LastName); } var contact = new Core.Entities.Contact( id: request.ContactId, firstName: request.FirstName, lastName: request.LastName, email: request.Email, phone: request.Phone ); dataStore.Contacts.AddContact(contact); await dataStore.CommitChanges(); eventBus.Publish(new Events.ContactCreated("TenantId", contact.Id)); return(new CreateContactResult(contact.Id)); }