public string InserirReservaCancelamento(string login, string senha, IReserva cancelamento, List <ReservaCancelamentoMes> mes, string unidadeGestora) { try { var dtoSiafdoc = new DtoSiafdoc { Reserva = cancelamento, Programa = _programa.Buscar(new Programa { Codigo = (int)cancelamento.Programa }).FirstOrDefault(), Fonte = _fonte.Buscar(new Fonte { Id = (int)cancelamento.Fonte }).FirstOrDefault(), Estutura = _estutura.Buscar(new Estrutura { Codigo = (int)cancelamento.Estrutura }).FirstOrDefault(), ValorMes = mes.Cast <IMes>() }; var siafdoc = GerarSiafemDocCanNR(dtoSiafdoc); var result = _siafemService.InserirCancelamentoReserva(login, senha, unidadeGestora, siafdoc); string root = true.ToString(); var xm = ConverterXml(result); var status = xm.GetElementsByTagName("StatusOperacao"); var messagemErro = xm.GetElementsByTagName("MsgErro"); var numeroNr = xm.GetElementsByTagName("NumeroNR"); if (status.Count > 0) { root = status[0].FirstChild.Value; } else if (messagemErro.Count > 0 && messagemErro[0].InnerText != "") { root = false.ToString(); } if (!bool.Parse(root)) { throw new Exception("SIAFEM - " + messagemErro[0].InnerText); } return(numeroNr[0].InnerText); } catch (Exception e) { HttpContext.Current.Session["xml"] = HttpContext.Current.Session["xmlSiafem"]; HttpContext.Current.Session["xmlSiafem"] = ""; throw new Exception(e.Message); } }
private static SIAFDOC GerarSiafemDocCanNR(DtoSiafdoc dtoSiafdoc) { var listObs = dtoSiafdoc.Reserva.Observacao.Split(';').ToList(); var SIAFDOC = new SIAFDOC { cdMsg = "SIAFCanNR", SiafemDocCanNR = new SiafemDocCanNR { documento = new documento { DataEmissao = dtoSiafdoc.Reserva.DataEmissao.ToString("ddMMMyyyy").ToUpper(), UnidadeGestora = dtoSiafdoc.Reserva.Ugo, Gestao = dtoSiafdoc.Reserva.Uo, PTRes = dtoSiafdoc.Programa.Ptres.ToString(), Processo = dtoSiafdoc.Reserva.Processo, UO = dtoSiafdoc.Reserva.Uo, PT = dtoSiafdoc.Programa.Cfp + "0000", Fonte = dtoSiafdoc.Fonte.Codigo, NaturezaDespesa = dtoSiafdoc.Estutura.Natureza.ToString(), UGO = dtoSiafdoc.Reserva.Ugo, PlanoInterno = "", Valor = dtoSiafdoc.ValorMes.Sum(x => x.ValorMes).ToString(CultureInfo.InvariantCulture) }, cronograma = new cronograma { Repeticao = new Repeticao { desc = dtoSiafdoc.ValorMes.Select(x => new desc { Mes = x.Descricao, Valor = x.ValorMes.ToString(CultureInfo.InvariantCulture) }).ToList(), } }, observacao = new observacao { Repeticao = new Repeticao { obs = listObs.Select(x => new obs { Observacao = removerAcentos(x.ToString()) }).ToList() } } } }; return(SIAFDOC); }
private static SFCODOC GerarSfcodoc(DtoSiafdoc dtoSiafdoc) { var siafdoc = new SFCODOC { cdMsg = "SFCONRPregao", SiafisicoDocNRPregao = new SiafisicoDocNRPregao { documento = new documento { DataEmissao = dtoSiafdoc.Reserva.DataEmissao.ToString("ddMMMyyyy").ToUpper(), Gestao = dtoSiafdoc.Reserva.Uo, NumOC = dtoSiafdoc.Reserva.Oc.Substring(6, 5), UG = dtoSiafdoc.Reserva.Ugo } } }; var listObs = dtoSiafdoc.Reserva.Observacao.Split(';'); if (listObs.Length > 0) { siafdoc.SiafisicoDocNRPregao.documento.Observacao1 = removerAcentos(listObs[0]); } if (listObs.Length > 1) { siafdoc.SiafisicoDocNRPregao.documento.Observacao2 = removerAcentos(listObs[1]); } if (listObs.Length > 2) { siafdoc.SiafisicoDocNRPregao.documento.Observacao3 = removerAcentos(listObs[2]); } var propriedades = siafdoc.SiafisicoDocNRPregao.documento.GetType().GetProperties().ToList(); var valorMes = dtoSiafdoc.ValorMes.ToList(); for (int i = 0; i < valorMes.Count; i++) { propriedades.FirstOrDefault(x => x.Name == "Mes" + (i + 1).ToString()) .SetValue(siafdoc.SiafisicoDocNRPregao.documento, valorMes[i].Descricao); propriedades.FirstOrDefault(x => x.Name == "Valor" + (i + 1).ToString()) .SetValue(siafdoc.SiafisicoDocNRPregao.documento, valorMes[i].ValorMes.ToString()); } return(siafdoc); }
public string InserirReservaSiafisico(string login, string senha, IReserva reserva, List <IMes> mes, string unidadeGestora) { try { var dtoSiafdoc = new DtoSiafdoc { Reserva = reserva, ValorMes = mes }; var siafdoc = GerarSfcodoc(dtoSiafdoc); var result = _siafemService.InserirReservaSiafisico(login, senha, unidadeGestora, siafdoc); string root = false.ToString(); var xm = ConverterXml(result); var status = xm.GetElementsByTagName("StatusOperacao"); var messagem = xm.GetElementsByTagName("MsgErro"); if (status.Count > 0) { root = status[0].FirstChild.Value; } else if (messagem.Count > 0) { root = false.ToString(); } if (!bool.Parse(root)) { throw new Exception("SIAFISICO - " + messagem[0].FirstChild.Value); } return(xm.GetElementsByTagName("NumeroNR")[0].FirstChild.Value); } catch (Exception e) { HttpContext.Current.Session["xml"] = HttpContext.Current.Session["xmlSiafem"]; HttpContext.Current.Session["xmlSiafem"] = ""; throw new Exception(e.Message); } }