public async Task <WrapperSimpleTypesDTO> ModificarArchivoAnuncio(int codigoTipoArchivo, int codigoAnuncio, int?codigoArchivo, Stream sourceStream)
        {
            using (SportsGoEntities context = new SportsGoEntities(false))
                using (DbContextTransaction transaction = context.Database.BeginTransaction())
                {
                    ArchivosRepository archivoRepo = new ArchivosRepository(context);

                    Archivos archivoParaCrear = new Archivos
                    {
                        CodigoTipoArchivo = codigoTipoArchivo,
                        ArchivoContenido  = new byte[] { 0, 1, 2 }
                    };

                    archivoRepo.CrearArchivo(archivoParaCrear);

                    WrapperSimpleTypesDTO wrapper = new WrapperSimpleTypesDTO();
                    wrapper.NumeroRegistrosAfectados = await context.SaveChangesAsync();

                    await archivoRepo.ModificarArchivoContenidoStream(archivoParaCrear.Consecutivo, sourceStream);

                    if (wrapper.NumeroRegistrosAfectados > 0 || archivoParaCrear.Consecutivo > 0)
                    {
                        wrapper.Exitoso                  = true;
                        wrapper.ConsecutivoCreado        = archivoParaCrear.Consecutivo;
                        wrapper.ConsecutivoArchivoCreado = archivoParaCrear.Consecutivo;

                        AnunciantesRepository anuncioRepo = new AnunciantesRepository(context);

                        // Meto el consecutivo del archivo generado por el EF por la creacion
                        Anuncios anuncio = new Anuncios
                        {
                            Consecutivo   = codigoAnuncio,
                            CodigoArchivo = archivoParaCrear.Consecutivo
                        };

                        Anuncios anuncioExistente = await anuncioRepo.ModificarCodigoArchivoAnuncio(anuncio);

                        // Elimino el viejo archivo
                        if (codigoArchivo.HasValue && codigoArchivo > 0)
                        {
                            Archivos archivoParaBorrar = new Archivos
                            {
                                Consecutivo = codigoArchivo.Value
                            };

                            archivoRepo.EliminarArchivo(archivoParaBorrar);
                        }

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

                        transaction.Commit();
                    }

                    return(wrapper);
                }
        }