Ejemplo n.º 1
0
        public ActionResult Create(ViviendasViewModel u, HttpPostedFileBase ImgData)
        {
            string fileContent     = string.Empty;
            string fileContentType = string.Empty;

            List <SelectListItem> comboviviendas = new List <SelectListItem>();

            foreach (var item in this.repo.GetNombreCostas())
            {
                SelectListItem costa = new SelectListItem();
                costa.Value = item.Cod_Provincia.ToString();
                costa.Text  = item.NombreProvincia;
                comboviviendas.Add(costa);
            }
            ViewBag.ComboCostas = comboviviendas;
            u.Ciudad            = comboviviendas.Where(x => x.Value == u.Cod_Provincia.ToString()).Select(x => x.Text).FirstOrDefault();


            if (!ModelState.IsValid || ImgData == null)
            {
                List <SelectListItem> comboclientes = new List <SelectListItem>();
                foreach (var item in this.repo.GetClientes())
                {
                    SelectListItem cliente = new SelectListItem();
                    cliente.Value = item.IdCliente.ToString();
                    cliente.Text  = item.NombreCliente + " " + item.ApellidoCliente;
                    comboclientes.Add(cliente);
                }
                ViewBag.comboclientes = comboclientes;

                var list = this.repo.GetTiposViviendas().Select(x => new SelectListItem()
                {
                    Value = x.Cod_tipo_vivienda.ToString(), Text = x.Descripcion
                });


                ViewBag.ListaTiposViviendaCreate = new List <SelectListItem>();
                ViewBag.ListaTiposViviendaCreate.AddRange(list);
                return(View(u));
            }
            byte[] foto = new byte[ImgData.InputStream.Length];
            u.ImgData.InputStream.Read(foto, 0, foto.Length);
            fileContent     = Convert.ToBase64String(foto);
            fileContentType = u.ImgData.ContentType;

            Viviendas vivienda = new Viviendas()
            {
                Cod_Provincia    = u.Cod_Provincia,
                Cod_TipoVivienda = u.Cod_TipoVivienda,
                Codigo_Posta     = u.Codigo_Posta,
                Ciudad           = u.Ciudad,
                IdCliente        = u.IdCliente,
                Garaje           = u.Garaje,
                Descripcion      = u.Descripcion,
                Num_banios       = u.Num_banios,
                Num_habitaciones = u.Num_habitaciones,
                Tamanio_vivienda = u.Tamanio_vivienda,
                Ubicacion        = u.Ubicacion
            };

            int           InsertedVivienda = this.repo.InsertarViviendas(vivienda);
            Galeria_Fotos galeria          = new Galeria_Fotos()
            {
                Cod_casa = InsertedVivienda,
                Foto     = foto
            };

            this.repo.InsertarImagen(galeria);



            return(RedirectToAction("Viviendas"));
        }
        public async Task <IActionResult> Create(ViviendasViewModel u)
        {
            string token           = HttpContext.Session.GetString("TOKEN");
            string fileContent     = string.Empty;
            string fileContentType = string.Empty;

            List <SelectListItem> comboviviendas = new List <SelectListItem>();

            foreach (var item in await this.repo.GetNombreCostasAsync())
            {
                SelectListItem costa = new SelectListItem();
                costa.Value = item.Cod_Provincia.ToString();
                costa.Text  = item.NombreProvincia;
                comboviviendas.Add(costa);
            }
            ViewBag.ComboCostas = comboviviendas;
            u.Ciudad            = comboviviendas.Where(x => x.Value == u.Cod_Provincia.ToString()).Select(x => x.Text).FirstOrDefault();


            if (!ModelState.IsValid /*|| ImgData == null*/)
            {
                List <SelectListItem> comboclientes = new List <SelectListItem>();
                foreach (var item in await this.repo.GetClientesAsync())
                {
                    SelectListItem cliente = new SelectListItem();
                    cliente.Value = item.IdCliente.ToString();
                    cliente.Text  = item.NombreCliente + " " + item.ApellidoCliente;
                    comboclientes.Add(cliente);
                }
                ViewBag.comboclientes = comboclientes;

                var listatipoviviendas = await this.repo.GetTiposViviendasAsync();

                List <SelectListItem> combotipos = new List <SelectListItem>();
                foreach (var item in listatipoviviendas)
                {
                    SelectListItem selitem = new SelectListItem();
                    selitem.Value = item.Cod_tipo_vivienda.ToString();
                    selitem.Text  = item.Descripcion;
                    combotipos.Add(selitem);
                }


                ViewBag.ListaTiposViviendaCreate = new List <SelectListItem>();
                ViewBag.ListaTiposViviendaCreate.AddRange(combotipos);
                return(View(u));
            }

            using (var memoryStream = new MemoryStream())
            {
                await u.FotoVivienda.CopyToAsync(memoryStream);

                u.Foto = memoryStream.ToArray();
            }

            //byte[] foto = new byte[ImgData.InputStream.Length];
            //u.ImgData.InputStream.Read(foto, 0, foto.Length);
            //fileContent = Convert.ToBase64String(foto);
            //fileContentType = u.ImgData.ContentType;

            Viviendas vivienda = new Viviendas()
            {
                Cod_Provincia    = u.Cod_Provincia,
                Cod_TipoVivienda = u.Cod_TipoVivienda.GetValueOrDefault(),
                Codigo_Posta     = u.Codigo_Posta,
                Ciudad           = u.Ciudad,
                IdCliente        = u.IdCliente.GetValueOrDefault(),
                Garaje           = u.Garaje,
                Descripcion      = u.Descripcion,
                Num_banios       = u.Num_banios,
                Num_habitaciones = u.Num_habitaciones,
                Tamanio_vivienda = u.Tamanio_vivienda,
                Ubicacion        = u.Ubicacion
            };

            int InsertedVivienda = await this.repo.InsertarViviendaAsync(vivienda, token);

            Galeria_Fotos galeria = new Galeria_Fotos()
            {
                Cod_casa = InsertedVivienda,
                Foto     = u.Foto
            };

            await this.repo.InsertarGaleriaFotosAsync(galeria, token);



            return(RedirectToAction("Viviendas"));
        }