public void QuandoAdicionaIteracaoDeUsuarioOcorrePersistencia() { ProcessoDeCotacao processoDeCotacao = DefaultObjects.ObtemProcessoDeCotacaoDeFrete(); IList <FornecedorParticipante> fornecedoresParticipantes = new List <FornecedorParticipante>(); fornecedoresParticipantes.Add(processoDeCotacao.AdicionarFornecedor(DefaultObjects.ObtemFornecedorPadrao())); fornecedoresParticipantes.Add(processoDeCotacao.AdicionarFornecedor(DefaultObjects.ObtemFornecedorPadrao())); _atualizadorDeIteracaoDoUsuario.Adicionar(fornecedoresParticipantes); _processoCotacaoIteracoesUsuarioMock.Verify(x => x.Save(It.IsAny <ProcessoCotacaoIteracaoUsuario>()), Times.Exactly(fornecedoresParticipantes.Count)); CommonVerifications.VerificaCommitDeTransacao(_unitOfWorkMock); }
public void AtualizarFornecedores(ProcessoDeCotacaoFornecedoresAtualizarVm atualizacaoDosFornecedoresVm) { try { _unitOfWork.BeginTransaction(); var processoDeCotacao = _processosDeCotacao.BuscaPorId(atualizacaoDosFornecedoresVm.IdProcessoCotacao).Single(); string[] codigoDosFonecedoresAtuais = processoDeCotacao.FornecedoresParticipantes.Select(x => x.Fornecedor.Codigo).ToArray(); IList <string> codigoDosFornecedoresQueDevemSerRemovidos = codigoDosFonecedoresAtuais.Except(atualizacaoDosFornecedoresVm.CodigoFornecedoresSelecionados).ToList(); string[] codigoDosFornecedoresQueDevemSerAdicionados = atualizacaoDosFornecedoresVm.CodigoFornecedoresSelecionados.Except(codigoDosFonecedoresAtuais) .ToArray(); IList <Fornecedor> fornecedoresParaAdicionar = _fornecedores.BuscaListaPorCodigo(codigoDosFornecedoresQueDevemSerAdicionados).List(); var fornecedoresParticipantesAdicionados = new List <FornecedorParticipante>(); foreach (var fornecedor in fornecedoresParaAdicionar) { fornecedoresParticipantesAdicionados.Add(processoDeCotacao.AdicionarFornecedor(fornecedor)); } foreach (var codigoDoFornecedorQueDeveSerRemovido in codigoDosFornecedoresQueDevemSerRemovidos) { processoDeCotacao.RemoverFornecedor(codigoDoFornecedorQueDeveSerRemovido); } _processosDeCotacao.Save(processoDeCotacao); _unitOfWork.Commit(); _atualizadorDeIteracaoDoUsuario.Adicionar(fornecedoresParticipantesAdicionados); } catch (Exception) { _unitOfWork.RollBack(); throw; } }