public string Importar(HttpPostedFileBase fileData, FormCollection forms, string tipo)
        {
            try
            {
                var openXmlHelper = new OpenXmlHelper();
                var memoryStream = new MemoryStream();

                fileData.InputStream.CopyTo(memoryStream);

                var listaDados = openXmlHelper.LerPlanilhaDados(memoryStream);

                int codigo = 0;
                tipo = tipo.Substring(0, tipo.IndexOf('?'));

                switch (EnumHelper.ParseEnumDescription<EnumTipoImportacao>(tipo))
                {
                    case EnumTipoImportacao.Fonte:
                        FonteRepositorio.ExcluirTudo(WorkLifetimeManager.Value);

                        foreach (var item in listaDados)
                        {
                            Int32.TryParse(item[0].ToString(), out codigo);
                            FonteRepositorio.Salvar(WorkLifetimeManager.Value,
                                new Fonte { Codigo = codigo, Descricao = item[1].ToString() });
                        }
                        break;
                    case EnumTipoImportacao.Linha:
                        LinhaRepositorio.ExcluirTudo(WorkLifetimeManager.Value);
                        foreach (var item in listaDados)
                        {
                            Int32.TryParse(item[0].ToString(), out codigo);
                            LinhaRepositorio.Salvar(WorkLifetimeManager.Value, new Linha { Codigo = codigo, Descricao = item[1].ToString() });
                        }
                        break;
                    case EnumTipoImportacao.Produto:
                        ProdutoRepositorio.ExcluirTudo(WorkLifetimeManager.Value);
                        foreach (var item in listaDados)
                        {
                            Int32.TryParse(item[0].ToString(), out codigo);
                            ProdutoRepositorio.Salvar(WorkLifetimeManager.Value, new Produto { Codigo = codigo, Descricao = item[1].ToString() });
                        }
                        break;
                }

                WorkLifetimeManager.Value.Commit();

                return "Dados importados com sucesso!";
            }
            catch
            {
                WorkLifetimeManager.Value.Rollback();
                return "Não foi possível importar os dados. Verifique a planilha e tente novamente!";
            }
        }
        //public JsonResult Exportar(int id)
        //{
        //    bool sucesso;
        //    string mensagem;
        //    var nomeArquivo = string.Empty;
        //    try
        //    {
        //        var laudo = LaudoRepositorio.Obter(WorkLifetimeManager.Value, id);
        //        if (laudo == null)
        //            throw new InvalidOperationException(string.Format("Laudo não encontrado (Id: {0})", id));
        //        nomeArquivo = ExportarLaudo(laudo);
        //        sucesso = true;
        //        mensagem = "Arquivo exportado com sucesso!";
        //    }
        //    catch (Exception exception)
        //    {
        //        sucesso = false;
        //        mensagem = "Não foi possível realizar a operação: " + exception.Message;
        //    }
        //    return Json(new { sucesso, mensagem, nomeArquivo });
        //}
        public ActionResult Exportar(int id)
        {
            OpenXmlHelper openXmlHelper = new OpenXmlHelper();
            MemoryStream memoryStream = new MemoryStream();

            var laudo = LaudoRepositorio.Obter(WorkLifetimeManager.Value, id);

            var nomeArquivo = string.Format("UPredio_{0}.xlsx", laudo.Referencia.Replace("/", ""));

            HttpContext.Response.Clear();
            HttpContext.Response.AddHeader("content-disposition", string.Format("attachment;filename={0}", nomeArquivo));
            HttpContext.Response.Charset = "";
            HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache);
            HttpContext.Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";

            WorkLifetimeManager.Value.BeginTransaction(IsolationLevel.Serializable);

            try
            {
                var configuracao = ConfiguracaoRepositorio.Obter(WorkLifetimeManager.Value);
                var caminhoTemplate = Path.Combine(Server.MapPath("~/Content/uploads/"), "Source.xlsx");
                //var caminhoArquivo = Path.Combine(Server.MapPath("~/Content/uploads/"), nomeArquivo);

                using (FileStream source = System.IO.File.Open(caminhoTemplate, FileMode.Open))
                {
                    source.CopyTo(memoryStream);
                    openXmlHelper.PreencherPlanilha(memoryStream, laudo, configuracao);
                }

                laudo = LaudoRepositorio.Obter(WorkLifetimeManager.Value, laudo.LaudoID);
                laudo.Status = (int)EnumStatusLaudo.Concluido;

                LaudoRepositorio.Salvar(WorkLifetimeManager.Value, laudo);

                WorkLifetimeManager.Value.Commit();
            }
            catch
            {
                WorkLifetimeManager.Value.Rollback();
            }

            memoryStream.Flush();
            memoryStream.WriteTo(HttpContext.Response.OutputStream);
            HttpContext.Response.End();

            return File(memoryStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", nomeArquivo);
        }