Exemplo n.º 1
0
 public FotosApiViewModel(FotosPosada foto)
 {
     Ruta = foto.Ruta;
     Alt  = foto.Alt;
 }
Exemplo n.º 2
0
        public ActionResult Create(PosadasViewModel posadaViewModel)
        {
            if (ModelState.IsValid)
            {
                var posada = Mapper.Map <PosadasViewModel, Posada>(posadaViewModel);
                posada.UserId          = User.Identity.GetUserId();
                posada.Caracteristicas = new List <CaracteristicasPosadas>();

                if (posadaViewModel.CaracteristicasId != null)
                {
                    foreach (var caracteristicaId in posadaViewModel.CaracteristicasId)
                    {
                        posada.Caracteristicas.Add(new CaracteristicasPosadas()
                        {
                            CaracteristicaId = caracteristicaId
                        });
                    }
                }

                if (posada.LugarId == -1)//Seleccionaron otro
                {
                    posada.LugarId = null;
                    posada.Misc    = posadaViewModel.OtroLugar;
                }

                unitOfWork.PosadaRepository.Insert(posada);
                unitOfWork.Save();

                var root      = Server.MapPath(Constantes.PosadasBase + posada.Id + "/");
                var fotosList = new List <FotosPosada>();
                foreach (var item in posadaViewModel.FotosModels)
                {
                    if (item.FileBase == null)
                    {
                        continue;
                    }
                    string ext      = Path.GetExtension(item.FileBase.FileName);
                    string filename = "Posada-" + posada.Id + "-" + Guid.NewGuid() + ext;

                    var uploadResult = CloudinaryService.UploadFile(filename, item.FileBase.InputStream, "Posada-" + posada.Id, "FotosPosadas");


                    var fotoPosada = new FotosPosada
                    {
                        Alt            = item.Alt,
                        PosadaId       = posada.Id,
                        Ruta           = uploadResult.Url,
                        ImagenPublicId = uploadResult.PublicId,
                        ImageServer    = uploadResult.Server
                    };
                    //fotoPosada.Ruta = Guid.NewGuid() + ext;
                    //Directory.CreateDirectory(root);
                    //item.FileBase.SaveAs(root + fotoPosada.Ruta);

                    fotosList.Add(fotoPosada);
                }
                unitOfWork.FotosPosadaRepository.Insert(fotosList);
                unitOfWork.Save();
                return(RedirectToAction("Details", new { id = posada.Id }));
            }

            return(View(posadaViewModel));
        }