private void Dashboard_ConfigureDataConnection(object sender, ConfigureDataConnectionWebEventArgs e) { if (e.ConnectionParameters is ExtractDataSourceConnectionParameters extractParameters) { if (Guid.TryParse(extractParameters.FileName, out var id)) { DashboardDataExtract extract = GetDataExtract(id); if (extract != null) extract.ConfigureConnectionParameters(extractParameters); } } }
private void UpdateDataExtract(DashboardDataExtract extract) { if (extract == null) { throw new ArgumentNullException(nameof(extract)); } if (string.IsNullOrWhiteSpace(extract.Script)) { return; } using (DashboardObjectDataSource ods = new DashboardObjectDataSource()) { ScriptDataSource dataSource = new ScriptDataSource(extract.Script) { Application = Application }; object data = dataSource.GetDataForDataExtract(); if (data is byte[] buffer) { SetDataExtractContent(extract, buffer); return; } ods.DataSource = data; string fileName = Path.GetTempFileName(); try { using (DashboardExtractDataSource extractDataSource = new DashboardExtractDataSource()) { extractDataSource.ExtractSourceOptions.DataSource = ods; extractDataSource.FileName = fileName; extractDataSource.UpdateExtractFile(); SetDataExtractContent(extract, File.ReadAllBytes(fileName)); } } finally { if (File.Exists(fileName)) { File.Delete(fileName); } } } }
protected virtual ScriptDataSource CreateScriptDataSource(DashboardDataExtract extract, XafApplication application) => new ScriptDataSource(extract.Script) { Application = application };
private static void SetDataExtractContent(DashboardDataExtract extract, byte[] fileData) { extract.ExtractData = fileData; extract.ExtractDataSize = extract.ExtractData.LongLength; }
public void StartDataExtractUpdate(DashboardDataExtract dataExtract) { throw new NotImplementedException(); }
public void ScheduleDataExtractCreationJob(DashboardDataExtract dataExtract) { var channel = CreateChannel(); channel.ScheduleUpdateDataExtractJob(dataExtract.Oid); }
public void RemoveDataExtractCreationJob(DashboardDataExtract dataExtract) { var channel = CreateChannel(); channel.RemoveUpdateDataExtractJob(dataExtract.Oid); }
public void StartDataExtractUpdate(DashboardDataExtract dataExtract) { var channel = CreateChannel(); channel.StartDataExtractUpdate(dataExtract.Oid); }