public async Task <IActionResult> Update(int userId, int id, ChangeAddressCommand command)
        {
            if (userId != UserId)
            {
                return(Unauthorized());
            }

            if (id != command.Id)
            {
                return(BadRequest());
            }

            await _mediator.Send(command);

            return(NoContent());
        }
Esempio n. 2
0
        public Address Update(ChangeAddressCommand command)
        {
            var address = _repository.GetOne(command.Id);

            if (!string.IsNullOrEmpty(command.CEP))
            {
                address.ChangeCEP(command.CEP);
            }
            if (!string.IsNullOrEmpty(command.City))
            {
                address.ChangeCity(command.City);
            }
            if (!string.IsNullOrEmpty(command.Description))
            {
                address.ChangeDescription(command.Description);
            }
            if (command.Number != 0)
            {
                address.ChangeNumber(command.Number);
            }
            address.ChangeState(command.State);
            if (!string.IsNullOrEmpty(command.Street))
            {
                address.ChangeStreet(command.Street);
            }
            address.ChangeType(command.Type);

            _repository.Update(address);

            if (Commit())
            {
                return(address);
            }

            return(null);
        }
 public void ExecuteChangeAddressCommand(ChangeAddressCommand command)
 {
     OnEvent(new AddressChangedEvent(command.Value));
 }
        public async Task Update_Address_Should_Return_Status_Code_204()
        {
            var registerCommand = new RegisterCommand()
            {
                FirstName       = "FirstNameTestAddressUpdate",
                LastName        = "LastNameTestAddressUpdate",
                CompanyName     = "TestCompanyAddressUpdate",
                Email           = "*****@*****.**",
                ConfirmEmail    = "*****@*****.**",
                Password        = "******",
                ConfirmPassword = "******"
            };

            UserDetailsDto user = await AuthHelper.SignUp(_httpClient, registerCommand);

            var newAddress = new CreateAddressCommand()
            {
                UserId         = user.Id,
                Alias          = "My home",
                FirstName      = user.FirstName,
                Lastname       = user.LastName,
                Place          = "Warszawa",
                PostCode       = "00-005",
                Street         = "test54",
                BuildingNumber = "12A",
                Phone          = "000-000-000",
                Email          = user.Email
            };

            var createdAddress = await _httpClient.PostAsync <CreateAddressCommand, AddressDetailsDto>
                                     ($"/api/users/{user.Id}/addresses", newAddress);

            var addressToUpdate = new ChangeAddressCommand()
            {
                Id              = createdAddress.Id,
                Alias           = "updated 999",
                Email           = "*****@*****.**",
                Phone           = "123-123-123",
                BuildingNumber  = "999A",
                ApartmentNumber = "99",
                Place           = "Place updated",
                Street          = "Street updated",
                FirstName       = user.FirstName,
                Lastname        = user.LastName,
                PostCode        = "00-321"
            };

            var messagePut = await _httpClient.PutAsync($"/api/users/{user.Id}/addresses/{createdAddress.Id}", addressToUpdate);

            var updatedAddress = await _httpClient.GetAsync <AddressDetailsDto>($"api/users/{user.Id}/addresses/{addressToUpdate.Id}");

            Assert.Equal(HttpStatusCode.NoContent, messagePut.StatusCode);
            Assert.Equal(addressToUpdate.Id, updatedAddress.Id);
            Assert.Equal(addressToUpdate.Alias, updatedAddress.Alias);
            Assert.Equal(addressToUpdate.Email, updatedAddress.Email);
            Assert.Equal(addressToUpdate.Phone, updatedAddress.Phone);
            Assert.Equal(addressToUpdate.BuildingNumber, updatedAddress.BuildingNumber);
            Assert.Equal(addressToUpdate.ApartmentNumber, updatedAddress.ApartmentNumber);
            Assert.Equal(addressToUpdate.Place, updatedAddress.Place);
            Assert.Equal(addressToUpdate.FirstName, updatedAddress.FirstName);
            Assert.Equal(addressToUpdate.Lastname, updatedAddress.LastName);
            Assert.Equal(addressToUpdate.Street, updatedAddress.Street);
            Assert.Equal(addressToUpdate.PostCode, updatedAddress.PostCode);
        }