public async Task <WrapperSimpleTypesDTO> DesasignarPlanDefault(Planes planParaDesasignar) { using (SportsGoEntities context = new SportsGoEntities(false)) { PlanesRepository planRepository = new PlanesRepository(context); int?codigoTipoPerfilPlan = await planRepository.BuscarCodigoTipoPerfilDeUnPlan(planParaDesasignar); if (!codigoTipoPerfilPlan.HasValue) { throw new InvalidOperationException("El plan no tiene un tipo de perfil especificado!. BUUUUUGGGGGG!."); } TipoPerfil tipoPerfil = codigoTipoPerfilPlan.Value.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() + "!."); } Planes planExistente = await planRepository.DesasignarPlanDefault(planParaDesasignar); WrapperSimpleTypesDTO wrapperDesasignarPlanDefault = new WrapperSimpleTypesDTO(); wrapperDesasignarPlanDefault.NumeroRegistrosAfectados = await context.SaveChangesAsync(); if (wrapperDesasignarPlanDefault.NumeroRegistrosAfectados > 0) { wrapperDesasignarPlanDefault.Exitoso = true; } return(wrapperDesasignarPlanDefault); } }
public async Task <WrapperSimpleTypesDTO> EliminarPlan(Planes planParaEliminar) { using (SportsGoEntities context = new SportsGoEntities(false)) { PlanesRepository planRepository = new PlanesRepository(context); int?codigoTipoPerfilPlan = await planRepository.BuscarCodigoTipoPerfilDeUnPlan(planParaEliminar); if (!codigoTipoPerfilPlan.HasValue) { throw new InvalidOperationException("El plan no tiene un tipo de perfil especificado!. BUUUUUGGGGGG!."); } TipoPerfil tipoPerfil = codigoTipoPerfilPlan.Value.ToEnum <TipoPerfil>(); int numeroDePlanesDefault = await planRepository.NumeroPlanesDefault(tipoPerfil); if (numeroDePlanesDefault <= 1) { bool esPlanDefault = await planRepository.BuscarSiPlanEsDefault(planParaEliminar); if (esPlanDefault) { throw new InvalidOperationException("No puedes quedarte sin planes default para el perfil de " + tipoPerfil.ToString() + "!."); } } NoticiasRepository noticiasRepo = new NoticiasRepository(context); Notificaciones notificacion = new Notificaciones { CodigoPlanNuevo = planParaEliminar.Consecutivo }; noticiasRepo.EliminarNotificacionesDeUnPlan(notificacion); PlanesContenidos planContenido = new PlanesContenidos { CodigoPlan = planParaEliminar.Consecutivo }; planRepository.EliminarMultiplesPlanesContenidos(planContenido); planRepository.EliminarPlan(planParaEliminar); ArchivosRepository archivoRepo = new ArchivosRepository(context); Archivos archivo = new Archivos { Consecutivo = planParaEliminar.CodigoArchivo }; archivoRepo.EliminarArchivo(archivo); WrapperSimpleTypesDTO wrapperEliminarPlan = new WrapperSimpleTypesDTO(); wrapperEliminarPlan.NumeroRegistrosAfectados = await context.SaveChangesAsync(); if (wrapperEliminarPlan.NumeroRegistrosAfectados > 0) { wrapperEliminarPlan.Exitoso = true; } return(wrapperEliminarPlan); } }
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); } }