public void NoPuedoOtorgarUnTurnoViaWebConAgendaQueNoPerteneceAlProfesional() { var paciente = ApplicationInstaller.PersonaPacientePablo.As<Paciente>(); var profesional = ApplicationInstaller.PersonaProfesionalJoseClinicoYDermatologo.As<Profesional>(); var especialidad = ApplicationInstaller.EspecialidadPediatra; var consultorio = ApplicationInstaller.ConsultorioA; var fechaTurno = new DateTime(2011, 02, 01); var agenda = new Agenda() { Dia = DayOfWeek.Tuesday, DuracionTurno = TimeSpan.FromMinutes(15), HorarioDesde = new TimeSpan(10, 0, 0), HorarioHasta = new TimeSpan(12, 0, 0), Consultorio = ApplicationInstaller.ConsultorioA }; agenda.AgregarEspecialidad(ApplicationInstaller.EspecialidadClinico); var session = SessionFactory.GetCurrentSession(); session.Update(profesional); session.Flush(); session.Evict(profesional); Assert.Throws<ArgumentException>(() => Turno.Create(fechaTurno, TimeSpan.FromMinutes(15), paciente, profesional, especialidad, consultorio, "127.0.0.1")); }
private void ProcesarEspecialidades(AgendaEditModel editModel, Agenda agenda) { var session = SessionFactory.GetCurrentSession(); //Especialidades a eliminar var especialidadesAEliminar = agenda.EspecialidadesAtendidas.Where( x => !editModel.EspecialidadesSeleccionadas.Contains(x.Id)).ToList(); foreach (var especialidadAEliminar in especialidadesAEliminar) { agenda.QuitarEspecialidad(especialidadAEliminar); } //Especialidades a agregar var especialidadesAAgregar = editModel.EspecialidadesSeleccionadas.Where( x => !agenda.EspecialidadesAtendidas.Select(p => p.Id).Contains(x)).ToList(); foreach (var especialidadAAgregar in especialidadesAAgregar) { var especialidad = session.Load<Especialidad>(especialidadAAgregar); agenda.AgregarEspecialidad(especialidad); } }