Esempio n. 1
0
        public CustomerViewModel Add(CustomerViewModel customerVM)
        {
            CustomerViewModel viewModel = null;
            var model = _mapper.Map <Customer>(customerVM);

            var validation = new CustomerInsertValidation(_customerRepository).Validate(model);

            if (!validation.IsValid)
            {
                _domainNotification.AddNotifications(validation);
                return(viewModel);
            }

            /*
             * EXEMPLO COM TRANSAÇÃO:
             * Adicione a função "BeginTransaction()": _unitOfWork.BeginTransaction();
             * Utilize transação somente se realizar mais de uma operação no banco de dados ou banco de dados distintos
             */

            _customerRepository.Add(model);
            _unitOfWork.Commit();

            viewModel = _mapper.Map <CustomerViewModel>(model);

            return(viewModel);
        }
        public CustomerValidationTest()
        {
            _customerRepositoryMock = new Mock <ICustomerRepository>();

            CustomerAddress customerAddress = null;

            _customerRepositoryMock.Setup(x => x.GetByNameAsync(It.IsAny <string>()))
            .ReturnsAsync(customerAddress);

            Validator = new CustomerInsertValidation(_customerRepositoryMock.Object);

            this.entity = new Customer(id: 1, addressId: 1, name: "fulano de tal");
        }