private RetornoModel Validar(EditorialBlocoArquivo arquivo)
        {
            if (arquivo == null)
            {
                return(new RetornoModel {
                    Mensagem = "Dados obrigatórios não fornecidos.", Sucesso = false
                });
            }
            if (string.IsNullOrEmpty(arquivo.NomeArquivo))
            {
                if (arquivo.Tipo == "M")
                {
                    return new RetornoModel {
                               Mensagem = "Imagem inválida.", Sucesso = false
                    }
                }
                ;
                else
                {
                    return new RetornoModel {
                               Mensagem = "Audio inválido.", Sucesso = false
                    }
                };
            }

            return(new RetornoModel {
                Mensagem = "OK", Sucesso = true
            });
        }
        public EditorialBlocoArquivo Carregar(int id)
        {
            EditorialBlocoArquivo entidadeRetorno = null;

            string SQL = @"SELECT TOP 1
                                  ID,
                                  EditorialBlocoID,
                                  Tipo,
                                  Descricao,
                                  NomeArquivo,
                                  NomeVideo,
                                  YoutubeID,
                                  UsuarioID,
                                  DataCadastro,
                                  DataModificacao,
                                  Inativo,
                                  Ordem
                             FROM EditorialBlocoArquivo
                            WHERE ID = @ID;";

            using (DbConnection con = _db.CreateConnection())
            {
                con.Open();

                entidadeRetorno = con.Query <EditorialBlocoArquivo>(SQL, new { ID = id }).FirstOrDefault();
                con.Close();
            }
            return(entidadeRetorno);
        }
        public void ExcluirArquivo(int id)
        {
            EditorialBlocoArquivo arquivo = dal.Carregar(id);

            dal.Excluir(id);

            if (arquivo.ID > 0)
            {
                (new EditorialService()).AtualizarCache(new EditorialService().Carregar(new EditorialBlocoService().Carregar(arquivo.EditorialBlocoID).EditorialID));
            }
        }
        public RetornoModel SalvarArquivo(EditorialBlocoArquivo arquivo)
        {
            RetornoModel retorno = null;

            retorno = Validar(arquivo);

            if (retorno.Sucesso)
            {
                arquivo.ID = Salvar(arquivo);
            }

            return(retorno);
        }
        public RetornoModel Inativar(EditorialBlocoArquivo arquivo)
        {
            RetornoModel retorno = null;

            arquivo.DataModificacao = DateTime.Now;

            dal.Inativar(arquivo);

            if (arquivo.ID > 0)
            {
                (new EditorialService()).AtualizarCache(new EditorialService().Carregar(new EditorialBlocoService().Carregar(arquivo.EditorialBlocoID).EditorialID));
            }
            return(retorno);
        }
        public void Inativar(EditorialBlocoArquivo entidade)
        {
            string SQL = @"UPDATE EditorialBlocoArquivo
                              SET UsuarioID           = @UsuarioID,
                                  DataModificacao     = GetDate(),
                                  Inativo             = @Inativo
                            WHERE ID = @ID;";

            using (DbConnection con = _db.CreateConnection())
            {
                con.Open();
                con.Execute(SQL, entidade);
                con.Close();
            }
        }
        private int Salvar(EditorialBlocoArquivo arquivo)
        {
            arquivo.DataModificacao = DateTime.Now;
            if (arquivo.ID > 0)
            {
                arquivo.DataModificacao = DateTime.Now;
                dal.Atualizar(arquivo);
            }
            else
            {
                arquivo.ID = dal.Inserir(arquivo);
            }

            if (arquivo.ID > 0)
            {
                (new EditorialService()).AtualizarCache(new EditorialService().Carregar(new EditorialBlocoService().Carregar(arquivo.EditorialBlocoID).EditorialID));
            }
            return(arquivo.ID);
        }
        public void Atualizar(EditorialBlocoArquivo entidade)
        {
            string SQL = @"UPDATE EditorialBlocoArquivo
                              SET EditorialBlocoID = @EditorialBlocoID,
                                  Tipo             = @Tipo,
                                  Descricao        = @Descricao,
                                  NomeArquivo      = @NomeArquivo,
                                  NomeVideo        = @NomeVideo,
                                  YoutubeID        = @YoutubeID,
                                  UsuarioID        = @UsuarioID,
                                  DataModificacao  = GetDate(),
                                  Inativo          = @Inativo,
                                  Ordem            = @Ordem
                            WHERE ID = @ID;";

            using (DbConnection con = _db.CreateConnection())
            {
                con.Open();
                con.Execute(SQL, entidade);
                con.Close();
            }
        }
        public int Inserir(EditorialBlocoArquivo entidade)
        {
            string SQL = @"INSERT 
                             INTO EditorialBlocoArquivo
                                  (EditorialBlocoID,
                                   Tipo,
                                   Descricao,
                                   NomeArquivo,
                                   NomeVideo,
                                   YoutubeID,
                                   UsuarioID,
                                   DataCadastro,
                                   DataModificacao,
                                   Inativo,
                                   Ordem)
                           VALUES
                                  (@EditorialBlocoID,
                                   @Tipo,
                                   @Descricao,
                                   @NomeArquivo,
                                   @NomeVideo,
                                   @YoutubeID,
                                   @UsuarioID,
                                   GetDate(),
                                   GetDate(),
                                   0,
                                   @Ordem);
                            SELECT SCOPE_IDENTITY();";

            using (DbConnection con = _db.CreateConnection())
            {
                con.Open();
                entidade.ID = Convert.ToInt32(con.ExecuteScalar(SQL, entidade));
                con.Close();
            }

            return(entidade.ID);
        }