public async Task <WrapperSimpleTypesDTO> EliminarCategoriaGrupo(CategoriasGrupos categoriaGrupoParaBorrar) { using (SportsGoEntities context = new SportsGoEntities(false)) { CategoriasRepository categoriasRepo = new CategoriasRepository(context); int?codigoGrupo = await categoriasRepo.BuscarCodigoCandidatoDeUnaCategoriaGrupo(categoriaGrupoParaBorrar.Consecutivo); if (!codigoGrupo.HasValue) { throw new InvalidOperationException("No se pudo hallar el codigo del grupo para borrar la categoria y modificar el plan!."); } categoriasRepo.EliminarCategoriaGrupo(categoriaGrupoParaBorrar); PlanesRepository planRepo = new PlanesRepository(context); int?codigoPlanExistente = await planRepo.BuscarCodigoPlanUsuarioPorCodigoGrupo(codigoGrupo.Value); if (!codigoPlanExistente.HasValue) { throw new InvalidOperationException("No se pudo hallar el plan del grupo para crear la categoria para el!."); } // Se "BAJA" el contador de categorias 1 PlanesUsuarios planUsuarioExistente = await planRepo.ModificarNumeroCategoriasUsadas(codigoPlanExistente.Value, -1); WrapperSimpleTypesDTO wrapperEliminarCategoriaGrupo = new WrapperSimpleTypesDTO(); wrapperEliminarCategoriaGrupo.NumeroRegistrosAfectados = await context.SaveChangesAsync(); if (wrapperEliminarCategoriaGrupo.NumeroRegistrosAfectados > 0) { wrapperEliminarCategoriaGrupo.Exitoso = true; } return(wrapperEliminarCategoriaGrupo); } }