示例#1
0
        public Denuncia DefinirPropriedades(Intelbras.Message.Helper.MSG0107 xml)
        {
            var crm = new Denuncia(this.Organizacao, this.IsOffline);

            #region Propriedades Crm->Xml


            if (!String.IsNullOrEmpty(xml.CodigoDenuncia))
            {
                if (xml.CodigoDenuncia.Length == 36)
                    crm.ID = new Guid(xml.CodigoDenuncia);
                else
                {
                    resultadoPersistencia.Sucesso = false;
                    resultadoPersistencia.Mensagem = "CodigoDenuncia enviado está fora do padrão(Guid).";
                    return crm;
                }
            }
            if (!String.IsNullOrEmpty(xml.Descricao))
                crm.Descricao = xml.Descricao;
            else
            {
                resultadoPersistencia.Sucesso = false;
                resultadoPersistencia.Mensagem = "Descrição não enviada.";
                return crm;
            }

            if (!String.IsNullOrEmpty(xml.CodigoTipoDenuncia) && xml.CodigoTipoDenuncia.Length == 36)
            {
                TipoDeDenuncia tipoDenuncia = new Servicos.DenunciaService(this.Organizacao, this.IsOffline).ObterTipoDenuncia(new Guid(xml.CodigoTipoDenuncia));
                if (tipoDenuncia != null)
                {
                    crm.Nome = "Denúncia de : " + tipoDenuncia.Nome;
                    crm.TipoDenuncia = new Lookup(tipoDenuncia.ID.Value, "");
                }
                else
                {
                    resultadoPersistencia.Sucesso = false;
                    resultadoPersistencia.Mensagem = "Tipo de Denuncia não cadastrado no Crm.";
                    return crm;
                }

            }
            else
            {
                resultadoPersistencia.Sucesso = false;
                resultadoPersistencia.Mensagem = "CodigoTipoDenuncia fora do padrão(Guid) ou não enviado.";
                return crm;
            }
            if (!String.IsNullOrEmpty(xml.Justificativa))
            {
                crm.Justificativa = xml.Justificativa;
            }
            else
            {
                resultadoPersistencia.Sucesso = false;
                resultadoPersistencia.Mensagem = "Justificativa não enviada.";
                return crm;
            }

            if (!String.IsNullOrEmpty(xml.CodigoCanalDenunciado) && xml.CodigoCanalDenunciado.Length == 36)
            {
                crm.Denunciado = new Lookup(new Guid(xml.CodigoCanalDenunciado), "");
            }
            else
            {
                resultadoPersistencia.Sucesso = false;
                resultadoPersistencia.Mensagem = "Codigo Canal Denunciado não enviado ou fora do padrão(Guid).";
                return crm;
            }
            //Status 
            if (xml.Situacao == 1 || xml.Situacao == 0)
                crm.Status = xml.Situacao;
            else
            {
                resultadoPersistencia.Sucesso = false;
                resultadoPersistencia.Mensagem = "Status não encontrado!";
                return crm;
            }

            if (System.Enum.IsDefined(typeof(Intelbras.CRM2013.Domain.Enum.Denuncia.StatusDenuncia), xml.SituacaoDenuncia))
                crm.RazaoStatus = xml.SituacaoDenuncia;
            else
            {
                resultadoPersistencia.Sucesso = false;
                resultadoPersistencia.Mensagem = "SituacaoDenuncia não encontrada!";
                return crm;
            }
            if (System.Enum.IsDefined(typeof(Intelbras.CRM2013.Domain.Enum.Denuncia.TipoDenunciante), xml.TipoDenunciante))
                crm.TipoDenunciante = xml.TipoDenunciante;
            else
            {
                resultadoPersistencia.Sucesso = false;
                resultadoPersistencia.Mensagem = "SituacaoDenuncia não encontrada!";
                return crm;
            }

            if (xml.CodigoRepresentante.HasValue)
            {

                Contato contato = new Contato(this.Organizacao, this.IsOffline);
                contato = new Intelbras.CRM2013.Domain.Servicos.ContatoService(this.Organizacao, this.IsOffline).BuscaContatoPorCodigoRepresentante(xml.CodigoRepresentante.Value.ToString());

                if (contato != null)
                    crm.Representante = new Lookup(contato.ID.Value, "");
                else
                {
                    resultadoPersistencia.Sucesso = false;
                    resultadoPersistencia.Mensagem = "Representante não encontrado.";
                    return crm;
                }
            }
            else
            {
                crm.AddNullProperty("Representante");
            }

            if (!String.IsNullOrEmpty(xml.CodigoColaboradorIntelbras))
            {
                if (xml.CodigoColaboradorIntelbras.Length == 36)
                    crm.ColaboradorIntebras = new Lookup(new Guid(xml.CodigoColaboradorIntelbras), "");
                else
                {
                    resultadoPersistencia.Sucesso = false;
                    resultadoPersistencia.Mensagem = "CodigoColaboradorIntelbras fora do padrão(Guid).";
                    return crm;
                }
            }
            else
            {
                crm.AddNullProperty("ColaboradorIntebras");
            }

            if (!String.IsNullOrEmpty(xml.CodigoCanalDenunciante))
            {
                if (xml.CodigoCanalDenunciante.Length == 36)
                    crm.CanalDenunciante = new Lookup(new Guid(xml.CodigoCanalDenunciante), "");
                else
                {
                    resultadoPersistencia.Sucesso = false;
                    resultadoPersistencia.Mensagem = "CodigoCanalDenunciante fora do padrão(Guid).";
                    return crm;
                }
            }
            else
            {
                crm.AddNullProperty("CanalDenunciante");
            }

            if (!String.IsNullOrEmpty(xml.CodigoColaboradorCanal))
            {
                if (xml.CodigoColaboradorCanal.Length == 36)
                    crm.ColaboradorCanal = new Lookup(new Guid(xml.CodigoColaboradorCanal), "");
                else
                {
                    resultadoPersistencia.Sucesso = false;
                    resultadoPersistencia.Mensagem = "CodigoColaboradorCanal fora do padrão(Guid).";
                    return crm;
                }
            }
            else
            {
                crm.AddNullProperty("ColaboradorCanal");
            }

            if (!String.IsNullOrEmpty(xml.NomeDenunciante))
            {
                crm.Denunciante = xml.NomeDenunciante;
            }
            else
            {
                resultadoPersistencia.Sucesso = false;
                resultadoPersistencia.Mensagem = "Nome do Denunciante não Enviado.";
                return crm;
            }




            string tipoProprietario;

            if (xml.TipoProprietario == "team" || xml.TipoProprietario == "systemuser")
                tipoProprietario = xml.TipoProprietario;
            else
            {
                resultadoPersistencia.Sucesso = false;
                resultadoPersistencia.Mensagem = "Tipo Proprietário não Enviado.";
                return crm;
            }

            #endregion

            return crm;
        }