public List<string> ValidarReserva(ReservaGrupo model) { List<string> result = new List<string>(); if (model.Grupo == null) result.Add("Seleccione el grupo personalizado"); if (model.DiaReserva == null) result.Add("Seleccione el día de la reserva"); if (model.HoraInicio == null) result.Add("Seleccione la hora de inicio de la reserva"); if (model.HoraFin == null) result.Add("Seleccione la hora final de la reserva"); if (model.GetFechaInicio() == null) { result.Add("Seleccione la fecha de inicio"); } else { if (model.GetFechaInicio().Date < DateTime.Now.Date) result.Add("Seleccione una fecha de inicio válida"); } if (model.GetFechaFin() == null) { result.Add("Seleccione la fecha de inicio"); } else { if (model.GetFechaFin().Date < DateTime.Now.Date) result.Add("Seleccione una fecha fin válida"); } if (model.GetFechaInicio() != null && model.GetFechaFin() != null) { if (model.GetFechaFin().Date < model.GetFechaInicio().Date) result.Add("Seleccione una fecha de vigencia de la reserva válida"); } //Validar la hora de la reserva if (Convert.ToInt16(model.HoraInicio) >= Convert.ToInt16(model.HoraFin)) result.Add("Seleccione un horario de la reserva válido"); if(model.Recurso == null) result.Add("Seleccione al menos una aplicación"); if(result.Count == 0) { var validacionLicencias = this.validarLicencias(model); if (validacionLicencias.Count > 0) result.AddRange(validacionLicencias); //Validar si ya existe una reserva var tieneReserva = this.grupoTieneReserva(model); if (tieneReserva.Count > 0) result.AddRange(tieneReserva); } return result; }
public void insert(ReservaGrupo model) { using (var transaction = db.Database.BeginTransaction()) { try { var grupo_id = Convert.ToInt32(model.Grupo); var grupo = db.grupoes.Find(grupo_id); var dia = Convert.ToByte(model.DiaReserva); var horaInicio = Convert.ToInt16(model.HoraInicio); var horaFin = Convert.ToInt16(model.HoraFin); reserva reserva = new reserva(); reserva.fecha_inicio = model.GetFechaInicio(); reserva.fecha_final = model.GetFechaFin(); reserva.dia = dia; reserva.hora_inicial = horaInicio; reserva.hora_final = horaFin; reserva.tipo_reserva = "3"; reserva.grupo_id = grupo_id; reserva.fecha_registro = DateTime.Now; db.reservas.Add(reserva); db.SaveChanges(); foreach (var recursoId in model.Recurso) { this.insertarRecursoReserva(reserva, Convert.ToInt32(recursoId)); } foreach (var usuario in grupo.usuarios_grupo.ToList<usuarios_grupo>()) { this.insertarUsuarioReserva(reserva, usuario.oprid); } transaction.Commit(); //db.RegisterEvents(); } catch (Exception) { transaction.Rollback(); throw; } } }