public async System.Threading.Tasks.Task List()
        {
            int noId = 0;


            var produtosNo = (from n in _unitOfw.NoRepository.Get()
                              join np in _unitOfw.NoProdutoRepository.Get() on n.Id equals np.NoId
                              join cp in _unitOfw.CorrenteProdutoRepository.Get() on np.ProdutoId equals cp.ProdutoId
                              join c in _unitOfw.CorrenteRepository.Get() on cp.CorrenteId equals c.Id
                              where c.SaidaId == c.Id
                              select new { Noid = n.Id, np.ProdutoId }).ToList().Distinct();



            var produtosSelect = (from p in _unitOfw.ProdutoRepository.Get()
                                  join np in _unitOfw.NoProdutoRepository.Get() on p.Id equals np.NoId
                                  join n in _unitOfw.NoRepository.Get() on np.NoId equals n.Id
                                  join tp in _unitOfw.TipoProdutoRepository.Get() on p.TipoEntidadeId equals tp.Id


                                  join vnp in produtosNo on np.NoId equals vnp.ProdutoId into prods
                                  from x in prods.DefaultIfEmpty()
                                  where n.Id == noId
                                  select new { p.Id, p.Codigo, TipoProdutoNome = tp.Nome, ProdutoCorrente = x.ProdutoId });


            int fluxogramaId             = 1;
            HttpResponseMessage response = await _clientCall.Detail(_baseController + "List/" + fluxogramaId);

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

                List <ResponseDrawingA> drawingListFromJson = JsonConvert.DeserializeObject <List <ResponseDrawingA> >(JObject.Parse(retorno)["data"].ToString());
                List <int> noIds = drawingListFromJson.Select(y => y.Key).ToList();

                List <NoDrawing> nodrawingList = _unitOfw.NoDrawingRepository.Get(y => noIds.Contains(y.NoId)).ToList();
                List <No>        noList        = _unitOfw.NoRepository.Get(y => noIds.Contains(y.Id)).ToList();

                List <int> tipoEntidadeId = noList.Select(y => y.TipoEntidadeId).ToList();
                List <VcmSuite3x_api.Core.Models.TipoEntidade> tipoEntidadeList = _unitOfw.TipoEntidadeRepository.Get(y => tipoEntidadeId.Contains(y.Id)).ToList();

                foreach (var oneNoDrawingFromJson in drawingListFromJson)
                {
                    NoDrawing noDrawing = nodrawingList.Where(y => y.NoId == oneNoDrawingFromJson.Key).FirstOrDefault();
                    Assert.AreEqual(oneNoDrawingFromJson.CoordenadaX, noDrawing.CoordenadaX);
                    Assert.AreEqual(oneNoDrawingFromJson.CoordenadaY, noDrawing.CoordenadaY);
                    Assert.AreEqual(oneNoDrawingFromJson.DiagramaId, noDrawing.FluxogramaId);

                    No no = noList.Where(y => y.Id == oneNoDrawingFromJson.Key).FirstOrDefault();
                    Assert.AreEqual(oneNoDrawingFromJson.Code, no.Codigo);

                    VcmSuite3x_api.Core.Models.TipoEntidade tipoEntidade = tipoEntidadeList.Where(y => y.Id == no.TipoEntidadeId).FirstOrDefault();
                    Assert.AreEqual(oneNoDrawingFromJson.Categoria, tipoEntidade.Prefixo);
                }
            }
        }
Esempio n. 2
0
        public async System.Threading.Tasks.Task Save()
        {
            RequestNoDrawing noDrawingToBeSave = new RequestNoDrawing
            {
                Categoria    = "UA",
                FluxogramaId = 1,
                CoordenadaX  = 1254,
                CoordenadaY  = 1044,
                Portas       = 4,
            };


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

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

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

                NoDrawing noDrawingfterSaveDataBase = _unitOfw.NoDrawingRepository.Get(y => y.NoId == noDrawingRetornoJson.Key).FirstOrDefault();
                No        noFromDatabase            = _unitOfw.NoRepository.Get(y => y.Id == noDrawingRetornoJson.Key).FirstOrDefault();

                VcmSuite3x_api.Core.Models.TipoEntidade tipoEntidadeFromDatabase = _unitOfw.TipoEntidadeRepository.Get(y => y.Prefixo == noDrawingToBeSave.Categoria).FirstOrDefault();

                Assert.AreEqual(noDrawingRetornoJson.Key, noDrawingfterSaveDataBase.NoId);

                Assert.AreEqual(tipoEntidadeFromDatabase.Id, noFromDatabase.TipoEntidadeId);

                Assert.AreEqual(noDrawingToBeSave.CoordenadaX, noDrawingfterSaveDataBase.CoordenadaX);
                Assert.AreEqual(noDrawingToBeSave.CoordenadaX, noDrawingRetornoJson.CoordenadaX);

                Assert.AreEqual(noDrawingToBeSave.CoordenadaY, noDrawingfterSaveDataBase.CoordenadaY);
                Assert.AreEqual(noDrawingToBeSave.CoordenadaY, noDrawingRetornoJson.CoordenadaY);


                List <PortaDrawing> portas = _unitOfw.PortaDrawingRepository.Get(y => y.NoId == noDrawingRetornoJson.Key).OrderBy(y => y.Index).ToList();

                Assert.AreEqual(noDrawingToBeSave.Portas, portas.Count);
                for (int i = 0; i < portas.Count; i++)
                {
                    Assert.AreEqual(noDrawingToBeSave.FluxogramaId, portas[i].FluxogramaId);
                    Assert.AreEqual(portas[i].Index, i + 1);
                }
            }
        }