public bool Delete(int noId, int fluxogramaId)
        {
            //pr_VCM_NoDrawingDelete
            try
            {
                List <Corrente> correntes = _unitOfw.CorrenteRepository.Get(y => y.EntradaId == noId || y.SaidaId == noId).ToList();

                NoDrawing noDrawing = _unitOfw.NoDrawingRepository.Get(y => y.NoId == noId && y.FluxogramaId == fluxogramaId).FirstOrDefault();

                //Exclusão das correntes associadas ao nó.
                foreach (var oneCorrente in correntes)
                {
                    List <CorrenteDrawing> correnteDrawings = _unitOfw.CorrenteDrawingRepository.Get(y => y.CorrenteId == oneCorrente.Id).ToList();

                    _unitOfw.CorrenteDrawingRepository.DeleteRange(correnteDrawings);

                    //pr_VCM_CorrenteDrawingDelete
                    _correnteBo.Delete(oneCorrente.Id);
                }

                //Exclusão das portas do nó.
                _unitOfw.PortaDrawingRepository.Delete(y => y.NoId == noId &&
                                                       (y.FluxogramaId == fluxogramaId || noDrawing.Conector == false));

                //Exclusão do nó.

                _unitOfw.NoDrawingRepository.Delete(y => y.NoId == noId &&
                                                    (y.FluxogramaId == fluxogramaId || noDrawing.Conector == false));

                if (noDrawing.Conector == false)
                {
                    #region //pr_NoDelete

                    _unitOfw.NoProdutoRepository.Delete(y => y.NoId == noId);
                    _unitOfw.NoCenarioLimiteRepository.Delete(y => y.NoId == noId);
                    _unitOfw.NoCenarioSimboloRepository.Delete(y => y.NoId == noId);
                    _unitOfw.ArmazenamentoCenarioRepository.Delete(y => y.NoId == noId);
                    _unitOfw.DiagramaCenarioRepository.Delete(y => y.NoId == noId);
                    _unitOfw.DivisorCenarioRepository.Delete(y => y.NoId == noId);
                    _unitOfw.FornecimentoCenarioRepository.Delete(y => y.NoId == noId);
                    _unitOfw.MercadoCenarioRepository.Delete(y => y.NoId == noId);
                    _unitOfw.ProcessamentoCenarioRepository.Delete(y => y.NoId == noId);
                    _unitOfw.UnificadorCenarioRepository.Delete(y => y.NoId == noId);
                    _unitOfw.PortoCenarioRepository.Delete(y => y.NoId == noId);
                }

                No no = _unitOfw.NoRepository.GetWithIncludeAll(y => y.Id == noId);

                _unitOfw.pr_ValoresClear(noId, no.TipoEntidadeId, no.TopologiaId, null);

                _unitOfw.NoRepository.Delete(no);
                #endregion

                return(true);
            }
            catch (Exception ex)
            {
                throw;
            }
        }
        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);
                }
            }
        }
        public bool Update(int fluxogramaId, int noId, float coordenadaX, float coordenadaY)
        {
            NoDrawing no = _unitOfw.NoDrawingRepository.Get(y => y.NoId == noId && y.FluxogramaId == fluxogramaId).FirstOrDefault();

            no.CoordenadaX = coordenadaX;
            no.CoordenadaY = coordenadaY;
            _unitOfw.NoDrawingRepository.Update(no);

            return(true);
        }
Beispiel #4
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);
                }
            }
        }
        public bool Insert(int portas, int fluxogramaId, ref int noId, ref string codigo, string categoria, bool conector, float CoordenadaX, float CoordenadaY)
        {
            try
            {
                int topologiaId    = _unitOfw.FluxogramaDrawingRepository.Get(y => y.Id == fluxogramaId).FirstOrDefault().TopologiaId;
                int tipoEntidadeId = _unitOfw.TipoEntidadeRepository.Get(y => y.Prefixo == categoria).FirstOrDefault().Id;

                //pr_VCM_NoDrawingInsert
                noId = NoInsert(ref codigo, tipoEntidadeId, topologiaId, false, false);

                if (noId == 0)
                {
                    return(false);
                }

                NoDrawing noDrawing = new NoDrawing
                {
                    NoId         = noId,
                    FluxogramaId = fluxogramaId,
                    CoordenadaX  = CoordenadaX,
                    CoordenadaY  = CoordenadaY,
                    Conector     = conector
                };

                _unitOfw.NoDrawingRepository.Insert(noDrawing);

                List <PortaDrawing> portasDrawing = new List <PortaDrawing>();
                for (Int32 i = 0; i <= portas; i++)
                {
                    portasDrawing.Add(new PortaDrawing {
                        Index = i, FluxogramaId = fluxogramaId, NoId = noId
                    });
                }

                _unitOfw.PortaDrawingRepository.InsertRange(portasDrawing);
                return(true);
            }
            catch (Exception ex)
            {
                return(false);

                throw;
            }
        }