public List <EstadoPuestoDeTrabajoEnum> GetEstadoPuestosPorEjecucionMabId(int ejecucionMabId) { EjecucionMABEstadosPuesto emep = null; EstadoPuesto ep = null; var query = Session.QueryOver <EjecucionMab>().Where(x => x.Id == ejecucionMabId) .JoinQueryOver(x => x.EstadosPuestos, () => emep) .And(Restrictions.Eq("EsPosterior", 'N')) //.And(x=>x.EsPosterior==false) .JoinQueryOver(x => x.EstadoPuesto, () => ep) .SelectList(list => list.Select(x => ep.Valor)); var lista = (List <EstadoPuestoDeTrabajoEnum>)query.List <EstadoPuestoDeTrabajoEnum>(); return(lista); }
//TODO separar este metodo en varios submetodos asi se hace mas facil de entender y mantener private GrupoMab GenerarEntidad(GrupoMabModel model) { ValidarGrupoMab(model); var entidad = Mapper.Map <GrupoMabModel, GrupoMab>(model); var estadoPtAnteriorEjecucionMab = new List <EstadoPuestoDeTrabajoEnum>(); var estadoPtAnteriorEjecucionMabAnterior = new List <EstadoPuestoDeTrabajoEnum>(); if (model.EstadosPuestoAnterioresPt != null) { foreach (var estadoPuestoModel in model.EstadosPuestoAnterioresPt) { estadoPtAnteriorEjecucionMab.Add(estadoPuestoModel.Valor); } } if (model.EstadosPuestoAnterioresPtAnterior != null) { foreach (var estadoPuestoModel in model.EstadosPuestoAnterioresPtAnterior) { estadoPtAnteriorEjecucionMabAnterior.Add(estadoPuestoModel.Valor); } } entidad.Enpt = new EjecucionMab(); entidad.EnPTanterior = new EjecucionMab(); entidad.Enpt.Liquidacion = model.Liquidacion; entidad.Enpt.ModificaSitRev = model.ModificaSitRev; entidad.Enpt.GeneraVacante = model.GeneraVacante; entidad.Enpt.ModificaEstadoAnteriorEnPT = model.ModificaEstadoAnteriorPuesto; entidad.Enpt.ModificaEstadoAsignacionEnPT = model.ModificaEstadoAsignacionPuesto; entidad.Enpt.ModificaEstadoPosteriorEnPT = model.ModificaEstadoPosteriorPuesto; if (model.EstadoAsignacionId.HasValue) { entidad.Enpt.EstadoAsignacion = new EstadoAsignacion(); entidad.Enpt.EstadoAsignacion = DaoProvider.GetDaoEstadoAsignacion().GetById(model.EstadoAsignacionId.Value); } entidad.EnPTanterior.Liquidacion = model.LiquidacionAnterior; entidad.EnPTanterior.ModificaSitRev = model.ModificaSitRevAnterior; entidad.EnPTanterior.GeneraVacante = model.GeneraVacanteAnterior; entidad.EnPTanterior.ModificaEstadoAnteriorEnPT = model.ModificaEstadoAnteriorPuestoAnterior; entidad.EnPTanterior.ModificaEstadoAsignacionEnPT = model.ModificaEstadoAsignacionPuestoAnterior; entidad.EnPTanterior.ModificaEstadoPosteriorEnPT = model.ModificaEstadoPosteriorPuestoAnterior; if (model.EstadoAsignacionAnteriorId.HasValue) { entidad.EnPTanterior.EstadoAsignacion = new EstadoAsignacion(); entidad.EnPTanterior.EstadoAsignacion = DaoProvider.GetDaoEstadoAsignacion().GetById(model.EstadoAsignacionAnteriorId.Value); } //obtenemos los estados (anteriores y posterior) de puesto de trabajo actual var listaEstadosNuevoPuesto = new List <EjecucionMABEstadosPuesto>(); if (model.EstadosPuestoAnterioresPt != null && model.ModificaEstadoAnteriorPuesto) { foreach (var emep in model.EstadosPuestoAnterioresPt) { var emepNuevo = new EjecucionMABEstadosPuesto(); emepNuevo.EjecucionMab = entidad.Enpt; emepNuevo.EstadoPuesto = DaoProvider.GetDaoEstadoPuestoTrabajo().GetByFilter(emep.Valor); emepNuevo.EsPosterior = false; listaEstadosNuevoPuesto.Add(emepNuevo); } } if (model.EstadoPosteriorPtId.HasValue && model.ModificaEstadoPosteriorPuesto) { listaEstadosNuevoPuesto.Add(new EjecucionMABEstadosPuesto() { EjecucionMab = entidad.Enpt, EsPosterior = true, EstadoPuesto = DaoProvider.GetDaoEstadoPuestoTrabajo().GetById(model.EstadoPosteriorPtId.Value) }); } //obtenemos los estados (anteriores y posterior) de puesto de trabajo anterior var listaEstadosPuestoAnterior = new List <EjecucionMABEstadosPuesto>(); if (model.EstadosPuestoAnterioresPtAnterior != null && model.ModificaEstadoAnteriorPuestoAnterior) { foreach (var emepAnterior in model.EstadosPuestoAnterioresPtAnterior) { var emepAnteriorNuevo = new EjecucionMABEstadosPuesto(); emepAnteriorNuevo.EjecucionMab = entidad.EnPTanterior; emepAnteriorNuevo.EstadoPuesto = DaoProvider.GetDaoEstadoPuestoTrabajo().GetByFilter(emepAnterior.Valor); emepAnteriorNuevo.EsPosterior = false; listaEstadosPuestoAnterior.Add(emepAnteriorNuevo); } } if (model.EstadoPosteriorPtAnteriorId.HasValue && model.ModificaEstadoPosteriorPuestoAnterior) { listaEstadosPuestoAnterior.Add(new EjecucionMABEstadosPuesto() { EjecucionMab = entidad.EnPTanterior, EsPosterior = true, EstadoPuesto = DaoProvider.GetDaoEstadoPuestoTrabajo().GetById( model.EstadoPosteriorPtAnteriorId.Value) }); } entidad.Enpt.EstadosPuestos = listaEstadosNuevoPuesto; entidad.EnPTanterior.EstadosPuestos = listaEstadosPuestoAnterior; return(entidad); }