/// <summary> /// Retorna o objeto pelo numero. /// </summary> /// <param name="Id"></param> /// <returns></returns> public static async Task <SROXml> GetHistorico(string numero) { using (HistoricoSRO objHistorico = new HistoricoSRO()) { try { SROXml sroXmlRetorno = new SROXml(); HistoricoSRO historico = await objHistorico.GetSHistorico(); if (historico != null && historico.ObjetoSRO != null) { var objeto = historico.ObjetoSRO.Objetos.Find((x) => x.Numero.Equals(numero)); if (objeto != null) { sroXmlRetorno.Objetos = new List <Objeto>(); sroXmlRetorno.Objetos.Add(objeto); } } return(sroXmlRetorno); } catch (Exception ex) { Core.GravarLog("Core", "GetHistorico", ex); return(new SROXml()); } } }
/// <summary> /// Asincrono. Deve analisar retorno! /// Retorna todo Historico salvo pelo sistema. /// </summary> /// <returns>retorna um objeto HistoricoSROXml.</returns> public static async Task <HistoricoSRO> GetHistorico() { using (HistoricoSRO objHistorico = new HistoricoSRO()) { return(await objHistorico.GetSHistorico()); } }
/// <summary> /// Excluir Objeto ou Historico. Obs se remover direto o objeto ele nao encontra. Precisa percorrer e remover dele mesmo. /// </summary> /// <param name="objetoExcluir"></param> /// <returns></returns> public async static Task <bool> ExcluirObjeto(Objeto objetoExcluir) { SROXml sroXml = null; SROXml sroExclusao = null; try { var sucesso = false; sroXml = await GetSROXml(objetoExcluir.Numero); if (sroXml == null) { sroXml = new SROXml(); } if (sroXml != null && sroXml.Objetos[0] == null) { using (HistoricoSRO historico = await GetHistorico()) { foreach (Objeto item in historico.ObjetoSRO.Objetos) { if (item.Numero == objetoExcluir.Numero) { historico.ObjetoSRO.Objetos.Remove(item); break; } } sucesso = await historico.GravarCorreioOnLine(); if (sucesso) { } } } else { sroExclusao = await GetSROXml(); if (sroExclusao == null) { sroExclusao = new SROXml(); } foreach (Objeto item in sroExclusao.Objetos) { if (item.Numero == objetoExcluir.Numero) { sroExclusao.Objetos.Remove(item); sroExclusao.Qtd--; break; } } sucesso = await sroExclusao.GravarCorreioOnLine(); if (sucesso) { } } return(sucesso); } catch (Exception ex) { Core.GravarLog("Core", "ExcluirObjeto", ex); return(false); } finally { if (sroXml != null) { sroXml.Dispose(); sroXml = null; } if (sroExclusao != null) { sroExclusao.Dispose(); sroExclusao = null; } } }
/// <summary> /// Gravar Historico dos objetos. /// </summary> /// <returns></returns> public static async Task <bool> GravarObjetoHistorico() { var sucessoOnLine = false; SROXml sroObjeto = null; List <Objeto> listExcluidos = null; HistoricoSRO historico = null; try { sroObjeto = await GetSROXml(); if (sroObjeto.Objetos == null) { return(sucessoOnLine); } foreach (Objeto objetoLocal in sroObjeto.Objetos) { if (objetoLocal.Eventos != null && objetoLocal.Eventos.Count > 0) { if (objetoLocal.Eventos[0].Codigo != null) { DateTime dataEvento = new DateTime(Convert.ToInt16(objetoLocal.Eventos[0].Data.Substring(6, 4)), Convert.ToInt16(objetoLocal.Eventos[0].Data.Substring(3, 2)), Convert.ToInt16(objetoLocal.Eventos[0].Data.Substring(0, 2)), Convert.ToInt16(objetoLocal.Eventos[0].Hora.Substring(0, 2)), Convert.ToInt16(objetoLocal.Eventos[0].Hora.Substring(3, 2)), 0); if (Status.VerificarStatus(objetoLocal.Eventos[0].Tipo, Convert.ToInt16(objetoLocal.Eventos[0].Status)) &&//objetoLocal.Eventos[0].Descricao == Entities.Enumeration.DescricaoEvento.Entregue dataEvento.AddDays(1) < DateTime.Now) { if (listExcluidos == null) { listExcluidos = new List <Objeto>(); } listExcluidos.Add(objetoLocal); } } } } if (listExcluidos != null && listExcluidos.Count > 0) { historico = await GetHistorico(); if (historico != null) { foreach (Objeto item in listExcluidos) { sroObjeto.Objetos.Remove(item); sroObjeto.Qtd--; item.DataFim = new DateTime(Convert.ToInt16(item.Eventos[0].Data.Substring(6, 4)), Convert.ToInt16(item.Eventos[0].Data.Substring(3, 2)), Convert.ToInt16(item.Eventos[0].Data.Substring(0, 2)), Convert.ToInt16(item.Eventos[0].Hora.Substring(0, 2)), Convert.ToInt16(item.Eventos[0].Hora.Substring(3, 2)), 0); if (historico.ObjetoSRO == null) { historico.ObjetoSRO = new SROXml(); } if (historico.ObjetoSRO.Objetos == null) { historico.ObjetoSRO.Objetos = new List <Objeto>(); } historico.ObjetoSRO.Objetos.Add(item); } historico.ObjetoSRO.UltimaAtualizacao = DateTime.Now; } var sucesso = await historico.GravarCorreioOnLine(); if (sucesso) { sucessoOnLine = await sroObjeto.GravarCorreioOnLine(); if (sucessoOnLine) { } } } } catch (Exception ex) { Core.GravarLog("Core", "GravarObjetoHistorico", ex); } finally { if (sroObjeto != null) { sroObjeto.Dispose(); sroObjeto = null; } if (listExcluidos != null) { listExcluidos.Clear(); listExcluidos = null; } if (historico != null) { historico.Dispose(); historico = null; } } return(sucessoOnLine); }