예제 #1
0
        public async Task <WrapperSimpleTypesDTO> EliminarAnuncio(Anuncios anuncioParaEliminar)
        {
            using (SportsGoEntities context = new SportsGoEntities(false))
            {
                AnunciantesRepository anuncianteRepo             = new AnunciantesRepository(context);
                AnunciosContenidos    anuncioContenidoParaBorrar = new AnunciosContenidos
                {
                    CodigoAnuncio = anuncioParaEliminar.Consecutivo
                };
                anuncianteRepo.EliminarMultiplesContenidosAnuncios(anuncioContenidoParaBorrar);

                AnunciosPaises anuncioPaisesParaBorrar = new AnunciosPaises
                {
                    CodigoAnuncio = anuncioParaEliminar.Consecutivo
                };
                anuncianteRepo.EliminarMultiplesAnuncioPais(anuncioPaisesParaBorrar);

                CategoriasRepository categoriasRepo = new CategoriasRepository(context);
                CategoriasAnuncios   categoriasAnunciosParaBorrar = new CategoriasAnuncios
                {
                    CodigoAnuncio = anuncioParaEliminar.Consecutivo
                };
                categoriasRepo.EliminarMultiplesCategoriasAnuncios(categoriasAnunciosParaBorrar);

                int?codigoArchivoDeAnuncio = await anuncianteRepo.BuscarArchivoDeUnAnuncio(anuncioParaEliminar);

                anuncianteRepo.EliminarAnuncio(anuncioParaEliminar);

                WrapperSimpleTypesDTO wrapperEliminarAnuncio = new WrapperSimpleTypesDTO();

                wrapperEliminarAnuncio.NumeroRegistrosAfectados = await context.SaveChangesAsync();

                if (codigoArchivoDeAnuncio.HasValue)
                {
                    ArchivosRepository archivoRepo         = new ArchivosRepository(context);
                    Archivos           archivoParaEliminar = new Archivos
                    {
                        Consecutivo = codigoArchivoDeAnuncio.Value,
                    };
                    archivoRepo.EliminarArchivo(archivoParaEliminar);
                }

                wrapperEliminarAnuncio.NumeroRegistrosAfectados += await context.SaveChangesAsync();

                if (wrapperEliminarAnuncio.NumeroRegistrosAfectados > 0)
                {
                    wrapperEliminarAnuncio.Exitoso = true;
                }

                return(wrapperEliminarAnuncio);
            }
        }