public ActionResult Edit([Bind(Include = "OrgID,EventosID,NomeEvento,Descricao,Data,Link")] Evento evento, HttpPostedFileBase file, [Bind(Include = "Endereco,Cidade,CodPostal")] Morada morada, HttpPostedFileBase[] files, [Bind(Include = "EventoID,FotoURL")] FotoGallery fotoGallery, List <string> artistas)
        {
            if (ModelState.IsValid)
            {
                /*verificaçao morada inserida*/
                var _path     = "";
                var _FileName = "";
                if (file != null)
                {
                    if (file.ContentLength > 0)
                    {
                        //verifica se o ficheiro é imagem
                        if (Path.GetExtension(file.FileName).ToLower() == ".jpg" ||
                            Path.GetExtension(file.FileName).ToLower() == ".png" ||
                            Path.GetExtension(file.FileName).ToLower() == ".jpeg")
                        {
                            _FileName = Path.GetFileName(file.FileName);
                            _path     = Path.Combine(Server.MapPath("~/Content/Images/"), _FileName);
                            file.SaveAs(_path);
                            evento.Link = "/Content/Images/" + _FileName;
                        }
                    }
                }
                else
                {
                    evento.Link = "/Content/Images/default.jpg";
                }
                /*Fim de verificaçao morada inserida*/
                if (files != null)
                {
                    foreach (var foto in files)
                    {
                        var _fotopath     = "";
                        var _fotoFileName = "";
                        if (foto != null)
                        {
                            if (foto.ContentLength > 0)
                            {
                                //verifica se o ficheiro é imagem
                                if (Path.GetExtension(foto.FileName).ToLower() == ".jpg" ||
                                    Path.GetExtension(foto.FileName).ToLower() == ".png" ||
                                    Path.GetExtension(foto.FileName).ToLower() == ".jpeg")
                                {
                                    _fotoFileName = Path.GetFileName(foto.FileName);
                                    _fotopath     = Path.Combine(Server.MapPath("~/Content/Images/"), _fotoFileName);
                                    foto.SaveAs(_fotopath);
                                    fotoGallery.FotoURL  = "/Content/Images/" + _fotoFileName;
                                    fotoGallery.EventoID = evento.EventosID;
                                    db.FotoGalleries.Add(fotoGallery);
                                    db.SaveChanges();
                                }
                            }
                        }
                    }
                }

                /*Verificar morada inserida*/
                var x = db.Moradas.FirstOrDefault(m => m.Endereco == morada.Endereco && m.CodPostal == morada.CodPostal && m.Cidade == morada.Cidade);

                //x == null// não existe na base de dados

                if (x != null)
                {
                    evento.MoradaID = x.MoradaID;
                }
                else
                {
                    db.Moradas.Add(morada);
                    db.SaveChanges();
                    evento.MoradaID = morada.MoradaID;
                }
                /*Fim de verificaçao morada inserida*/



                /*organizadores*/
                //evento.OrgID = Convert.ToInt32(User.Identity.GetUserId());
                //evento.OrgID = 1;
                /*oraganizadores*/


                // mostra artistas

                var           ArtistasDoEv = evento.Artistas.ToList();
                List <string> Art          = new List <string>();
                ArtistasDoEv.ForEach(a => Art.Add(a.Nome));
                ViewBag.Artistas = Art;

                //recebe artistas da vista e cria listagem dos tags
                List <string> listagem = new List <string>();
                listagem = artistas;



                foreach (var a in listagem)
                {
                    var y = db.Artistas.FirstOrDefault(at => at.Nome == a);
                    if (y != null)
                    {
                        evento.Artistas.Add(y);
                    }
                    else
                    {
                        Artista naocriado = new Artista();
                        naocriado.Nome            = a;
                        naocriado.GeneroMusicalID = 38;
                        naocriado.LinkFoto        = "/Content/Images/defaultArt.png";;

                        db.Artistas.Add(naocriado);
                        db.SaveChanges();
                        evento.Artistas.Add(naocriado);
                        db.SaveChanges();
                    }
                }

                //db.Entry(listagem).State = EntityState.Modified; ////altera
                db.Entry(evento).State = EntityState.Modified;
                db.SaveChanges();
            }
            ViewBag.OrgID = new SelectList(db.Organizadores, "OrgID", "NomeOrg", evento.OrgID);
            return(View("Index"));
        }
        public ActionResult Create([Bind(Include = "NomeEvento,Descricao,Data,Link")] Evento evento, HttpPostedFileBase file, [Bind(Include = "Endereco,Cidade,CodPostal")] Morada morada, HttpPostedFileBase[] files, [Bind(Include = "EventoID,FotoURL")] FotoGallery fotoGallery, string entradadetags)
        {
            /*imagem principal*/

            var _path     = "";
            var _FileName = "";

            if (file != null)
            {
                if (file.ContentLength > 0)
                {
                    //verifica se o ficheiro é imagem
                    if (Path.GetExtension(file.FileName).ToLower() == ".jpg" ||
                        Path.GetExtension(file.FileName).ToLower() == ".png" ||
                        Path.GetExtension(file.FileName).ToLower() == ".jpeg")
                    {
                        _FileName = Path.GetFileName(file.FileName);
                        _path     = Path.Combine(Server.MapPath("~/Content/Images/"), _FileName);
                        file.SaveAs(_path);
                        evento.Link = "/Content/Images/" + _FileName;
                    }
                }
            }
            else
            {
                evento.Link = "/Content/Images/default.jpg";
            }



            /*fim imagem principal*/

            /*Verificar morada inserida*/
            var x = db.Moradas.FirstOrDefault(m => m.Endereco == morada.Endereco && m.CodPostal == morada.CodPostal && m.Cidade == morada.Cidade);

            //x == null// não existe na base de dados

            if (x != null)
            {
                evento.MoradaID = x.MoradaID;
            }
            else
            {
                db.Moradas.Add(morada);
                db.SaveChanges();
                evento.MoradaID = morada.MoradaID;
            }
            /*Fim de verificaçao morada inserida*/



            //recebe artistas da vista e cria listagem dos tags
            //List<string> listagem = new List<string>();
            //listagem = artistas;



            evento.OrgID = Convert.ToInt32(User.Identity.GetUserId());
            //evento.OrgID = 1;
            db.Eventos.Add(evento);
            db.SaveChanges();

            //separacao do string de entrada em varios strings

            string[] nova = entradadetags.ToString().Split(',');

            //for (int y = 0; y < values.Length; y++) {
            //    string[] nova = nova.Add(values);
            //}



            foreach (var a in nova)
            {
                var y = db.Artistas.FirstOrDefault(at => at.Nome == a);
                if (y != null)
                {
                    evento.Artistas.Add(y);
                }
                else
                {
                    Artista naocriado = new Artista();
                    naocriado.Nome            = a;
                    naocriado.GeneroMusicalID = 38;
                    naocriado.LinkFoto        = "/Content/Images/defaultArt.png";

                    db.Artistas.Add(naocriado);
                    db.SaveChanges();
                    evento.Artistas.Add(naocriado);
                    db.SaveChanges();

                    //TempData["msg"] = "<script>alert('Hi this is a message');</script>";
                }

                if (files != null)
                {
                    foreach (var foto in files)
                    {
                        var _fotopath     = "";
                        var _fotoFileName = "";
                        if (foto != null)
                        {
                            if (foto.ContentLength > 0)
                            {
                                //verifica se o ficheiro é imagem
                                if (Path.GetExtension(foto.FileName).ToLower() == ".jpg" ||
                                    Path.GetExtension(foto.FileName).ToLower() == ".png" ||
                                    Path.GetExtension(foto.FileName).ToLower() == ".jpeg")
                                {
                                    _fotoFileName = Path.GetFileName(foto.FileName);
                                    _fotopath     = Path.Combine(Server.MapPath("~/Content/Images/"), _fotoFileName);
                                    foto.SaveAs(_fotopath);
                                    fotoGallery.FotoURL  = "/Content/Images/" + _fotoFileName;
                                    fotoGallery.EventoID = evento.EventosID;
                                    db.FotoGalleries.Add(fotoGallery);
                                    db.SaveChanges();
                                }
                            }
                        }
                    }
                }
            }
            return(RedirectToAction("Index"));


            //return View(evento);
        }