public async Task <WrapperSimpleTypesDTO> EliminarCategoriaCandidato(CategoriasCandidatos categoriaCandidatoParaBorrar) { using (SportsGoEntities context = new SportsGoEntities(false)) { HabilidadesRepository habilidadesRepo = new HabilidadesRepository(context); HabilidadesCandidatos habilidadParaBorrar = new HabilidadesCandidatos { CodigoCategoriaCandidato = categoriaCandidatoParaBorrar.Consecutivo }; habilidadesRepo.EliminarMultiplesHabilidadesCandidatosPorCodigoCandidato(habilidadParaBorrar); CategoriasRepository categoriasRepo = new CategoriasRepository(context); int?codigoCandidato = await categoriasRepo.BuscarCodigoCandidatoDeUnaCategoriaCandidato(categoriaCandidatoParaBorrar.Consecutivo); if (!codigoCandidato.HasValue) { throw new InvalidOperationException("No se pudo hallar el codigo del candidato para borrar la categoria y modificar el plan!."); } categoriasRepo.EliminarCategoriaCandidato(categoriaCandidatoParaBorrar); PlanesRepository planRepo = new PlanesRepository(context); int?codigoPlanExistente = await planRepo.BuscarCodigoPlanUsuarioPorCodigoCandidato(codigoCandidato.Value); if (!codigoPlanExistente.HasValue) { throw new InvalidOperationException("No se pudo hallar el plan del candidato para crear la categoria para el!."); } // Se "BAJA" el contador de categorias 1 PlanesUsuarios planUsuarioExistente = await planRepo.ModificarNumeroCategoriasUsadas(codigoPlanExistente.Value, -1); WrapperSimpleTypesDTO wrapperEliminarCategoriaCandidato = new WrapperSimpleTypesDTO(); wrapperEliminarCategoriaCandidato.NumeroRegistrosAfectados = await context.SaveChangesAsync(); if (wrapperEliminarCategoriaCandidato.NumeroRegistrosAfectados > 0) { wrapperEliminarCategoriaCandidato.Exitoso = true; } return(wrapperEliminarCategoriaCandidato); } }
public async Task <WrapperSimpleTypesDTO> CrearCategoriaCandidatos(CategoriasCandidatos categoriaCandidatoParaCrear) { using (SportsGoEntities context = new SportsGoEntities(false)) { PlanesRepository planRepo = new PlanesRepository(context); int?codigoPlanExistente = await planRepo.BuscarCodigoPlanUsuarioPorCodigoCandidato(categoriaCandidatoParaCrear.CodigoCandidato); if (!codigoPlanExistente.HasValue) { throw new InvalidOperationException("No se pudo hallar el plan del candidato para crear la categoria para el!."); } // Se "SUBE" el contador de categorias 1 PlanesUsuarios planUsuarioExistente = await planRepo.ModificarNumeroCategoriasUsadas(codigoPlanExistente.Value, 1); if (categoriaCandidatoParaCrear.HabilidadesCandidatos != null && categoriaCandidatoParaCrear.HabilidadesCandidatos.Count > 0) { categoriaCandidatoParaCrear.HabilidadesCandidatos = categoriaCandidatoParaCrear.HabilidadesCandidatos.Where(x => x.NumeroEstrellas > 0).ToList(); } CategoriasRepository categoriasRepo = new CategoriasRepository(context); categoriasRepo.CrearCategoriaCandidatos(categoriaCandidatoParaCrear); WrapperSimpleTypesDTO wrapperCrearCategoriaCandidato = new WrapperSimpleTypesDTO(); wrapperCrearCategoriaCandidato.NumeroRegistrosAfectados = await context.SaveChangesAsync(); if (wrapperCrearCategoriaCandidato.NumeroRegistrosAfectados > 0) { wrapperCrearCategoriaCandidato.Exitoso = true; wrapperCrearCategoriaCandidato.ConsecutivoCreado = categoriaCandidatoParaCrear.Consecutivo; } return(wrapperCrearCategoriaCandidato); } }