public async Task <WrapperSimpleTypesDTO> CrearPlan(Planes planParaCrear) { using (SportsGoEntities context = new SportsGoEntities(false)) { PlanesRepository planRepository = new PlanesRepository(context); planParaCrear.Archivos.CodigoTipoArchivo = (int)TipoArchivo.Imagen; planRepository.CrearPlan(planParaCrear); WrapperSimpleTypesDTO wrapperCrearPlan = new WrapperSimpleTypesDTO(); wrapperCrearPlan.NumeroRegistrosAfectados = await context.SaveChangesAsync(); if (wrapperCrearPlan.NumeroRegistrosAfectados > 0) { wrapperCrearPlan.Exitoso = true; wrapperCrearPlan.ConsecutivoCreado = planParaCrear.Consecutivo; if (planParaCrear.PlanDefault == (int)SiNoEnum.Si) { await planRepository.DesasignarPlanDefaultDeUnPerfilMenosActual(planParaCrear.Consecutivo, planParaCrear.CodigoTipoPerfil); } NoticiasRepository noticiasRepo = new NoticiasRepository(context); Notificaciones notificacion = new Notificaciones { CodigoTipoNotificacion = (int)TipoNotificacionEnum.NuevoPlan, CodigoPlanNuevo = planParaCrear.Consecutivo, Creacion = DateTime.Now }; noticiasRepo.CrearNotificacion(notificacion); wrapperCrearPlan.NumeroRegistrosAfectados += await context.SaveChangesAsync(); //if (notificacion.Consecutivo > 0) //{ // TimeLineNotificaciones timeLineNotificacion = new TimeLineNotificaciones(await noticiasRepo.BuscarNotificacion(notificacion)); //} } return(wrapperCrearPlan); } }
public async Task <WrapperSimpleTypesDTO> AsignarPlanDefault(Planes planParaAsignar) { using (SportsGoEntities context = new SportsGoEntities(false)) { PlanesRepository planRepository = new PlanesRepository(context); Planes planExistente = await planRepository.AsignarPlanDefault(planParaAsignar); // Para dejar el plan existente como el unico default await planRepository.DesasignarPlanDefaultDeUnPerfilMenosActual(planExistente.Consecutivo, planExistente.CodigoTipoPerfil); WrapperSimpleTypesDTO wrapperAsignarPlanDefault = new WrapperSimpleTypesDTO(); wrapperAsignarPlanDefault.NumeroRegistrosAfectados = await context.SaveChangesAsync(); if (wrapperAsignarPlanDefault.NumeroRegistrosAfectados > 0) { wrapperAsignarPlanDefault.Exitoso = true; } return(wrapperAsignarPlanDefault); } }
public async Task <WrapperSimpleTypesDTO> ModificarPlan(Planes planParaModificar) { using (SportsGoEntities context = new SportsGoEntities(false)) { PlanesRepository planRepository = new PlanesRepository(context); planParaModificar.CodigoTipoPerfil = (int)planParaModificar.TipoPerfil; Planes planExistente = await planRepository.ModificarPlan(planParaModificar); if (planParaModificar.PlanesContenidos != null && planParaModificar.PlanesContenidos.Count > 0) { foreach (var planContenido in planParaModificar.PlanesContenidos) { if (planContenido.Consecutivo > 0) { await planRepository.ModificarPlanContenido(planContenido); } else { planRepository.CrearPlanContenido(planContenido); } } } // Si lo voy a desasignar como default valido que no me quede sin defaults if (planExistente.PlanDefault == 1 && planParaModificar.PlanDefault == 0) { TipoPerfil tipoPerfil = planParaModificar.CodigoTipoPerfil.ToEnum <TipoPerfil>(); int numeroDePlanesDefault = await planRepository.NumeroPlanesDefault(tipoPerfil); if (numeroDePlanesDefault <= 1) { throw new InvalidOperationException("No puedes quedarte sin planes default para el perfil de " + tipoPerfil.ToString() + "!."); } planExistente.PlanDefault = 0; } else { // Si lo voy a asignar entonces mando a desasignar todos los default de este perfil y procedo a asignar el que estoy modificando if (planExistente.PlanDefault == 0 && planParaModificar.PlanDefault == 1) { await planRepository.DesasignarPlanDefaultDeUnPerfilMenosActual(planExistente.Consecutivo, planExistente.CodigoTipoPerfil); } planExistente.PlanDefault = planParaModificar.PlanDefault; } WrapperSimpleTypesDTO wrapperModificarPlan = new WrapperSimpleTypesDTO(); wrapperModificarPlan.NumeroRegistrosAfectados = await context.SaveChangesAsync(); if (wrapperModificarPlan.NumeroRegistrosAfectados > 0) { wrapperModificarPlan.Exitoso = true; } return(wrapperModificarPlan); } }