private List <StatusSinistro> MontarListaDeStatus(List <string[]> lista) { List <StatusSinistro> s = new List <StatusSinistro>(); lista.ForEach(x => s.Add(new StatusSinistro() { CodigoTransacao = x[0], NomeTransacao = x[1], CodigoStatusAtual = x[2], NomeStatusAtual = x[3], CodigoStatusSeguinte = x[4], NomeStatusSeguinte = x[5] })); StatusSinistro primeiroStatus = s.SingleOrDefault(x => x.CodigoTransacao == "A" || x.CodigoTransacao == "00A"); List <StatusSinistro> statusPosteriores = s.Where(x => x.CodigoStatusAtual != null && x.CodigoStatusSeguinte != null).ToList(); List <StatusSinistro> outrosStatus = s.Where(x => (x.CodigoStatusAtual == null || x.CodigoStatusSeguinte == null) && x.CodigoTransacao != "A").ToList(); List <StatusSinistro> sinistros = new List <StatusSinistro> { primeiroStatus }; sinistros.AddRange(statusPosteriores); return(sinistros); }
private IVisio.Shape DesenharForma(IVisio.Page page, StatusSinistro sinistro) { var shape = page.DrawRectangle(1, 1, 3, 2); shape.Text = string.IsNullOrEmpty(sinistro.NomeStatusSeguinte) ? "Não achei" : sinistro.NomeStatusSeguinte; shape.Data1 = sinistro.CodigoStatusAtual; shape.Data2 = sinistro.CodigoStatusSeguinte; shape.Data3 = sinistro.CodigoTransacao; return(shape); }
private void DesenharPainel(IVisio.Page page, StatusSinistro sinistro, List <StatusSinistro> listaSinistro, List <IVisio.Shape> listaShape) { if (!listaShape.Any(x => x.Data2 == sinistro.CodigoStatusSeguinte)) { var novoShape = DesenharForma(page, sinistro); listaShape.Add(novoShape); foreach (var s in listaShape.Where(x => x.Data2 == novoShape.Data1)) { ConnectarDesenhos(novoShape, s); } foreach (var item in listaSinistro.Where(x => !listaShape.Any(y => y.Data3 == x.CodigoTransacao) && x.CodigoStatusAtual == sinistro.CodigoStatusSeguinte)) { DesenharPainel(page, item, listaSinistro, listaShape); } } else { var shapeAtual = listaShape.Single(x => x.Data2 == sinistro.CodigoStatusAtual); var shapeSeguinte = listaShape.Single(x => x.Data2 == sinistro.CodigoStatusSeguinte); ConnectarDesenhos(shapeAtual, shapeSeguinte); } }