private string GenerateDownloadFile(DatasetVersion datasetVersion)
{
TaskManager TaskManager = (TaskManager)Session["TaskManager"];
//dataset id and data structure id are available via datasetVersion properties,why you are passing them via the BUS? Javad
long datasetId = Convert.ToInt64(TaskManager.Bus[TaskManager.DATASET_ID]);
long dataStructureId = Convert.ToInt64(TaskManager.Bus[TaskManager.DATASTRUCTURE_ID]);
DatasetManager datasetManager = new DatasetManager();
string title = TaskManager.Bus[TaskManager.DATASET_TITLE].ToString();
string ext = ".xlsm";// TaskManager.Bus[TaskManager.EXTENTION].ToString();
ExcelWriter excelWriter = new ExcelWriter();
// create the generated file and determine its location
string path = excelWriter.CreateFile(datasetId, datasetVersion.VersionNo, dataStructureId, title, ext);
string dynamicPath = excelWriter.GetDynamicStorePath(datasetId, datasetVersion.VersionNo, title, ext);
//Register the generated data file as a resource of the current dataset version
ContentDescriptor generatedDescriptor = new ContentDescriptor()
{
OrderNo = 1,
Name = "generated",
MimeType = "application/xlsm",
URI = dynamicPath,
DatasetVersion = datasetVersion,
};
if (datasetVersion.ContentDescriptors.Count(p => p.Name.Equals(generatedDescriptor.Name)) > 0)
{ // remove the one contentdesciptor
foreach (ContentDescriptor cd in datasetVersion.ContentDescriptors)
{
if (cd.Name == generatedDescriptor.Name)
{
cd.URI = generatedDescriptor.URI;
}
}
}
else
{
// add current contentdesciptor to list
datasetVersion.ContentDescriptors.Add(generatedDescriptor);
}
// note: the descriptors are not persisted yet, they will be persisted if the caller of this method persists the datasetVersion object.
return path;
}