public async System.Threading.Tasks.Task Get()
        {
            int cenarioId = 2007;
            int noId      = 26;


            HttpResponseMessage response = await _clientCall.Detail($"{_baseController}Detail/{cenarioId}/{noId}");

            Assert.IsTrue(response.IsSuccessStatusCode);
            var retorno = await response.Content.ReadAsStringAsync();

            FornecimentoCenarioSave FornecimentoCenarioResponseJson = JsonConvert.DeserializeObject <FornecimentoCenarioSave>(JObject.Parse(retorno)["data"].ToString());

            FornecimentoCenario fornecimentoCenarioFromDataBase = _unitOfw.FornecimentoCenarioRepository.Get(y => y.NoId == FornecimentoCenarioResponseJson.NoId &&
                                                                                                             y.CenarioId == cenarioId).FirstOrDefault();

            Assert.AreEqual(fornecimentoCenarioFromDataBase.NoId, FornecimentoCenarioResponseJson.NoId);
            Assert.AreEqual(fornecimentoCenarioFromDataBase.CenarioId, FornecimentoCenarioResponseJson.CenarioId);
            Assert.AreEqual(fornecimentoCenarioFromDataBase.Suprimento, FornecimentoCenarioResponseJson.Suprimento);
            Assert.AreEqual(fornecimentoCenarioFromDataBase.CapacidadePoroes, FornecimentoCenarioResponseJson.CapacidadePoroes);
            Assert.AreEqual(fornecimentoCenarioFromDataBase.SuprimentoAgregado, FornecimentoCenarioResponseJson.SuprimentoAgregado);
            Assert.AreEqual(fornecimentoCenarioFromDataBase.SuprimentoSemiContinuo, FornecimentoCenarioResponseJson.SuprimentoSemiContinuo);
            Assert.AreEqual(fornecimentoCenarioFromDataBase.IncluirCalculoImpostos, FornecimentoCenarioResponseJson.IncluirCalculoImpostos);
            Assert.AreEqual(fornecimentoCenarioFromDataBase.SuprimentoAgregadoSemiContinuo, FornecimentoCenarioResponseJson.SuprimentoAgregadoSemiContinuo);
        }
        private bool SaveFornecimentoCenario(RequestCenarioFluxogramaSave cenarioFluxograma)
        {
            using (var context = new VCMContext())
            {
                using (var transaction = context.Database.BeginTransaction())
                {
                    try
                    {
                        FornecimentoCenario fornecimentoCenarioOld = _unitOfw.FornecimentoCenarioRepository.Get(y => y.NoId == cenarioFluxograma.NoId &&
                                                                                                                y.CenarioId == cenarioFluxograma.CenarioId).FirstOrDefault();

                        bool incluirCalculoImpostosOld = fornecimentoCenarioOld.IncluirCalculoImpostos;
                        bool suprimentoOld             = fornecimentoCenarioOld.Suprimento;

                        string codigo = _unitOfw.NoRepository.Get(y => y.Id == cenarioFluxograma.NoId).Select(y => y.Codigo).FirstOrDefault();

                        List <Simbolo> simbolos = new List <Simbolo>();
                        if (!cenarioFluxograma.IncluirCalculoImpostos)
                        {
                            simbolos = _unitOfw.SimboloRepository.Get(y => y.Codigo == SimboloCodigo.PrecoCompraNF.ToString() ||
                                                                      y.Codigo == SimboloCodigo.PrecoVendaNF.ToString() ||
                                                                      y.Codigo == SimboloCodigo.ICMSPorctSubstEnt.ToString() ||
                                                                      y.Codigo == SimboloCodigo.ICMSPorctSubstSai.ToString() ||
                                                                      y.Codigo == SimboloCodigo.ValorBenefICMS.ToString()).ToList();
                        }
                        else
                        {
                            incluirCalculoImpostosOld = _unitOfw.ArmazenamentoCenarioRepository.Get(y => y.NoId == cenarioFluxograma.NoId &&
                                                                                                    y.CenarioId == cenarioFluxograma.CenarioId)
                                                        .Select(y => y.IncluirCalculoImpostos).FirstOrDefault();
                        }
                        if (suprimentoOld != cenarioFluxograma.Suprimento && cenarioFluxograma.Suprimento == false)
                        {
                            simbolos.AddRange(_unitOfw.SimboloRepository.Get(y => y.Codigo == SimboloCodigo.SuprLo.ToString() && y.Codigo == SimboloCodigo.SuprUp.ToString()).ToList());
                        }

                        EntradaDelete(cenarioFluxograma.CenarioId, codigo, simbolos.Select(y => y.Id).ToList(), context);

                        FornecimentoCenario tobeSave = _mapper.Map <FornecimentoCenario>(cenarioFluxograma);
                        context.FornecimentoCenario.Update(tobeSave);

                        if (!incluirCalculoImpostosOld && cenarioFluxograma.IncluirCalculoImpostos)
                        {
                            LerValoresSaidaEntradaBaseCalculoImposto(cenarioFluxograma.CenarioId, codigo, context);
                        }

                        context.SaveChanges();
                        transaction.Commit();
                    }
                    catch (Exception ex)
                    {
                        transaction.Rollback();
                    }
                }
            }
            return(true);
        }
        public async System.Threading.Tasks.Task Save()
        {
            FornecimentoCenarioSave fornecimentoCenarioToBeSave = new FornecimentoCenarioSave
            {
                CenarioId                      = 2007,
                NoId                           = 26,
                CapacidadePoroes               = true,
                IncluirCalculoImpostos         = true,
                Suprimento                     = true,
                SuprimentoAgregado             = true,
                SuprimentoAgregadoSemiContinuo = true,
                SuprimentoSemiContinuo         = true
            };


            HttpResponseMessage response = await _clientCall.Save(_baseController + "Save/", JsonConvert.SerializeObject(fornecimentoCenarioToBeSave));

            Assert.IsTrue(response.IsSuccessStatusCode);
            if (response.IsSuccessStatusCode)
            {
                var retorno = await response.Content.ReadAsStringAsync();

                FornecimentoCenarioSave fornecimentoCenarioRetornoJson = JsonConvert.DeserializeObject <FornecimentoCenarioSave>(JObject.Parse(retorno)["data"].ToString());


                FornecimentoCenario fornecimentoCenario = _unitOfw.FornecimentoCenarioRepository.Get(y => y.NoId == fornecimentoCenarioToBeSave.NoId &&
                                                                                                     y.CenarioId == fornecimentoCenarioToBeSave.CenarioId)
                                                          .FirstOrDefault();


                Assert.AreEqual(fornecimentoCenarioToBeSave.NoId, fornecimentoCenarioRetornoJson.NoId);
                Assert.AreEqual(fornecimentoCenarioToBeSave.CenarioId, fornecimentoCenarioRetornoJson.CenarioId);
                Assert.AreEqual(fornecimentoCenarioToBeSave.Suprimento, fornecimentoCenarioRetornoJson.Suprimento);
                Assert.AreEqual(fornecimentoCenarioToBeSave.SuprimentoAgregado, fornecimentoCenarioRetornoJson.SuprimentoAgregado);
                Assert.AreEqual(fornecimentoCenarioToBeSave.SuprimentoAgregadoSemiContinuo, fornecimentoCenarioRetornoJson.SuprimentoAgregadoSemiContinuo);
                Assert.AreEqual(fornecimentoCenarioToBeSave.SuprimentoSemiContinuo, fornecimentoCenarioRetornoJson.SuprimentoSemiContinuo);
                Assert.AreEqual(fornecimentoCenarioToBeSave.CapacidadePoroes, fornecimentoCenarioRetornoJson.CapacidadePoroes);
                Assert.AreEqual(fornecimentoCenarioToBeSave.IncluirCalculoImpostos, fornecimentoCenarioRetornoJson.IncluirCalculoImpostos);


                Assert.AreEqual(fornecimentoCenarioToBeSave.NoId, fornecimentoCenario.NoId);
                Assert.AreEqual(fornecimentoCenarioToBeSave.CenarioId, fornecimentoCenario.CenarioId);
                Assert.AreEqual(fornecimentoCenarioToBeSave.Suprimento, fornecimentoCenario.Suprimento);
                Assert.AreEqual(fornecimentoCenarioToBeSave.SuprimentoAgregado, fornecimentoCenario.SuprimentoAgregado);
                Assert.AreEqual(fornecimentoCenarioToBeSave.SuprimentoAgregadoSemiContinuo, fornecimentoCenario.SuprimentoAgregadoSemiContinuo);
                Assert.AreEqual(fornecimentoCenarioToBeSave.SuprimentoSemiContinuo, fornecimentoCenario.SuprimentoSemiContinuo);
                Assert.AreEqual(fornecimentoCenarioToBeSave.CapacidadePoroes, fornecimentoCenario.CapacidadePoroes);
                Assert.AreEqual(fornecimentoCenarioToBeSave.IncluirCalculoImpostos, fornecimentoCenario.IncluirCalculoImpostos);
            }
        }
