Пример #1
0
		private void detach_RelatorioEmails(RelatorioEmail entity)
		{
			this.SendPropertyChanging();
			entity.ProdutoVa = null;
		}
Пример #2
0
        public Answer LogEmail(string xml)
        {
            ProdutoVaArquivoRepository arquivoRepository = new ProdutoVaArquivoRepository();
            ProdutoVaRepository vaRepository = new ProdutoVaRepository();

            string crm = string.Empty;
            string crmUf = string.Empty;
            string email = string.Empty;
            int idArquivo = 0;
            int idVa = 0;
            DateTime? data = null;

            string userTerritorio;
            string userSenha;

            #region lê informações do Xml passado

            XmlDocument doc = new XmlDocument();

            try
            {
                doc.Load(new StringReader(xml));

                XmlElement nodeUsuario = (XmlElement)doc.GetElementsByTagName("user")[0];
                userTerritorio = nodeUsuario.GetElementsByTagName("territory")[0].InnerText;
                userSenha = nodeUsuario.GetElementsByTagName("password")[0].InnerText;

                XmlElement nodeLogs = (XmlElement)doc.GetElementsByTagName("emails")[0];

                //faz autenticação
                var territorio = GetTerritorio(userTerritorio, userSenha);

                if (territorio == null)
                    return new Answer(Answer.EnumStatus.ErroLogin, "Login e/ou senha inválido(s)");

                foreach (XmlNode nodeLog in nodeLogs.ChildNodes)
                {
                    crm = nodeLog["crm"].InnerText.ToString();
                    crmUf = nodeLog["crmUf"].InnerText.ToString();
                    email = nodeLog["email"].InnerText.ToString();
                    idArquivo = nodeLog["attachmentId"].InnerText.ToInt();
                    idVa = nodeLog["presentationId"].InnerText.ToInt();
                    data = nodeLog["date"].InnerText.ToDateTime();

                    #region Valida Informações passadas

                    /*
                    //verifica VA
                    var va = vaRepository.GetProdutoVa(idVa);

                    if (va == null)
                        return new Answer(Answer.EnumStatus.Erro, "VA não existente");

                    //verifica arquivo
                    var arquivo = arquivoRepository.GetProdutoVaArquivo(idArquivo);

                    if (arquivo == null)
                        return new Answer(Answer.EnumStatus.Erro, "Arquivo não existente");

                    if (!va.ProdutoVaArquivos.Any(a => a.Id == arquivo.Id))
                        return new Answer(Answer.EnumStatus.Erro, "Arquivo não pertence ao VA informado");
                    */

                    #endregion
                }

                RelatorioEmailRepository relatorioEmailRepository = new RelatorioEmailRepository();

                foreach (XmlNode nodeLog in nodeLogs.ChildNodes)
                {
                    crm = nodeLog["crm"].InnerText.ToString();
                    crmUf = nodeLog["crmUf"].InnerText.ToString();
                    email = nodeLog["email"].InnerText.ToString();
                    idArquivo = nodeLog["attachmentId"].InnerText.ToInt();
                    idVa = nodeLog["presentationId"].InnerText.ToInt();
                    data = nodeLog["date"].InnerText.ToDateTime();

                    #region grava relatório

                    RelatorioEmail relatorioEmail = new RelatorioEmail();

                    relatorioEmail.IdTerritorio = territorio.Id;
                    relatorioEmail.IdVa_temp = idVa;
                    relatorioEmail.IdProdutoVaArquivo_temp = idArquivo;
                    relatorioEmail.Data = data;
                    relatorioEmail.Crm = crm;
                    relatorioEmail.CrmUf = crmUf;
                    relatorioEmail.Email = email;
                    relatorioEmail.IdTerritorio = territorio.Id;
                    relatorioEmail.Status = (char?)RelatorioEmail.EnumStatus.Pendente;

                    relatorioEmailRepository.Add(relatorioEmail);
                    relatorioEmailRepository.Save();

                    try
                    {
                        relatorioEmail.IdVa = idVa;
                        relatorioEmail.IdProdutoVaArquivo = idArquivo;

                        relatorioEmailRepository.Save();
                    }
                    catch (Exception e)
                    {
                        relatorioEmail.IdVa = null;
                        relatorioEmail.IdProdutoVaArquivo = null;

                        relatorioEmail.Xml = xml;
                        relatorioEmailRepository.Save();

                        Util.Sistema.Error.TrataErro(e, enviarEmail: false);
                    }

                    #endregion

                }

                relatorioEmailRepository.Save();

                /*foreach (XmlNode nodeLog in nodeLogs.ChildNodes)
                {
                    idArquivo = nodeLog["attachmentId"].InnerText.ToInt();
                    email = nodeLog["email"].InnerText.ToString();

                    var arquivo = arquivoRepository.GetProdutoVaArquivo(idArquivo);

                    try
                    {
                        List<Attachment> attachments = new List<Attachment>{
                            new Attachment(arquivo.GetCaminhoFisico())
                        };

                        Util.Email.Enviar(email, Util.Email.GetCorpoEmail("logEmail"), "Anexo", attachments);

                        cont++;
                    }
                    catch(Exception e)
                    {
                        erros++;
                    }
                }*/

            }
            catch (Exception e)
            {
                Util.Sistema.Error.TrataErro(e);

                return new Answer(Answer.EnumStatus.Erro, "Erro ao fazer a leitura do arquivo xml");
            }

            #endregion

            return new Answer(Answer.EnumStatus.Ok, string.Empty);
        }
Пример #3
0
		private void attach_RelatorioEmails(RelatorioEmail entity)
		{
			this.SendPropertyChanging();
			entity.Territorio = this;
		}
Пример #4
0
		private void attach_RelatorioEmails(RelatorioEmail entity)
		{
			this.SendPropertyChanging();
			entity.ProdutoVaArquivo = this;
		}
Пример #5
0
 partial void DeleteRelatorioEmail(RelatorioEmail instance);
Пример #6
0
 partial void UpdateRelatorioEmail(RelatorioEmail instance);
Пример #7
0
 partial void InsertRelatorioEmail(RelatorioEmail instance);