public JsonResult CrearSubasta(string propiedad, string valorMinimo, string fechaComienzo, string fechaReserva) { SUBASTA nuevaSubasta = new SUBASTA(); nuevaSubasta.IdPropiedad = Int32.Parse(propiedad); nuevaSubasta.FechaComienzo = DateTime.Parse(fechaComienzo); nuevaSubasta.FechaReserva = DateTime.Parse(fechaReserva); nuevaSubasta.ValorMinimo = Convert.ToDecimal(valorMinimo); nuevaSubasta.Estado = "NUEVO"; var mensaje = this.servicioSubasta.CrearSubasta(nuevaSubasta); if (mensaje != "OK") { Response.StatusCode = (int)HttpStatusCode.BadRequest; return(Json(mensaje, JsonRequestBehavior.AllowGet)); } var clientesNotificar = this.servicioPropiedad.ObtenerNotificaciones(nuevaSubasta.IdPropiedad); List <string> clientes = new List <string>(); var subastaModel = new SubastaViewModel().ToViewModel(nuevaSubasta); subastaModel.Propiedad = this.servicioPropiedad.ObtenerPropiedades().Where(t => t.IdPropiedad == subastaModel.IdPropiedad).SingleOrDefault(); foreach (var notificacion in clientesNotificar) { clientes.Add(notificacion.CLIENTE.Email); } this.servicioMail.EnviarNotificacionNuevaSubasta(clientes, subastaModel); return(this.SubastasSinEmpezar()); }
public string CrearSubasta(SUBASTA nuevaSubasta) { List <SubastaViewModel> subastasPropiedad = this.ObtenerSubastasDePropiedad(nuevaSubasta.IdPropiedad); ReservaService servicioReserva = new ReservaService(); var reservasPropiedad = servicioReserva.ObtenerReservasPropiedad(nuevaSubasta.IdPropiedad); if (nuevaSubasta.ValorMinimo <= 0) { return(string.Format("No se pudo crear la subasta, el valor inicial para pujar debe ser mayor que 0.")); } if (nuevaSubasta.FechaReserva.CompareTo(nuevaSubasta.FechaComienzo.AddDays(3)) < 0) { return(string.Format("No se pudo crear la subasta, la semana que se desea subastar transcurre durante o antes que la subasta.")); } if (subastasPropiedad.Any(t => nuevaSubasta.FechaComienzo.CompareTo(Convert.ToDateTime(t.FechaReserva)) >= 0 && nuevaSubasta.FechaComienzo.CompareTo(Convert.ToDateTime(t.FechaReserva).AddDays(7)) <= 0)) { return(string.Format("No se pudo crear la subasta para la propiedad seleccionada, ya posee una subasta definida durante los días elegidos.")); } if (reservasPropiedad.Any(t => nuevaSubasta.FechaReserva.CompareTo(Convert.ToDateTime(t.FechaReserva)) >= 0 && nuevaSubasta.FechaReserva.CompareTo(Convert.ToDateTime(t.FechaReserva).AddDays(7)) <= 0)) { return(string.Format("No se pudo crear la subasta para la propiedad seleccionada, posee reservas confirmadas durante los días elegidos a subastar.")); } this.HomeSwitchDB.SUBASTA.Add(nuevaSubasta); this.HomeSwitchDB.SaveChanges(); CacheHomeSwitchHome.RemoveOnCache("Subastas"); return("OK"); }
public JsonResult ModificarSubasta(string idSubasta, string valorMinimo) { SUBASTA subastaActualizada = new SUBASTA(); subastaActualizada.ValorMinimo = Convert.ToDecimal(valorMinimo); if (this.servicioSubasta.ActualizarSubasta(subastaActualizada, Int32.Parse(idSubasta))) { return(Json(this.servicioSubasta.ObtenerHistorialSubastas().ToArray(), JsonRequestBehavior.AllowGet)); } return(null); }
public bool ActualizarSubasta(SUBASTA subastaActualizada, int idSubasta) { if (subastaActualizada.ValorMinimo > 0) { var subastaModelo = this.HomeSwitchDB.SUBASTA.SingleOrDefault(t => t.IdSubasta == idSubasta); subastaModelo.ValorMinimo = subastaActualizada.ValorMinimo; this.HomeSwitchDB.SaveChanges(); CacheHomeSwitchHome.RemoveOnCache("Subastas"); return(true); } else { return(false); } }
public string PujarSubasta(SUBASTA subastaPujada, int idSubasta, int idCliente) { var subastaActualizar = this.HomeSwitchDB.SUBASTA.SingleOrDefault(t => t.IdSubasta == idSubasta); var pujaService = new PujaService(); var reservas = new ReservaService(); if (subastaActualizar == null) { return(string.Format("Se ha producido un error en el servidor.")); } if (subastaActualizar.ValorActual >= subastaPujada.ValorActual || subastaActualizar.ValorMinimo >= subastaPujada.ValorActual) { return(string.Format("El valor ingresado es menor al valor actual.")); } if (reservas.ObtenerReservasClientePorAnio(idCliente, DateTime.Now.Year).Count == 2) { return(string.Format("Ya posee dos reservas efectuadas, no puede participar de la puja.")); } if (reservas.ObtenerReservasCliente(idCliente).Any(t => (Convert.ToDateTime(t.FechaReserva).CompareTo(Convert.ToDateTime(subastaActualizar.FechaReserva)) <= 0 && Convert.ToDateTime(t.FechaReserva).AddDays(7).CompareTo(Convert.ToDateTime(subastaActualizar.FechaReserva)) >= 0) || (Convert.ToDateTime(subastaActualizar.FechaReserva).CompareTo(Convert.ToDateTime(t.FechaReserva)) <= 0 && Convert.ToDateTime(subastaActualizar.FechaReserva).AddDays(7).CompareTo(Convert.ToDateTime(t.FechaReserva)) >= 0) )) { return(string.Format("Ya posee una reserva durante la semana que se está subastando.")); } subastaActualizar.ValorActual = subastaPujada.ValorActual; subastaActualizar.IdCliente = idCliente; this.HomeSwitchDB.SaveChanges(); CacheHomeSwitchHome.RemoveOnCache("Subastas"); return(string.Format("OK")); }
public JsonResult PujarEnSubasta(string idSubasta, string valorPujado) { SUBASTA subastaPujada = new SUBASTA(); subastaPujada.ValorActual = Convert.ToDecimal(valorPujado); var sesionUser = (ClienteViewModel)Session["ClienteActual"]; var mensaje = this.servicioSubasta.PujarSubasta(subastaPujada, int.Parse(idSubasta), sesionUser.IdCliente); if (mensaje == "OK") { var activas = this.servicioSubasta.ObtenerSubastasActivas(); var subastaActual = activas.Where(t => t.IdSubasta == int.Parse(idSubasta)).SingleOrDefault(); this.pujaService.RegistrarPuja(subastaActual.IdSubasta, sesionUser.IdCliente, subastaActual.ValorActual); return(Json(this.servicioSubasta.ObtenerSubastasActivas().ToArray(), JsonRequestBehavior.AllowGet)); } Response.StatusCode = (int)HttpStatusCode.BadRequest; return(Json(mensaje, JsonRequestBehavior.AllowGet)); }
public static void Agregar(Subasta subasta) { using (var db = new DBEntities()) { try { SUBASTA s = new SUBASTA(); s.FECHAINICIO = subasta.FechaInicio; s.FECHATERMINO = subasta.FechaTermino; s.IDPEDIDO = subasta.Pedido.IdPedido; s.IDESTADOSUBASTA = 1; db.SUBASTA.Add(s); db.SaveChanges(); subasta.IdSubasta = (int)s.IDSUBASTA; }catch (Exception ex) { ex.Message.ToString(); } } }
public SubastaViewModel ToViewModel(SUBASTA subasta) { this.IdSubasta = subasta.IdSubasta; this.IdPropiedad = subasta.IdPropiedad; if (subasta.PROPIEDAD != null) { this.Propiedad = new PropiedadViewModel().ToViewModel(subasta.PROPIEDAD); } this.FechaComienzo = Convert.ToString(subasta.FechaComienzo.Date); this.FechaReserva = Convert.ToString(subasta.FechaReserva.Date); this.ValorMinimo = subasta.ValorMinimo; this.ValorActual = subasta.ValorActual; this.Estado = subasta.Estado; this.IdCliente = subasta.IdCliente; if (subasta.CLIENTE != null) { this.Cliente = new ClienteViewModel().ToViewModel(subasta.CLIENTE); } return(this); }
/// <summary> /// Obtener la subasta de acuerdo a la id asignada a la instancia /// </summary> /// <returns></returns> public bool Read() { try { using (var db = new DBEntities()) { SUBASTA subasta = db.SUBASTA.Where(sb => sb.IDSUBASTA == this.IdSubasta).FirstOrDefault(); if (subasta != null) { this.FechaInicio = subasta.FECHAINICIO; this.FechaTermino = subasta.FECHATERMINO; //Obtener Estado subasta EstadoSubasta estado = new EstadoSubasta(); estado.IdEstadoSubasta = (int)subasta.IDESTADOSUBASTA; estado.Read(); this.EstadoSubasta = estado; //Obtener el pedido asociada a la subasta Pedido pedido = new Pedido(); pedido.IdPedido = (int)subasta.IDPEDIDO; pedido.Read(); this.Pedido = pedido; this.OfertasSubasta = OfertaSubasta.ReadByIdSubasta(this.IdSubasta); return(true); } return(false); } }catch (Exception ex) { Console.WriteLine(ex.Message); return(false); } }