public List<string> ValidarReserva(ReservaClase model) { List<string> result = new List<string>(); if (model.IdCurso == null) result.Add("Seleccione el curso"); if (model.Clase == null) result.Add("Seleccione la clase"); if (model.Reunion == null) result.Add("Seleccione al menos una reunión"); if (model.Recurso == null) result.Add("Seleccione al menos una aplicación"); 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"); } if (model.Clase != null && model.Reunion != null && model.Recurso != null) { var validacionLicencias = this.validarLicencias(model); if (validacionLicencias.Count > 0) result.AddRange(validacionLicencias); var tieneReserva = this.claseTieneReserva(model); if (tieneReserva.Count > 0) result.AddRange(tieneReserva); } return result; }
public void InsertarReserva(ReservaClase model) { using (var transaction = dbSql.Database.BeginTransaction()) { try { string[] clase = model.Clase.Split('-'); var strm = clase[0]; var class_nbr = clase[1]; foreach (string reunion in model.Reunion) { string[] reu = reunion.Split('-'); var dia = Convert.ToByte(reu[0]); var horaInicio = Convert.ToInt16(reu[1]); var horaFin = Convert.ToInt16(reu[2]); 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 = "2"; reserva.strm = strm; reserva.class_nbr = class_nbr; reserva.crse_id = model.IdCurso; reserva.fecha_registro = DateTime.Now; reserva.curso = model.Curso; dbSql.reservas.Add(reserva); dbSql.SaveChanges(); foreach (var recursoId in model.Recurso) { this.insertarRecursoReserva(reserva, Convert.ToInt32(recursoId)); } var usuariosClase = this.GetUsuariosByClase(strm, model.IdCurso, class_nbr); foreach (Usuario usuario in usuariosClase) { this.insertarUsuarioReserva(reserva, usuario.OPRID); } } transaction.Commit(); //dbSql.RegisterEvents(); } catch (Exception) { transaction.Rollback(); throw; } } }