London Dev Meetup Rescheduled! Due to unavoidable reasons, the event has been moved to 21st May. Speakers remain the same—any changes will be communicated. Seats are limited—register here to secure your spot!

Programmatically creating a media file that can be downloaded

Vote:
 

I'm creating a media file (text or, preferrably xml) in a scheduled job but the created file cannot be downloaded from the media folder. The code I use to create the file:

string fileExtension = ".txt";
Type mediaType = this.contentMediaResolver.GetFirstMatching(fileExtension);
ContentType contentType = contentTypeRepository.Load(mediaType);
GenericMedia golfCourseFile = this.contentRepository.GetDefault(SiteDefinition.Current.GlobalAssetsRoot, contentType.ID);
golfCourseFile.Name = string.Format("{0}{1}{2}", this.fileNamePrefix, "GolfCourses", fileExtension);
Blob golfCourseBlob = this.blobFactory.CreateBlob(golfCourseFile.BinaryDataContainer, fileExtension);
XDocument golfCourseDocument = new XDocument(new XElement("Courses"));

// populate XDocument

using (Stream stream = golfCourseBlob.OpenWrite())
{
    golfCourseDocument.Save(stream);
}

this.contentRepository.Save(golfCourseFile, SaveAction.Publish, AccessLevel.NoAccess);

Then in the CMS I run the job but the download option on the generated file is disabled. How can I generate the file from the scheduled job and allow editors to download the file from the media library?

Thanks,

#191048
Edited, Apr 19, 2018 13:08
Vote:
 

I think you need to specify the content of the file immediately above the save: 

golfCourseFile.BinaryData = golfCourseBlob;
this.contentRepository.Save(golfCourseFile, SaveAction.Publish, AccessLevel.NoAccess);
#191056
Edited, Apr 19, 2018 14:25
Vote:
 

Thank you Darren!

#191060
Apr 19, 2018 15:07
This topic was created over six months ago and has been resolved. If you have a similar question, please create a new topic and refer to this one.
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.