public FileResult Visualizar(string hash)
        {
            var arquivoRules = new ArquivoRules();
            var arquivo = arquivoRules.GetByHash(hash);

            return File(Application.Path("/Public/files/" + arquivo.Hash), arquivo.Tipo);
        }
        public ActionResult Thumb(string hash)
        {
            var arquivoRules = new ArquivoRules();
            var arquivo = arquivoRules.GetByHash(hash);

            return base.File(Application.Path("/Public/files/" + arquivo.Hash), arquivo.Tipo);
        }
        public string Remove(Arquivo arquivo)
        {
            var arquivoRules = new ArquivoRules();

            if (!arquivoRules.Remove(arquivo))
            {
                return Error(arquivoRules.MessageError);
            }

            return Success(arquivo);
        }
        public string Add()
        {
            var arquivoRules = new ArquivoRules();
            var arquivo = arquivoRules.Add(Request.Files[0]);

            if (arquivo == null) {
                return Error(arquivoRules.MessageError);
            }

            return Success(arquivo);
        }
        public ActionResult Download(string hash)
        {
            var arquivoRules = new ArquivoRules();
            var arquivo = arquivoRules.GetByHash(hash);

            System.Net.Mime.ContentDisposition cd = new System.Net.Mime.ContentDisposition
            {
                FileName = arquivo.Nome,
                Inline = true,
            };

            Response.AppendHeader("Content-Disposition", cd.ToString());

            return File(Application.Path("/Public/files/" + arquivo.Hash), "application/force-download");
        }