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;
 }
예제 #5
0
 public void StartDataExtractUpdate(DashboardDataExtract dataExtract)
 {
     throw new NotImplementedException();
 }
예제 #6
0
        public void ScheduleDataExtractCreationJob(DashboardDataExtract dataExtract)
        {
            var channel = CreateChannel();

            channel.ScheduleUpdateDataExtractJob(dataExtract.Oid);
        }
예제 #7
0
        public void RemoveDataExtractCreationJob(DashboardDataExtract dataExtract)
        {
            var channel = CreateChannel();

            channel.RemoveUpdateDataExtractJob(dataExtract.Oid);
        }
        public void StartDataExtractUpdate(DashboardDataExtract dataExtract)
        {
            var channel = CreateChannel();

            channel.StartDataExtractUpdate(dataExtract.Oid);
        }