public ActionResult Create(Carrito carrito) { if (!carrito.Lineas.Any()) { return(RedirectToAction("List", "Producto")); } Compra Compra = new Compra { IdUsuario = Int32.Parse(User.Identity.GetHaynyUserID()), ItemsCompra = new List <ItemCompra>() }; foreach (LineaCarrito linea in carrito.Lineas) { Compra.ItemsCompra.Add(new ItemCompra { Cantidad = linea.Cantidad, Producto = linea.Producto, PrecioTotal = linea.Producto.Precio * linea.Cantidad, ProductoID = linea.Producto.ProductoID }); } try { //Get current exchange rate of USD WebRequest request = WebRequest.Create("https://openexchangerates.org/api/latest.json?app_id=ac7c178cc4d14703b579f6fcc49410b2&base=USD&symbols=DOP"); request.Credentials = CredentialCache.DefaultCredentials; request.Timeout = 30000; using (WebResponse response = request.GetResponse()) { using (var reader = new StreamReader(response.GetResponseStream())) { CurrencyResponse currencyresponse = JsonConvert.DeserializeObject <CurrencyResponse>(reader.ReadToEnd()); double Costo = (double)carrito.ComputeTotalValue() / currencyresponse.rates.DOP; ViewBag.TotalUSD = Math.Round(Costo, 2); } } return(View(Compra)); } catch (Exception e) { LogFileCreator LogError = new LogFileCreator(); LogError.ErrorLog(Server.MapPath("~/Logs"), e.Message); return(RedirectToAction("Index", "Home")); } }
public ActionResult BorrarArticulo(int?id) { Retorno retorno = new Retorno() { Success = true, Message = "Articulo Borrado correctamente" }; var user = db.Users.Find(User.Identity.GetUserId()); var usuarioHayny = db.Usuarios.Find(user.Usuario.IdUsuario); Articulo articulo = db.Articulos.Find(id); Imagen imagenArticulo = articulo.Imagen; using (var dbTransaction = db.Database.BeginTransaction()) { try { if (articulo.Imagen != null) { string path = Path.Combine(Server.MapPath("~/ImagenesSubidas/"), articulo.Imagen.IdImagen + articulo.Imagen.Formato); try { if (System.IO.File.Exists(path)) { System.IO.File.Delete(path); db.Imagenes.Remove(articulo.Imagen); } } catch (Exception e) { LogFileCreator LogError = new LogFileCreator(); LogError.ErrorLog(Server.MapPath("~/Logs"), e.Message); retorno = new Retorno() { Success = false, Message = "Ocurrió un error al subir el archivo" }; return(Json(retorno, JsonRequestBehavior.AllowGet)); } } foreach (EtiquetaArticulo e in articulo.EtiquetaArticulo.ToList()) { db.EtiquetaArticulo.Remove(e); } db.Articulos.Remove(articulo); db.SaveChanges(); dbTransaction.Commit(); } catch (DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { LogFileCreator LogError = new LogFileCreator(); foreach (var ve in eve.ValidationErrors) { var mensaje = String.Format(" \"{0}\" , {1} , {2}", eve.Entry.Entity.GetType().Name, ve.PropertyName, ve.ErrorMessage); LogError.ErrorLog(Server.MapPath("/Logs"), mensaje); } } } catch (Exception e) { LogFileCreator LogError = new LogFileCreator(); LogError.ErrorLog(Server.MapPath("/Logs"), e.Message); dbTransaction.Rollback(); } } return(RedirectToAction("Index")); }
public ActionResult GuardarArticulo(GuardarArticuloViewModel model) { Retorno retorno = new Retorno() { Success = true, Message = "Articulo añadido correctamente" }; var user = db.Users.Find(User.Identity.GetUserId()); var usuarioHayny = db.Usuarios.Find(user.Usuario.IdUsuario); List <Etiqueta> etiquetas = JsonConvert.DeserializeObject <List <Etiqueta> >(model.Etiquetas); Imagen imagenArticulo = null; using (var dbTransaction = db.Database.BeginTransaction()) { try { if (Request.Files.Count > 0) { var file = Request.Files[0]; var fileName = Path.GetFileName(file.FileName); var fileExtension = Path.GetExtension(file.FileName); if (HttpPostedFileBaseExtensions.IsImage(file)) { try { Stream stream = file.InputStream; System.Drawing.Image image = System.Drawing.Image.FromStream(stream); imagenArticulo = new Imagen() { Usuario = usuarioHayny, FechaSubida = DateTime.Now, Height = image.Height, Width = image.Width, Formato = fileExtension, Title = fileName }; db.Imagenes.Add(imagenArticulo); db.SaveChanges(); string path = Path.Combine(Server.MapPath("~/ImagenesSubidas/"), imagenArticulo.IdImagen + fileExtension); file.SaveAs(path); } catch (Exception e) { LogFileCreator LogError = new LogFileCreator(); LogError.ErrorLog(Server.MapPath("/Logs"), e.Message); retorno = new Retorno() { Success = false, Message = "Ocurrió un error al subir el archivo" }; return(Json(retorno, JsonRequestBehavior.AllowGet)); } } else { retorno = new Retorno() { Success = false, Message = "El archivo subido no es una imagen válida" }; return(Json(retorno, JsonRequestBehavior.AllowGet)); } } Articulo articulo = new Articulo() { Titulo = model.Titulo, Contenido = model.Contenido, FechaSubida = DateTime.Now, Usuario = usuarioHayny, Imagen = imagenArticulo }; db.Articulos.Add(articulo); foreach (Etiqueta etiq in etiquetas) { etiq.Nombre = etiq.Nombre.ToLowerInvariant(); db.Etiquetas.Add(etiq); EtiquetaArticulo etar = new EtiquetaArticulo() { Articulo = articulo, Etiqueta = etiq }; db.EtiquetaArticulo.Add(etar); } db.SaveChanges(); dbTransaction.Commit(); } catch (DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { LogFileCreator LogError = new LogFileCreator(); foreach (var ve in eve.ValidationErrors) { var mensaje = String.Format(" \"{0}\" , {1} , {2}", eve.Entry.Entity.GetType().Name, ve.PropertyName, ve.ErrorMessage); LogError.ErrorLog(Server.MapPath("/Logs"), mensaje); } } } catch (Exception e) { LogFileCreator LogError = new LogFileCreator(); LogError.ErrorLog(Server.MapPath("/Logs"), e.Message); dbTransaction.Rollback(); } } return(Json(retorno, JsonRequestBehavior.AllowGet)); }
public ActionResult GuardarProducto(Producto p) { Retorno retorno = new Retorno() { Success = true, Message = "Producto añadido correctamente" }; var user = db.Users.Find(User.Identity.GetUserId()); var usuarioHayny = db.Usuarios.Find(user.Usuario.IdUsuario); Imagen imagenProducto = null; using (var dbTransaction = db.Database.BeginTransaction()) { try { if (Request.Files.Count > 0) { HttpPostedFileBase file = Request.Files[0]; string fileName = Path.GetFileName(file.FileName); string fileExtension = Path.GetExtension(file.FileName); if (HttpPostedFileBaseExtensions.IsImage(file)) { try { Stream stream = file.InputStream; System.Drawing.Image image = System.Drawing.Image.FromStream(stream); imagenProducto = new Imagen() { Usuario = usuarioHayny, FechaSubida = DateTime.Now, Height = image.Height, Width = image.Width, Formato = fileExtension, Title = fileName }; db.Imagenes.Add(imagenProducto); db.SaveChanges(); string path = Path.Combine(Server.MapPath("~/ImagenesSubidas/"), imagenProducto.IdImagen + fileExtension); file.SaveAs(path); } catch (Exception e) { LogFileCreator LogError = new LogFileCreator(); LogError.ErrorLog(Server.MapPath("/Logs"), e.Message); retorno = new Retorno() { Success = false, Message = "Ocurrió un error al subir el archivo" }; return(Json(retorno, JsonRequestBehavior.AllowGet)); } } else { retorno = new Retorno() { Success = false, Message = "El archivo subido no es una imagen válida" }; return(Json(retorno, JsonRequestBehavior.AllowGet)); } } else { retorno.Success = false; retorno.Message = "Debe incluir una imagen para agregar el producto"; } p.Imagen = imagenProducto; p.FechaCreacion = DateTime.Now; db.Productos.Add(p); db.SaveChanges(); dbTransaction.Commit(); } catch (DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { LogFileCreator LogError = new LogFileCreator(); foreach (var ve in eve.ValidationErrors) { var mensaje = String.Format(" \"{0}\" , {1} , {2}", eve.Entry.Entity.GetType().Name, ve.PropertyName, ve.ErrorMessage); LogError.ErrorLog(Server.MapPath("/Logs"), mensaje); } } } catch (Exception e) { LogFileCreator LogError = new LogFileCreator(); LogError.ErrorLog(Server.MapPath("/Logs"), e.Message); dbTransaction.Rollback(); } } return(Json(retorno, JsonRequestBehavior.AllowGet)); }