public ActionResult GravarPublicacao(string Publicacao, string PublicacaoOld, string ListaUsuarioGrupo, string ListaUsuario)
        {
            NumberFormatInfo provider = NumberFormatInfo.CurrentInfo;
            
            var form = (JObject)JsonConvert.DeserializeObject(Publicacao);

            Publicacao _anterior = new Publicacao();
            Publicacao _novo = new Publicacao();

            _novo.PublicacaoId = (int)Util.GetValue<int>(form, "PublicacaoId");
            _novo.SiteId = GetCurrentSite();
            _novo.PublicacaoTipoId = (int)Util.GetValue<int>(form, "PublicacaoTipo");
            var data = (String)Util.GetValue<String>(form, "Data");
            if (!String.IsNullOrEmpty(data)){
                CultureInfo provider2 = new CultureInfo("pt-BR");
                _novo.Data = Convert.ToDateTime(data, provider2);
            }
            
            var dataValidade = (String)Util.GetValue<String>(form, "DataValidade");
            if (!String.IsNullOrEmpty(dataValidade)){
                CultureInfo provider2 = new CultureInfo("pt-BR");
                _novo.DataValidade = Convert.ToDateTime(dataValidade, provider2);
            }

            _novo.Detalhe.IdiomaId = 1;
            _novo.Detalhe.Titulo = (string)Util.GetValue<string>(form, "Titulo");
            _novo.Detalhe.Resumo = (string)Util.GetValue<string>(form, "Resumo");
            _novo.Detalhe.Conteudo = (string)Util.GetValue<string>(form, "PublicacaoConteudo");
            _novo.Ativo = Convert.ToBoolean((int?)Util.GetValue<int?>(form, "Status"));

            _novo.Destaque = Convert.ToBoolean((int?)Util.GetValue<int?>(form, "ExibirHome"));
            _novo.Posicao = (int?)Util.GetValue<int?>(form, "Posicao");
            _novo.EditoriaId = (int)Util.GetValue<int>(form, "Editoria", 0);
            _novo.Detalhe.Fonte = (string)Util.GetValue<string>(form, "Fonte");
            _novo.Tags = (string)Util.GetValue<string>(form, "tags_1");

            _novo.Complemento.Privado = Convert.ToBoolean((int?)Util.GetValue<int?>(form, "Privado"));

            //var grupos = (string)Util.GetValue<string>(form, "UsuarioGrupo");

            #region --> Validação
            PublicacaoResponse resp = new PublicacaoResponse();
            if (_novo.PublicacaoTipoId == null || _novo.PublicacaoTipoId == 0)
            {
                resp.Resposta.Erro = true;
                if (resp.Resposta.Mensagem.Length > 0) resp.Resposta.Mensagem += "<br />";
                resp.Resposta.Mensagem += "- Selecionar o Tipo de Publicação.";
            }
            if (Util.GetValue<int?>(form, "Status") == null)
            {
                resp.Resposta.Erro = true;
                if (resp.Resposta.Mensagem.Length > 0) resp.Resposta.Mensagem += "<br />";
                resp.Resposta.Mensagem += "- Selecionar o Status: Ativo / Inativo.";
            }
            if (_novo.Complemento.Privado == true && string.IsNullOrEmpty(ListaUsuarioGrupo) && string.IsNullOrEmpty(ListaUsuario))
            {
                resp.Resposta.Erro = true;
                if (resp.Resposta.Mensagem.Length > 0) resp.Resposta.Mensagem += "<br />";
                resp.Resposta.Mensagem += "- Informar pelo menos um Usuário ou Grupo para publicação privada.";
            }
            if (resp.Resposta.Erro)
            {
                return Json(resp, JsonRequestBehavior.AllowGet);
            }
            #endregion

            List<PublicacaoIdiomaExcecao> Extras = new List<PublicacaoIdiomaExcecao>();
            List<PublicacaoIdiomaExcecao> ExtrasOld = new List<PublicacaoIdiomaExcecao>();
            
            #region -> Idiomas Extras
            //-- EN
            PublicacaoIdiomaExcecao ExtraEN = new PublicacaoIdiomaExcecao();
            ExtraEN.IdiomaId = (int)Util.IDIOMA.ENGLISH;
            ExtraEN.Titulo = (string)Util.GetValue<string>(form, "TituloEN");
            ExtraEN.Resumo = (string)Util.GetValue<string>(form, "ResumoEN");
            ExtraEN.Conteudo = (string)Util.GetValue<string>(form, "PublicacaoConteudoEN");
            //ExtraEN.Editora = (string)Util.GetValue<string>(form, "EditoriaEN");
            ExtraEN.Fonte = (string)Util.GetValue<string>(form, "FonteEN");
            Extras.Add(ExtraEN);
            //-- ES
            PublicacaoIdiomaExcecao ExtraES = new PublicacaoIdiomaExcecao();
            ExtraES.IdiomaId = (int)Util.IDIOMA.ESPANHOL;
            ExtraES.Titulo = (string)Util.GetValue<string>(form, "TituloES");
            ExtraES.Resumo = (string)Util.GetValue<string>(form, "ResumoES");
            ExtraES.Conteudo = (string)Util.GetValue<string>(form, "PublicacaoConteudoES");
            ExtraES.Editora = (string)Util.GetValue<string>(form, "EditoriaES");
            //ExtraES.Fonte = (string)Util.GetValue<string>(form, "FonteES");
            Extras.Add(ExtraES);
            //-- FR
            PublicacaoIdiomaExcecao ExtraFR = new PublicacaoIdiomaExcecao();
            ExtraFR.IdiomaId = (int)Util.IDIOMA.FRANCES;
            ExtraFR.Titulo = (string)Util.GetValue<string>(form, "TituloFR");
            ExtraFR.Resumo = (string)Util.GetValue<string>(form, "ResumoFR");
            ExtraFR.Conteudo = (string)Util.GetValue<string>(form, "PublicacaoConteudoFR");
            ExtraFR.Editora = (string)Util.GetValue<string>(form, "EditoriaFR");
            //ExtraFR.Fonte = (string)Util.GetValue<string>(form, "FonteFR");
            Extras.Add(ExtraFR);
            #endregion

            if (PublicacaoOld != null && PublicacaoOld != "null")
            {
                var formOld = (JObject)JsonConvert.DeserializeObject(PublicacaoOld);

                _anterior.PublicacaoId = (int)Util.GetValue<int>(formOld, "UsuarioId");
                _anterior.Titulo = (string)Util.GetValue<string>(formOld, "Nome");
                _anterior.Resumo = (string)Util.GetValue<string>(formOld, "Login");
                //_anterior.Data = (DateTime)Util.GetValue<string>(form, "Data");

                #region -> Idiomas Extras (Dados anterior a alteração)
                //-- EN
                PublicacaoIdiomaExcecao ExtraENOld = new PublicacaoIdiomaExcecao();
                ExtraENOld.IdiomaId = (int)Util.IDIOMA.ENGLISH;
                ExtraENOld.Titulo = (string)Util.GetValue<string>(form, "TituloEN");
                ExtraENOld.Resumo = (string)Util.GetValue<string>(form, "ResumoEN");
                ExtraENOld.Conteudo = (string)Util.GetValue<string>(form, "PublicacaoConteudoEN");
                //ExtraENOld.Editora = (string)Util.GetValue<string>(form, "EditoriaEN");
                ExtraENOld.Fonte = (string)Util.GetValue<string>(form, "FonteEN");
                ExtrasOld.Add(ExtraENOld);
                //-- ES
                PublicacaoIdiomaExcecao ExtraESOld = new PublicacaoIdiomaExcecao();
                ExtraESOld.IdiomaId = (int)Util.IDIOMA.ESPANHOL;
                ExtraESOld.Titulo = (string)Util.GetValue<string>(form, "TituloES");
                ExtraESOld.Resumo = (string)Util.GetValue<string>(form, "ResumoES");
                ExtraESOld.Conteudo = (string)Util.GetValue<string>(form, "PublicacaoConteudoES");
                //ExtraESOld.Editora = (string)Util.GetValue<string>(form, "EditoriaES");
                ExtraESOld.Fonte = (string)Util.GetValue<string>(form, "FonteES");
                ExtrasOld.Add(ExtraESOld);
                //-- FR
                PublicacaoIdiomaExcecao ExtraFROld = new PublicacaoIdiomaExcecao();
                ExtraFROld.IdiomaId = (int)Util.IDIOMA.FRANCES;
                ExtraFROld.Titulo = (string)Util.GetValue<string>(form, "TituloFR");
                ExtraFROld.Resumo = (string)Util.GetValue<string>(form, "ResumoFR");
                ExtraFROld.Conteudo = (string)Util.GetValue<string>(form, "PublicacaoConteudoFR");
                //ExtraFROld.Editora = (string)Util.GetValue<string>(form, "EditoriaFR");
                ExtraFROld.Fonte = (string)Util.GetValue<string>(form, "FonteFR");
                ExtrasOld.Add(ExtraFROld);
                #endregion
            }

            return Json(new PublicacaoDAL().Gravar(_novo, _anterior, Extras, ExtrasOld, ListaUsuarioGrupo, ListaUsuario), JsonRequestBehavior.AllowGet);
        }
示例#2
0
 public Publicacao()
 {
     Detalhe = new PublicacaoIdiomaExcecao();
     Complemento = new PublicacaoComplemento();
     AprovacaoHistorico = new List<PublicacaoHistoricoItem>();
 }