Exemplo n.º 4
0
        public IActionResult Post([FromBody] FornecimentoCenarioSave model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(new BadRequestObjectResult(ModelState.GenerateValidation()));
                }

                //TODO: fazer de um jeito mais generico a validação das FK
                if (_unitOfw.CenarioRepository.Count(p => p.Id == model.CenarioId) == 0)
                {
                    BaseViewModel <string> notFound = new BaseViewModel <string>("Cenario Not Found!");
                    return(NotFound(notFound));
                }

                if (_unitOfw.NoRepository.Count(p => p.Id == model.NoId) == 0)
                {
                    BaseViewModel <string> notFound = new BaseViewModel <string>("No Not Found!");
                    return(NotFound(notFound));
                }
                FornecimentoCenario tobeSave = _mapper.Map <FornecimentoCenario>(model);

                if (_unitOfw.FornecimentoCenarioRepository.Count(y => y.NoId == model.NoId && y.CenarioId == model.CenarioId) == 0)
                {
                    _unitOfw.FornecimentoCenarioRepository.Insert(tobeSave);
                }

                else
                {
                    _unitOfw.FornecimentoCenarioRepository.Update(tobeSave);
                }

                BaseViewModel <FornecimentoCenarioSave> baseObj = new BaseViewModel <FornecimentoCenarioSave>(model, "Fornecimento Cenario Saved Successfully!", "");
                return(Ok(baseObj));
            }
            catch (Exception ex)
            {
                throw;
            }
        }