public Sitio ConvertENToModelUI(SitioEN en)
        {
            Sitio sit = new Sitio();
            sit.Nombre = en.Nombre;
            sit.NombreUsuario = en.Usuario.NomUsu;
            sit.Localizacion = en.Localizacion;
            sit.Provincia = en.Provincia;
            sit.TipoSitio = en.TipoSitio;
            sit.Videos = en.Videos;
            sit.Fecha = en.FechaCreacion;
            sit.Descripcion = en.Descripcion;
            sit.Puntuacion = en.PuntuacionMedia;
            IList<Comentario> comentarios = new List<Comentario>();
            AssemblerComentario auxiliar= new AssemblerComentario();
            Comentario auxiliar2 = new Comentario();
            foreach (ComentarioEN com in en.Comentarios)
            {
                auxiliar2 = auxiliar.ConvertENToModelUI(com);
                //sit.Comentarios.Add(new AssemblerComentario (ConvertENToModelUI (com)));
                comentarios.Add(auxiliar2);
                //comentarios.Add(com.Id);
            }
            sit.Comentarios = comentarios;

            IList<TravelnookGenNHibernate.Enumerated.Travelnook.TipoActividadesEnum> actividades = new List<TravelnookGenNHibernate.Enumerated.Travelnook.TipoActividadesEnum>();
            foreach (ActividadEN act in en.Actividades)
            {
                actividades.Add(act.Tipo);
            }
            sit.Actividades = actividades;
            IList<string> actividadesimprimir = new List<string>();
            foreach (ActividadEN act in en.Actividades)
            {
                string aux = Convert.ToString(act.Tipo);
                actividadesimprimir.Add(aux);
            }
            sit.Actividadesimprimir = actividadesimprimir;

            IList<string> fotosaux = new List<string>();
            foreach (string act in en.Fotos)
            {

                fotosaux.Add(act);
            }
            sit.fotos = fotosaux;
            IList<string> videosaux = new List<string>();
            foreach (string auxvid in en.Videos)
            {

                videosaux.Add(auxvid);
            }
            sit.Videos = videosaux;
            return sit;
        }
        public ActionResult SitioPorNombre(Sitio sitio)
        {
            try
            {
                string nameSitio = Request.Form["nombre"];
                SessionInitialize();
                SitioCAD sitCAD = new SitioCAD(session);
                SitioCEN cen = new SitioCEN(sitCAD);

                if (nameSitio != "")
                {
                    SitioEN sitEN = cen.DevuelveSitioPorNombre(nameSitio);
                    Sitio sit = new AssemblerSitio().ConvertENToModelUI(sitEN);
                    return View(sit);
                }
                else
                {
                    IList<SitioEN> lista = cen.DevuelveSitios(0, -1);
                    IList<Sitio> sit = new AssemblerSitio().ConvertListENToModel(lista);
                    return View(lista);
                }
            }
            catch
            {
                return View();
            }
        }
        public ActionResult Edit(Sitio sit, IList<HttpPostedFileBase> imagenes, IList<HttpPostedFileBase> videos, string Tipo_formulario)
        {
            try
            {
                 string fileName = "", path = "";
                IList<string> fotografias = new List<string>();
                IList<string> videosSitio = new List<string>();
                SessionInitialize();
                SitioEN sitEN = new SitioCAD(session).DevuelveSitioPorNombre(sit.Nombre);

                //System.IO.Directory.CreateDirectory(Server.MapPath("~/Images/Uploads/" + sit.Nombre)); si se puede cambiar el nombre descomentar
               // System.IO.Directory.CreateDirectory(Server.MapPath("~/Videos/Uploads/" + sit.Nombre));
                SitioCEN cen = new SitioCEN();
                foreach (HttpPostedFileBase aux in imagenes)    //para cada imagen
                {
                    if (aux != null && aux.ContentLength > 0)
                    {
                        // extract only the fielname
                        fileName = Path.GetFileName(aux.FileName);
                        //Directory.CreateDirectory("~/Images/Uploads/" + sit.Nombre);
                        // store the file inside ~/App_Data/uploads folder
                        path = Path.Combine(Server.MapPath("~/Images/Uploads/" + sit.Nombre), fileName);
                        //string pathDef = path.Replace(@"\\", @"\");
                        aux.SaveAs(path);
                        sitEN.Fotos.Add("/Images/Uploads/" + sit.Nombre + "/" + fileName);
                    }
                }
                foreach (HttpPostedFileBase aux2 in videos)    //para cada imagen
                {
                    if (aux2 != null && aux2.ContentLength > 0)
                    {
                        // extract only the fielname
                        fileName = Path.GetFileName(aux2.FileName);
                        //Directory.CreateDirectory("~/Images/Uploads/" + sit.Nombre);
                        // store the file inside ~/App_Data/uploads folder
                        path = Path.Combine(Server.MapPath("~/Videos/Uploads/" + sit.Nombre), fileName);
                        //string pathDef = path.Replace(@"\\", @"\");
                        aux2.SaveAs(path);
                        sitEN.Videos.Add("/Videos/Uploads/" + sit.Nombre + "/" + fileName);
                    }
                }
                SessionClose();
                 TravelnookGenNHibernate.Enumerated.Travelnook.TipoSitioEnum tipoaux= new TravelnookGenNHibernate.Enumerated.Travelnook.TipoSitioEnum();
                tipoaux = (TravelnookGenNHibernate.Enumerated.Travelnook.TipoSitioEnum)Enum.Parse(typeof(TravelnookGenNHibernate.Enumerated.Travelnook.TipoSitioEnum),Tipo_formulario);

                IList<TravelnookGenNHibernate.Enumerated.Travelnook.TipoActividadesEnum> actividadesaux = new List<TravelnookGenNHibernate.Enumerated.Travelnook.TipoActividadesEnum>();

                if (sit.camping == true)
                    actividadesaux.Add((TravelnookGenNHibernate.Enumerated.Travelnook.TipoActividadesEnum)Enum.Parse(typeof(TravelnookGenNHibernate.Enumerated.Travelnook.TipoActividadesEnum), "camping"));
                if (sit.deportes == true)
                    actividadesaux.Add((TravelnookGenNHibernate.Enumerated.Travelnook.TipoActividadesEnum)Enum.Parse(typeof(TravelnookGenNHibernate.Enumerated.Travelnook.TipoActividadesEnum), "deportes"));
                if (sit.deportes_acuaticos == true)
                    actividadesaux.Add((TravelnookGenNHibernate.Enumerated.Travelnook.TipoActividadesEnum)Enum.Parse(typeof(TravelnookGenNHibernate.Enumerated.Travelnook.TipoActividadesEnum), "deportes_acuaticos"));
                if (sit.gastronomia == true)
                    actividadesaux.Add((TravelnookGenNHibernate.Enumerated.Travelnook.TipoActividadesEnum)Enum.Parse(typeof(TravelnookGenNHibernate.Enumerated.Travelnook.TipoActividadesEnum), "gastronomia"));
                if (sit.ludicas == true)
                    actividadesaux.Add((TravelnookGenNHibernate.Enumerated.Travelnook.TipoActividadesEnum)Enum.Parse(typeof(TravelnookGenNHibernate.Enumerated.Travelnook.TipoActividadesEnum), "ludicas"));
                if (sit.ocio_nocturno == true)
                    actividadesaux.Add((TravelnookGenNHibernate.Enumerated.Travelnook.TipoActividadesEnum)Enum.Parse(typeof(TravelnookGenNHibernate.Enumerated.Travelnook.TipoActividadesEnum), "ocio_nocturno"));
                if (sit.senderismo == true)
                    actividadesaux.Add((TravelnookGenNHibernate.Enumerated.Travelnook.TipoActividadesEnum)Enum.Parse(typeof(TravelnookGenNHibernate.Enumerated.Travelnook.TipoActividadesEnum), "senderismo"));
                if (sit.culturales == true)
                    actividadesaux.Add((TravelnookGenNHibernate.Enumerated.Travelnook.TipoActividadesEnum)Enum.Parse(typeof(TravelnookGenNHibernate.Enumerated.Travelnook.TipoActividadesEnum), "culturales"));
               //falta el unrelationer(arriba antes de sesionclose) y volver a relacionar
                cen.ModificarSitio(sit.Nombre, sit.Provincia, sit.Descripcion, sitEN.Puntuacion, sitEN.Fotos, sitEN.Videos, sit.Localizacion, sitEN.FechaCreacion, sitEN.NumPuntuados, sitEN.PuntuacionMedia, tipoaux);

                return RedirectToAction("Details", new { id = sit.Nombre });
            }
            catch
            {
                return View();
            }
        }
        public ActionResult Create(Sitio sit, IList<HttpPostedFileBase> imagenes, IList<HttpPostedFileBase> videos, string Tipo_formulario)
        {
            string fileName = "", path = "";
            IList<string> fotografias = new List<string>();
            IList<string> videosSitio = new List<string>();
            System.IO.Directory.CreateDirectory(Server.MapPath("~/Images/Uploads/" + sit.Nombre));
            System.IO.Directory.CreateDirectory(Server.MapPath("~/Videos/Uploads/" + sit.Nombre));
            // Verify that the user selected a file
            foreach (HttpPostedFileBase aux in imagenes)    //para cada imagen
            {
                if (aux != null && aux.ContentLength > 0)
                {
                    // extract only the fielname
                    fileName = Path.GetFileName(aux.FileName);
                    //Directory.CreateDirectory("~/Images/Uploads/" + sit.Nombre);
                    // store the file inside ~/App_Data/uploads folder
                    path = Path.Combine(Server.MapPath("~/Images/Uploads/" + sit.Nombre), fileName);
                    //string pathDef = path.Replace(@"\\", @"\");
                    aux.SaveAs(path);
                    fotografias.Add("/Images/Uploads/" + sit.Nombre + "/" + fileName);
                }
            }
            foreach (HttpPostedFileBase aux2 in videos)    //para cada imagen
            {
                if (aux2 != null && aux2.ContentLength > 0)
                {
                    // extract only the fielname
                    fileName = Path.GetFileName(aux2.FileName);
                    //Directory.CreateDirectory("~/Images/Uploads/" + sit.Nombre);
                    // store the file inside ~/App_Data/uploads folder
                    path = Path.Combine(Server.MapPath("~/Videos/Uploads/" + sit.Nombre), fileName);
                    //string pathDef = path.Replace(@"\\", @"\");
                    aux2.SaveAs(path);
                    videosSitio.Add("/Videos/Uploads/" + sit.Nombre + "/" + fileName);
                }
            }

            try
            {
                //fileName = "/Images/Uploads/"+ sit.Nombre + "/" + fileName;
                if (sit.Localizacion == null)
                    sit.Localizacion = "";
                SitioCEN cen = new SitioCEN();
                DateTime fechaActual = DateTime.Today;
                TravelnookGenNHibernate.Enumerated.Travelnook.TipoSitioEnum tipoaux= new TravelnookGenNHibernate.Enumerated.Travelnook.TipoSitioEnum();
                tipoaux = (TravelnookGenNHibernate.Enumerated.Travelnook.TipoSitioEnum)Enum.Parse(typeof(TravelnookGenNHibernate.Enumerated.Travelnook.TipoSitioEnum),Tipo_formulario);

                IList<TravelnookGenNHibernate.Enumerated.Travelnook.TipoActividadesEnum> actividadesaux = new List<TravelnookGenNHibernate.Enumerated.Travelnook.TipoActividadesEnum>();

                if (sit.camping == true)
                    actividadesaux.Add((TravelnookGenNHibernate.Enumerated.Travelnook.TipoActividadesEnum)Enum.Parse(typeof(TravelnookGenNHibernate.Enumerated.Travelnook.TipoActividadesEnum), "camping"));
                if (sit.deportes == true)
                    actividadesaux.Add((TravelnookGenNHibernate.Enumerated.Travelnook.TipoActividadesEnum)Enum.Parse(typeof(TravelnookGenNHibernate.Enumerated.Travelnook.TipoActividadesEnum), "deportes"));
                if (sit.deportes_acuaticos == true)
                    actividadesaux.Add((TravelnookGenNHibernate.Enumerated.Travelnook.TipoActividadesEnum)Enum.Parse(typeof(TravelnookGenNHibernate.Enumerated.Travelnook.TipoActividadesEnum), "deportes_acuaticos"));
                if (sit.gastronomia == true)
                    actividadesaux.Add((TravelnookGenNHibernate.Enumerated.Travelnook.TipoActividadesEnum)Enum.Parse(typeof(TravelnookGenNHibernate.Enumerated.Travelnook.TipoActividadesEnum), "gastronomia"));
                if (sit.ludicas == true)
                    actividadesaux.Add((TravelnookGenNHibernate.Enumerated.Travelnook.TipoActividadesEnum)Enum.Parse(typeof(TravelnookGenNHibernate.Enumerated.Travelnook.TipoActividadesEnum), "ludicas"));
                if (sit.ocio_nocturno == true)
                    actividadesaux.Add((TravelnookGenNHibernate.Enumerated.Travelnook.TipoActividadesEnum)Enum.Parse(typeof(TravelnookGenNHibernate.Enumerated.Travelnook.TipoActividadesEnum), "ocio_nocturno"));
                if (sit.senderismo == true)
                    actividadesaux.Add((TravelnookGenNHibernate.Enumerated.Travelnook.TipoActividadesEnum)Enum.Parse(typeof(TravelnookGenNHibernate.Enumerated.Travelnook.TipoActividadesEnum), "senderismo"));
                if (sit.culturales == true)
                    actividadesaux.Add((TravelnookGenNHibernate.Enumerated.Travelnook.TipoActividadesEnum)Enum.Parse(typeof(TravelnookGenNHibernate.Enumerated.Travelnook.TipoActividadesEnum), "culturales"));

                cen.CrearSitio(sit.Nombre, sit.Provincia, sit.Descripcion, 1, fotografias, sit.NombreUsuario, videosSitio, sit.Localizacion, fechaActual, 1, sit.Puntuacion, tipoaux, actividadesaux);

                return RedirectToAction("Details", new { id = sit.Nombre });
            }
            catch
            {
                return View();
            }
        }
 //
 // GET: /Sitio/Create
 public ActionResult Create()
 {
     Sitio sit = new Sitio();
     sit.NombreUsuario = User.Identity.Name;
     return View(sit);
 }