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); } }