/// <summary>
 /// Create a new tblFotosVeiculo object.
 /// </summary>
 /// <param name="idFotoVeiculo">Initial value of the idFotoVeiculo property.</param>
 /// <param name="urlFoto">Initial value of the urlFoto property.</param>
 /// <param name="dataCadastro">Initial value of the dataCadastro property.</param>
 /// <param name="idVeiculo">Initial value of the idVeiculo property.</param>
 public static tblFotosVeiculo CreatetblFotosVeiculo(global::System.Int32 idFotoVeiculo, global::System.String urlFoto, global::System.DateTime dataCadastro, global::System.Int32 idVeiculo)
 {
     tblFotosVeiculo tblFotosVeiculo = new tblFotosVeiculo();
     tblFotosVeiculo.idFotoVeiculo = idFotoVeiculo;
     tblFotosVeiculo.urlFoto = urlFoto;
     tblFotosVeiculo.dataCadastro = dataCadastro;
     tblFotosVeiculo.idVeiculo = idVeiculo;
     return tblFotosVeiculo;
 }
 /// <summary>
 /// Deprecated Method for adding a new object to the tblFotosVeiculo EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
 /// </summary>
 public void AddTotblFotosVeiculo(tblFotosVeiculo tblFotosVeiculo)
 {
     base.AddObject("tblFotosVeiculo", tblFotosVeiculo);
 }
        public ActionResult GravarFotos(HttpPostedFileBase file, int idVeiculo, int tamanhoArquivo, FormCollection formularioArquivo)
        {
            #region Variáveis e Objetos
            char[] quebraCaminho = { '\\' };
            string caminhoFisico = RetornarCaminhoArquivo(idVeiculo, "F");
            string caminhoVirtual = RetornarCaminhoArquivo(idVeiculo, "V");
            string nomeArquivo = file.FileName.Split(quebraCaminho)[file.FileName.Split(quebraCaminho).Length - 1];
            nomeArquivo = nomeArquivo.Replace(" ", "");
            string path = Path.Combine(Server.MapPath(caminhoVirtual), nomeArquivo);
            string mensagem = "";
            string tipoErro = "";
            //string tabelaArquivos   = "";
            FileInfo arquivo = new FileInfo(caminhoFisico + nomeArquivo);
            bool salvarArquivo;

            //Tamanho máximo permitido
            string strTamanhoArquivo = Ferramenta.ConvertByteToMB(file.ContentLength).ToString();

            //Tamanho do arquivo
            string strTamanhoMaximo;

            #endregion

            //Busca o tamanho máximo do arquivo da tabela de parâmetros
            using (CarOnlineEntities DB = new CarOnlineEntities())
            {
                tblParametro parametros = DB.tblParametro.FirstOrDefault(p => p.idParametro.Equals(1));
                tamanhoArquivo = Convert.ToInt32(parametros.valor);
            }

            strTamanhoMaximo = Ferramenta.ConvertByteToMB(tamanhoArquivo).ToString();

            if ((file.ContentType == "image/jpeg") || (file.ContentType == "image/gif") || (file.ContentType == "image/png"))
            {
                //Se o tamanho do arquivo é compatível com o tamanho definido do componente
                if (!(file.ContentLength > tamanhoArquivo))
                {
                    //Se o caminho físico não existir cria o mesmo
                    if (!Directory.Exists(caminhoFisico))
                        Directory.CreateDirectory(caminhoFisico);
                    using (TransactionScope transacao = new TransactionScope())
                    {
                        try
                        {
                            //Salva o arquivo no caminho virtual da empresa
                            file.SaveAs(path);
                            using (CarOnlineEntities DB = new CarOnlineEntities())
                            {
                                tblFotosVeiculo foto = new tblFotosVeiculo();
                                foto.dataCadastro = DateTime.Now;
                                foto.urlFoto = caminhoVirtual + nomeArquivo;
                                foto.idVeiculo = idVeiculo;
                                DB.tblFotosVeiculo.AddObject(foto);
                                DB.SaveChanges();

                                transacao.Complete();
                                //Retorna a tabela para a página
                                //return Content(MontarTabelaArquivo(caminhoFisico, idVeiculo));
                               // return RedirectToAction("Alteracao", new { id = idVeiculo });

                                mensagem = "Arquivo gravado com sucesso!";
                                var data = new { mensagem };
                                return Json(data);
                            }
                        }
                        catch (Exception ex)
                        {
                            transacao.Dispose();
                            mensagem = "Não foi possível gravar o arquivo.Contate o administrador ou tente mais tarde.";
                            var data = new { mensagem };
                            return Json(data);
                        }
                    }
                }
                else
                {
                    mensagem = "O tamanho do arquivo é inválido ("+Math.Round(Convert.ToDecimal(strTamanhoArquivo),2)+" MB).O máximo permitido é "+strTamanhoMaximo+" MB.";
                    var data = new {mensagem};
                    return Json(data);
                }
            }

            else
            {
                mensagem = "O formato do arquivo é inválido formatos válidos(.jpg .gif . png)";
                var data = new { mensagem };
                return Json(data);
            }
        }