Пример #1
0
        public static int?SalvaNodeDrupalRest(Dictionary <string, string> postParameters, bool salvarLog = true, BMConfiguracaoSistema bmConfiguracaoSistema = null, BMLogSincronia bmLogSincronia = null, Usuario usuarioLogado = null)
        {
            var basePath = ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.UrlRestPortal, bmConfiguracaoSistema).Registro;

            var pathRestPortal =
                ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.PathRestPortal, bmConfiguracaoSistema).Registro;

            var logSincronia = new LogSincronia
            {
                Usuario      = usuarioLogado ?? new BMUsuario().ObterUsuarioLogado(),
                Sincronizado = false,
                Url          = basePath + pathRestPortal,
                Action       = "import",
                Method       = "POST",
                Acao         = enumAcao.Atualizar
            };

            logSincronia.ListaPostParameters =
                postParameters.Select(
                    p =>
                    new LogSincroniaPostParameters
            {
                LogSincronia = logSincronia,
                Descricao    = p.Value,
                Registro     = p.Key
            }).ToList();

            logSincronia.Hash = logSincronia.HashObj();

            try
            {
                return(NodeDrupalRest(logSincronia, bmConfiguracaoSistema));
            }
            catch
            {
                if (!salvarLog)
                {
                    throw;
                }

                //dll UTIL não tem acesso a camada "BP" Para Evitar "referencing loop detected"
                bmLogSincronia = bmLogSincronia ?? new BMLogSincronia();

                var tmpLogSincronia = bmLogSincronia.ObterPorFiltro(logSincronia);

                if (tmpLogSincronia != null && tmpLogSincronia.Sincronizado)
                {
                    return(null);
                }

                bmLogSincronia.Salvar(logSincronia);

                return(null);
            }
        }
Пример #2
0
        public static void RemoverNodeDrupalRest(int id, bool salvarLog = true)
        {
            var basePath       = ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.UrlRestPortal).Registro;
            var pathRestPortal =
                ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.PathRestPortal).Registro;
            var logSincronia = new LogSincronia
            {
                Usuario      = (new BMUsuario()).ObterUsuarioLogado(),
                Sincronizado = false,
                Url          = basePath + pathRestPortal,
                Action       = "delete",
                Method       = "POST",
                Acao         = enumAcao.Remover
            };
            var postParameters = new Dictionary <string, string>
            {
                { "node_id", id.ToString() }
            };

            logSincronia.ListaPostParameters =
                postParameters.Select(
                    p =>
                    new LogSincroniaPostParameters
            {
                LogSincronia = logSincronia,
                Descricao    = p.Value,
                Registro     = p.Key
            }).ToList();
            logSincronia.Hash = logSincronia.HashObj();

            try
            {
                NodeDrupalRest(logSincronia);
            }
            catch (Exception)
            {
                if (!salvarLog)
                {
                    throw;
                }

                //dll UTIL não tem acesso a camada "BP" Para Evitar "referencing loop detected"
                var bmLogSincronia = new BMLogSincronia();

                var tmpLogSincronia = bmLogSincronia.ObterPorFiltro(logSincronia);

                if (tmpLogSincronia != null && tmpLogSincronia.Sincronizado)
                {
                    return;
                }

                bmLogSincronia.Salvar(logSincronia);
            }
        }
Пример #3
0
        public static int?NodeDrupalRest(LogSincronia logSincronia, BMConfiguracaoSistema bmConfiguracaoSistema = null)
        {
            var postParameters = logSincronia.GetDictionaryPostParameters();

            var result = JsonUtil.DrupalRestRequest(logSincronia.Url, logSincronia.Action, logSincronia.Method,
                                                    postParameters, false, bmConfiguracaoSistema);

            if (!result.HasValue)
            {
                throw new Exception("DrupalRestRequest retornou false.");
            }
            return(result);
        }
Пример #4
0
        public LogSincronia ObterPorFiltro(LogSincronia model)
        {
            var query = _repositorio.session.Query <LogSincronia>();

            if (model == null)
            {
                return(null);
            }
            if (!string.IsNullOrEmpty(model.Hash))
            {
                query = query.Where(p => p.Hash.Equals(model.Hash));
            }
            if (model.Usuario != null)
            {
                query = query.Where(p => p.Usuario.ID == model.Usuario.ID);
            }
            return(query.FirstOrDefault());
        }
Пример #5
0
        public void Sincronizar(LogSincronia log)
        {
            if (log == null)
            {
                return;
            }
            try
            {
                var result = DrupalUtil.NodeDrupalRest(log).HasValue;

                if (!result)
                {
                    return;
                }

                log.Sincronizado = true;

                _bmLogSincronia.Salvar(log);
            }
            catch
            {
            }
        }
Пример #6
0
 public void Salvar(LogSincronia model)
 {
     _repositorio.Salvar(model);
 }