/// <summary>
 /// Deprecated Method for adding a new object to the Ecommerce_Produto EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
 /// </summary>
 public void AddToEcommerce_Produto(Ecommerce_Produto ecommerce_Produto)
 {
     base.AddObject("Ecommerce_Produto", ecommerce_Produto);
 }
 /// <summary>
 /// Attachments the process.
 /// </summary>
 /// <param name="tempFile">The temp file.</param>
 /// <param name="model">The model.</param>
 private static void AttachmentProcess(String tempFile, Ecommerce_Produto model)
 {
     if (model.Ecommerce_Produto_Anexo != null)
     {
         if (model.Ecommerce_Produto_Anexo.Any(pa => pa.CaminhoAnexo.ToLower() == tempFile.ToLower()))
         {
             // Update
             foreach (var item in model.Ecommerce_Produto_Anexo.Where(pa => pa.CaminhoAnexo.ToLower() == tempFile.ToLower()))
             {
                 item.CaminhoAnexo = tempFile;
             }
         }
         else
         {
             // Insert
             model.Ecommerce_Produto_Anexo.Add(CreateAttachment(tempFile));
         }
     }
 }
 /// <summary>
 /// Create a new Ecommerce_Produto object.
 /// </summary>
 /// <param name="idProduto">Initial value of the IdProduto property.</param>
 /// <param name="idProdutoMarca">Initial value of the IdProdutoMarca property.</param>
 /// <param name="dataInclusao">Initial value of the DataInclusao property.</param>
 /// <param name="codigoProduto">Initial value of the CodigoProduto property.</param>
 /// <param name="precoUnitario">Initial value of the PrecoUnitario property.</param>
 /// <param name="isAtivo">Initial value of the IsAtivo property.</param>
 /// <param name="peso">Initial value of the Peso property.</param>
 /// <param name="isDisponivel">Initial value of the IsDisponivel property.</param>
 /// <param name="isMaisVendido">Initial value of the IsMaisVendido property.</param>
 /// <param name="isDestaque">Initial value of the IsDestaque property.</param>
 /// <param name="isLancamento">Initial value of the IsLancamento property.</param>
 /// <param name="isItemPrimeiroPedido">Initial value of the IsItemPrimeiroPedido property.</param>
 /// <param name="nome">Initial value of the Nome property.</param>
 /// <param name="quantidadeDisponivel">Initial value of the QuantidadeDisponivel property.</param>
 public static Ecommerce_Produto CreateEcommerce_Produto(global::System.Int32 idProduto, global::System.Int32 idProdutoMarca, global::System.DateTime dataInclusao, global::System.String codigoProduto, global::System.Decimal precoUnitario, global::System.Boolean isAtivo, global::System.Decimal peso, global::System.Boolean isDisponivel, global::System.Boolean isMaisVendido, global::System.Boolean isDestaque, global::System.Boolean isLancamento, global::System.Boolean isItemPrimeiroPedido, global::System.String nome, global::System.Int32 quantidadeDisponivel)
 {
     Ecommerce_Produto ecommerce_Produto = new Ecommerce_Produto();
     ecommerce_Produto.IdProduto = idProduto;
     ecommerce_Produto.IdProdutoMarca = idProdutoMarca;
     ecommerce_Produto.DataInclusao = dataInclusao;
     ecommerce_Produto.CodigoProduto = codigoProduto;
     ecommerce_Produto.PrecoUnitario = precoUnitario;
     ecommerce_Produto.IsAtivo = isAtivo;
     ecommerce_Produto.Peso = peso;
     ecommerce_Produto.IsDisponivel = isDisponivel;
     ecommerce_Produto.IsMaisVendido = isMaisVendido;
     ecommerce_Produto.IsDestaque = isDestaque;
     ecommerce_Produto.IsLancamento = isLancamento;
     ecommerce_Produto.IsItemPrimeiroPedido = isItemPrimeiroPedido;
     ecommerce_Produto.Nome = nome;
     ecommerce_Produto.QuantidadeDisponivel = quantidadeDisponivel;
     return ecommerce_Produto;
 }
        public JsonResult Editar(Ecommerce_Produto model, List<Ecommerce_Produto_Idioma> Ecommerce_Produto_Idiomas)
        {
            //Recupera as aplicações
            var jsonAplicacoes = Request.Form["hdnAplicacoes"];
            var applications = GetApplications(jsonAplicacoes, new List<Model.Ecommerce_Aplicacao>());

            //Recupera as categorias
            var jsonCategorias = Request.Form["hdnCategorias"];
            var categories = GetCategories(jsonCategorias, new List<Ecommerce_Categoria>());

            // Tenta recuperar o JsonTypes
            var jsonTypes = Request.Form["hdnTipos"];
            var types = GetTypes(jsonTypes, new List<Ecommerce_TipoProduto>());

            // Tenta recuperar o JsonDescriptions
            var jsonDescriptions = Request.Form["hdnDescriptions"];
            var descriptions = GetDescriptions(jsonDescriptions, new List<ProdutoDescricaoModel>());

            // Busca o Hidden com o Nome da Imagem Temporária
            String tempFile = Request.Form["tempFile"];
            if (!String.IsNullOrWhiteSpace(tempFile))
            {
                AttachmentProcess(tempFile, model);
            }
            
            //Atualiza as aplicações para determinado produto
            if (model.Ecommerce_Produto_Aplicacao != null)
            {
                if (applications != null && applications.Count > 0)
                {
                    for (var i = 0; i < applications.Count; i++)
                    {
                        model.Ecommerce_Produto_Aplicacao.Add(new Ecommerce_Produto_Aplicacao
                        {
                            IdAplicacao = applications[i].IdAplicacao
                        });
                    }
                }
            }

            //Atualiza as categorias para determinado produto
            if (model.Ecommerce_Produto_Categoria != null)
            {
                if (categories != null && categories.Count > 0)
                {
                    for (var i = 0; i < categories.Count; i++)
                    {
                        model.Ecommerce_Produto_Categoria.Add(new Ecommerce_Produto_Categoria
                        {
                            IdCategoria = categories[i].IdCategoria,
                            DataInclusao = DateTime.Now
                        });
                    }
                }else
                {
                    return Json(new JsonRequestResult { ResultType = JsonRequestResultType.Alert, Message = Resources.Resource.Msg_Produto_CadastroSemCategoria}, JsonRequestBehavior.AllowGet);
                }
            }

            //Atualiza os "TipoProdutos" para determinado produto
            if (model.Ecommerce_Produto_TipoProduto != null)
            {
                if (types != null && types.Count > 0)
                {
                    for (var i = 0; i < types.Count; i++)
                    {
                        model.Ecommerce_Produto_TipoProduto.Add(new Ecommerce_Produto_TipoProduto
                                                                    {
                                                                        IdTipoProduto = types[i].IdTipoProduto
                                                                    });
                    }
                }
            }

            // Atualiza as descrições para cada Idioma
            for (var i = 0; i < Ecommerce_Produto_Idiomas.Count; i++)
            {
                if (descriptions != null)
                {
                    Ecommerce_Produto_Idiomas[i].Descricao = SerializeDescription(descriptions[i]);
                }

                model.Ecommerce_Produto_Idioma.Add(Ecommerce_Produto_Idiomas[i]);
            }

            var linhaSelected = Request.Form["linhaProduto"];

            model.Ecommerce_Produto_Linha.Add(new Ecommerce_Produto_Linha { IdLinha = Convert.ToInt32(linhaSelected) });

            new ProdutoService().UpdateProduct(model);

            return Json(new JsonRequestResult { ResultType = JsonRequestResultType.Success, Message = Constants._msgUpdateSuccess, ReturnUrl = Url.Content("~/Admin/Produto/") }, JsonRequestBehavior.AllowGet);
        }