public ActionResult Create(Destino Destino,string Button, Map map)
        {
            var idViaje = Convert.ToInt32(Request["idViaje"]);

            if (Button == "Agregar Destino")
            {
                IRepositorio<Destino> repo = new DestinoRepositorio();
                IRepositorio<Viaje> repoViaje = new ViajeRepositorio();
                Destino.Viaje = repoViaje.GetById(idViaje);
                PhotoSearchOptions options = new PhotoSearchOptions();
                options.Extras |= PhotoSearchExtras.Geo;
                options.Tags = map.Name;
                options.HasGeo = true;
                options.PerPage = 24;
                Flickr flickr = new Flickr("3de826e278b4988011ef0227585a7838", "81a96df44a82b16c");
                photos = flickr.PhotosSearch(options);
                foreach (Photo photo in photos)
                {
                    if (Destino.Url != null)
                    {
                        if (Destino.Url.CompareTo(photo.SmallUrl) == 0)
                        {
                            Destino.Latitud = photo.Latitude;
                            Destino.Longitud = photo.Longitude;
                            Destino.Nombre = photo.Title;
                        }
                    }else
                    {
                        ModelState.AddModelError(string.Empty,"Es Necesario que escoja una foto!");
                        return View();
                    }
                }
                repo.Save(Destino);
                int id2 = idViaje;
                ViewData["idViaje"] = id2;
                return RedirectToAction("Index", "Destino", new { idViaje = id2 });
            }
            else {
                int i = 0;
                PhotoSearchOptions options = new PhotoSearchOptions();
                //options.BoundaryBox = new BoundaryBox(-1.7, 54.9, -1.4, 55.2); // Roughly Newcastle upon Type, England
                //options.BoundaryBox = BoundaryBox.World;
                options.Extras |= PhotoSearchExtras.Geo;
                options.Tags = map.Name;
                options.HasGeo = true;
                options.PerPage = 24;

                Flickr flickr = new Flickr("18ead65365e9b505cc7f97abd38a33fe", "1b0f7df21b450da8");

                photos = flickr.PhotosSearch(options);
                foreach (Photo photo in photos)
                {
                    ViewData["Message"] = String.Format("Lugares de \"{0}\".", map.Name);
                    ViewData.Add(("Message" + i), photo.SmallUrl);
                    i++;
                }
                int id2 = idViaje;
                ViewData["idViaje"] = id2;

                return View();
            }
        }
        public ActionResult Index(HtmlForm form)
        {
            string comentario = Request["comentario"] as string;
            int idDestino = Convert.ToInt32(Request["idDestino"]);
            int idViaje = Convert.ToInt32(Session["idViaje"]);
            string nick = Session["data"] as string;
            Comentario miComentario = new Comentario();
            miComentario.Descripcion = comentario;
            miComentario.IdDestino = idDestino;
            miComentario.Fecha = DateTime.Today;
            miComentario.Nickname = nick;

            IRepositorioComentario<Comentario> repo = new ComentarioRepositorio();
            IRepositorio<Destino> repoD = new DestinoRepositorio();
            IRepositorioPersona<Persona> repoP = new PersonaRepositorio();

            miComentario.Destino = repoD.GetById(idDestino);
            miComentario.Persona = repoP.GetById(nick);

            repo.Save(miComentario);

            return RedirectToAction("Index", "Destino", new { idViaje = idViaje });
        }
        //
        // GET: /Destino/
        public ActionResult Index(int idViaje)
        {
            int id2 = idViaje;
            ViewData["idViaje"] = id2;
            IRepositorio<Destino> repo = new DestinoRepositorio();
            IList<Destino> destinos = repo.GetAll();
            IList<Destino> destinosViaje = new List<Destino>();
            IRepositorioComentario<Comentario> repoC = new ComentarioRepositorio();
            using (var session = new MongoSession<Category>())
            {

                foreach (Destino destino in destinos)
                {
                    if (destino.Viaje.IdViaje == id2)
                    {
                        Destino destino1 = destino;
                        var category = session.Queryable
                          .Where(c => c.IdDestino == destino1.IdDestino)
                          .AsEnumerable();
                        destino.Votos = category!=null ? category.Count() : 0;
                        IList<Comentario> comentarios = repoC.GetAll();
                        destino.Comentarios = new List<Comentario>();
                        foreach (var comentario in comentarios)
                        {
                            if(comentario.IdDestino == destino.IdDestino)
                            destino.Comentarios.Add(comentario);
                        }

                        destinosViaje.Add(destino);
                    }
                }
            }

            return View(destinosViaje);
        }
 public ActionResult Edit(Destino Destino, int id, int idViaje)
 {
     IRepositorio<Viaje> repoViaje = new ViajeRepositorio();
     Destino.Viaje = repoViaje.GetById(idViaje);
     IRepositorio<Destino> repo = new DestinoRepositorio();
     repo.Update(Destino);
     int id2 = idViaje;
     ViewData["idViaje"] = id2;
     return RedirectToAction("Index", "Destino", new { idViaje = id2 });
 }
 public ActionResult Edit(int id, int idViaje)
 {
     int id2 = idViaje;
     ViewData["idViaje"] = id2;
     IRepositorio<Destino> repo = new DestinoRepositorio();
     return View(repo.GetById(id));
 }
        public ActionResult Viaje()
        {
            if (Request["idviaje"] != "")
            {
                int idViajeConsulta = Convert.ToInt32(Request["idviaje"]);
                IRepositorio<Destino> repoDes = new DestinoRepositorio();
                IList<Destino> destinos = repoDes.GetAll();
                IList<DestinoXml> destinosViaje = new List<DestinoXml>();
                _cont = 0;
                foreach (Destino destino in destinos)
                {

                    if (destino.Viaje.IdViaje == idViajeConsulta)
                    {
                        if (destino.Fecha != null)

                            destinosViaje.Add(new DestinoXml
                                                  {
                                                      Descripcion = destino.Descripcion,
                                                      Direccion = destino.Direccion,
                                                      Fecha = (DateTime) destino.Fecha,
                                                      IdDestino = destino.IdDestino,
                                                      Latitud = destino.Latitud,
                                                      Longitud = destino.Longitud,
                                                      Nombre = destino.Nombre,
                                                      UrlFoto = destino.Url
                                                  });
                    }

                }
                DestinoXml[] Dest = destinosViaje.ToArray();
                IRepositorio<Viaje> repo = new ViajeRepositorio();
                Viaje viaje = repo.GetById(idViajeConsulta);
                if (viaje != null)
                {
                    ViajeXml[] v = new[]
                                       {
                                           new ViajeXml
                                               {
                                                   Destino = viaje.Destino,
                                                   FechaInicio = viaje.FechaInicio,
                                                   FechaFin = viaje.FechaFin,
                                                   Hospedaje = viaje.Hospedaje,
                                                   IdViaje = viaje.IdViaje,
                                                   Nombre = viaje.Nombre,
                                                   Privacidad = viaje.Privacidad,
                                                   Destinos = Dest
                                               }
                                       };

                    return View(v);
                }
            }
            return View();
        }