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> 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); } }
internal async Task <WrapperSimpleTypesDTO> CambiarPlanUsuarioADefaultPerfilPorVencimiento(PlanesUsuariosDTO planesUsuariosVencidoParaCambiar) { using (SportsGoEntities context = new SportsGoEntities(false)) { PlanesRepository planesRepo = new PlanesRepository(context); Planes planParaBuscar = new Planes { Consecutivo = planesUsuariosVencidoParaCambiar.CodigoPlan }; int?codigoPerfil = await planesRepo.BuscarCodigoTipoPerfilDeUnPlan(planParaBuscar); if (!codigoPerfil.HasValue) { throw new InvalidOperationException("No se pudo hallar el codigo de perfil!. BUUUUG"); } TipoPerfil tipoPerfil = codigoPerfil.Value.ToEnum <TipoPerfil>(); int? codigoPlanDefault = await planesRepo.BuscarCodigoPlanDefault(tipoPerfil); if (!codigoPlanDefault.HasValue) { throw new InvalidOperationException("No se pudo hallar el codigo del plan default para este perfil!. BUUUUG"); } PlanesUsuarios planParaCambiar = new PlanesUsuarios { Consecutivo = planesUsuariosVencidoParaCambiar.Consecutivo, CodigoPlanDeseado = codigoPlanDefault.Value }; WrapperSimpleTypesDTO wrapper = await CambiarDePlanUsuario(planParaCambiar); return(wrapper); } }