Exemple #1
0
        /// <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;
                }
            }
        }
Exemple #2
0
        /// <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);
        }