public async void ExportBacpac()
        {
            var       result = GetLiveAutoCompleteTestObjects();
            SqlTestDb testdb = await SqlTestDb.CreateNewAsync(TestServerType.OnPrem, false, null, null, "DacFxExportTest");

            string folderPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "DacFxTest");

            Directory.CreateDirectory(folderPath);

            try
            {
                var exportParams = new ExportParams
                {
                    DatabaseName    = testdb.DatabaseName,
                    PackageFilePath = Path.Combine(folderPath, string.Format("{0}.bacpac", testdb.DatabaseName))
                };

                DacFxService    service   = new DacFxService();
                ExportOperation operation = new ExportOperation(exportParams, result.ConnectionInfo);
                service.PerformOperation(operation, TaskExecutionMode.Execute);

                VerifyAndCleanup(exportParams.PackageFilePath);
            }
            finally
            {
                testdb.Cleanup();
            }
        }
Example #2
0
        public static void ProcessExport(HttpContext context)
        {
            IList <string>      columnFields;
            IDataExportProvider provider;
            string extension;
            string portal  = context.Request["portal"];
            string columns = context.Request["columns"];

            //获取导出提供者
            switch (context.Request["exportFormat"] ?? "excel")
            {
            default:
            case "excel":
                provider  = new LocaledExcelExportProvider();
                extension = "xls";
                break;

            case "csv":
                provider  = new CsvExportProvider();
                extension = "csv";
                break;

            case "txt":
                provider  = new TextExportProvider();
                extension = "txt";
                break;
            }


            //获取列名
            // Regex reg = new Regex("^export_fields\\[\\d+\\]$", RegexOptions.IgnoreCase);
            columnFields = new List <string>();

//            foreach (string key in context.Request.QueryString.Keys)
//            {
//                if (reg.IsMatch(key))
//                {
//                    columnFields.Add(context.Request.QueryString[key]);
//                }
//            }


            IDataExportPortal _portal = ExportItemManager.GetPortal(context.Request.QueryString["portal"]);

            if (_portal == null)
            {
                throw new ArgumentNullException("_portal");
            }

            ExportParams parameter = DataExportDirector.GetExportParams(context.Request["params"], columnFields.ToArray());


            byte[] bytes = DataExportDirector.Export(_portal, parameter, provider);

            context.Response.BinaryWrite(bytes);
            context.Response.ContentType = "application/octet-stream";
            context.Response.AppendHeader("Content-Disposition", String.Format("attachment;filename=\"{0:yyyyMMdd-hhssfff}.{1}\"",
                                                                               DateTime.Now,
                                                                               extension));
        }
        private async Task <Mock <RequestContext <DacFxResult> > > SendAndValidateExportRequest()
        {
            var result         = GetLiveAutoCompleteTestObjects();
            var requestContext = new Mock <RequestContext <DacFxResult> >();

            requestContext.Setup(x => x.SendResult(It.IsAny <DacFxResult>())).Returns(Task.FromResult(new object()));

            SqlTestDb testdb = await SqlTestDb.CreateNewAsync(TestServerType.OnPrem, false, null, null, "DacFxExportTest");

            string folderPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "DacFxTest");

            Directory.CreateDirectory(folderPath);

            var exportParams = new ExportParams
            {
                DatabaseName    = testdb.DatabaseName,
                PackageFilePath = Path.Combine(folderPath, string.Format("{0}.bacpac", testdb.DatabaseName))
            };

            DacFxService    service   = new DacFxService();
            ExportOperation operation = new ExportOperation(exportParams, result.ConnectionInfo);

            service.PerformOperation(operation);

            // cleanup
            VerifyAndCleanup(exportParams.PackageFilePath);
            testdb.Cleanup();

            return(requestContext);
        }
Example #4
0
        /// <summary>
        /// Экспортирует сущности по определенным параметрам.
        /// </summary>
        /// <param name="token">Токен безопасности. </param>
        /// <param name="exportParams">Параметры экспорта.</param>
        /// <returns>Результат.</returns>
        public byte[] Export(SecurityToken token, ExportParams exportParams)
        {
            _logger.InfoFormat("Старт экспортирования типа {0} с {1} по {2}", exportParams.Kind.KindID,
                               exportParams.BeginDate, exportParams.EndDate);

            byte[] content;

            if (exportParams.Kind == null)
            {
                return(new byte[0]);
            } //if

            using (var stream = new MemoryStream())
            {
                switch (exportParams.Kind.KindID)
                {
                case 1:     //ExportKindSet.OnlyOrders.KindID:
                    ExportOnlyOrders(token, exportParams, stream);
                    break;
                }

                var position = (int)stream.Position;
                stream.Seek(0, SeekOrigin.Begin);
                content = new byte[position];
                stream.Read(content, 0, position);
            } //using

            return(content);
        }
Example #5
0
            /// <summary>
            /// Конструктор
            /// </summary>
            public ExportDestination(DataSource dataSource, ExportParams exportParams)
            {
                if (dataSource == null)
                {
                    throw new ArgumentNullException("dataSource");
                }
                if (exportParams == null)
                {
                    throw new ArgumentNullException("exportParams");
                }

                this.DataSource   = dataSource;
                this.ExportParams = exportParams;
            }
		public async Task<ActionResult<ExportParams>> GetExportedReport([FromBody] ExportParams exportParams)
		{
			if (string.IsNullOrWhiteSpace(exportParams.PageName))
			{
				return BadRequest(Constant.MissingPageName);
			}
			else if (string.IsNullOrWhiteSpace(exportParams.FileFormat))
			{
				return BadRequest(Constant.MissingFileFormat);
			}

			try
			{
				// Get username and role of user 
				var userInfo = JwtAuthHelper.GetUsernameAndRole(User.Identity as ClaimsIdentity);

				// Generated exported file
				var exportedFile = await exportService.GetExportedFile(exportParams.PageName, exportParams.FileFormat, exportParams.PageState, userInfo.username, userInfo.role);

				return Ok(File(exportedFile.MemoryStream.ToArray(), exportedFile.MimeType, exportedFile.FileName));
			}
			catch (MsalServiceException ex)
			{
				logger.LogError(ex, ex.Message);
				return StatusCode(ex.StatusCode, ex.Message);
			}
			catch (MsalClientException ex)
			{
				logger.LogError(ex, ex.Message);
				if (Int32.TryParse(ex.ErrorCode, out int errorCode))
				{
					return StatusCode(errorCode, ex.Message);
				}
				else
				{
					return StatusCode(403, ex.Message);
				}
			}
			catch (HttpOperationException ex)
			{
				logger.LogError(ex, ex.Message);
				JObject error = ErrorHelper.ExtractPowerBiErrorInfo(ex);
				return StatusCode((int)ex.Response.StatusCode, Convert.ToString(error, cultureInfo));
			}
			catch (Exception ex)
			{
				logger.LogError(ex, ex.Message);
				return StatusCode((int)HttpStatusCode.InternalServerError);
			}
		}
Example #7
0
        public static byte[] Export(IDataExportPortal portal, ExportParams parameters, IDataExportProvider provider)
        {
            int totalCount;
            IDictionary<string, String> dict = null;

            //获取参数的索引及名称
            if (parameters != null && parameters.ExportFields != null)
            {
                dict = portal.GetExportFieldAndName(parameters.ExportFields);
            }
            return
                provider.Export(
                    portal.GetShemalAndData(parameters == null ? null : parameters.Parameters, out totalCount), dict);
        }
        private async Task <Mock <RequestContext <DacFxResult> > > SendAndValidateImportRequest()
        {
            // first export a bacpac
            var result = GetLiveAutoCompleteTestObjects();
            var exportRequestContext = new Mock <RequestContext <DacFxResult> >();

            exportRequestContext.Setup(x => x.SendResult(It.IsAny <DacFxResult>())).Returns(Task.FromResult(new object()));

            SqlTestDb sourceDb = await SqlTestDb.CreateNewAsync(TestServerType.OnPrem, false, null, null, "DacFxImportTest");

            string folderPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "DacFxTest");

            Directory.CreateDirectory(folderPath);

            var exportParams = new ExportParams
            {
                DatabaseName    = sourceDb.DatabaseName,
                PackageFilePath = Path.Combine(folderPath, string.Format("{0}.bacpac", sourceDb.DatabaseName))
            };

            SqlConnection   sqlConn         = ConnectionService.OpenSqlConnection(result.ConnectionInfo, "Import");
            DacFxService    service         = new DacFxService();
            ExportOperation exportOperation = new ExportOperation(exportParams, sqlConn);

            service.PerformOperation(exportOperation);

            // import the created bacpac
            var importRequestContext = new Mock <RequestContext <DacFxResult> >();

            importRequestContext.Setup(x => x.SendResult(It.IsAny <DacFxResult>())).Returns(Task.FromResult(new object()));

            var importParams = new ImportParams
            {
                PackageFilePath = exportParams.PackageFilePath,
                DatabaseName    = string.Concat(sourceDb.DatabaseName, "-imported")
            };

            ImportOperation importOperation = new ImportOperation(importParams, sqlConn);

            service.PerformOperation(importOperation);
            SqlTestDb targetDb = SqlTestDb.CreateFromExisting(importParams.DatabaseName);

            // cleanup
            VerifyAndCleanup(exportParams.PackageFilePath);
            sourceDb.Cleanup();
            targetDb.Cleanup();

            return(importRequestContext);
        }
Example #9
0
        internal static DataTable LoadAttendanceClock(ExportParams exporrParams)
        {
            DataTable result = new DataTable();
            string    query  =
                "SELECT Id, TransactionCode, TerminalId, BaseDataId, UserPrimaryCode, " +
                "ClockDate, ClockTime, TransactionDateTime, TempleteId, MatchingScore, LastUpdated, ClockStatus " +
                string.Format(" FROM eid_attendance_log {0}", exporrParams.AllData ? "" :
                              string.Format(" WHERE ClockDate>= '{0}' AND ClockDate <= '{1}'", exporrParams.StartDate, exporrParams.EndDate));

            MySqlDataAdapter Adapter = new MySqlDataAdapter(query, myConn);

            Adapter.Fill(result);

            return(result);
        }
        public async void ImportBacpac()
        {
            // first export a bacpac
            var       result   = GetLiveAutoCompleteTestObjects();
            SqlTestDb sourceDb = await SqlTestDb.CreateNewAsync(TestServerType.OnPrem, false, null, null, "DacFxImportTest");

            SqlTestDb targetDb   = null;
            string    folderPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "DacFxTest");

            Directory.CreateDirectory(folderPath);

            try
            {
                var exportParams = new ExportParams
                {
                    DatabaseName    = sourceDb.DatabaseName,
                    PackageFilePath = Path.Combine(folderPath, string.Format("{0}.bacpac", sourceDb.DatabaseName))
                };

                DacFxService    service         = new DacFxService();
                ExportOperation exportOperation = new ExportOperation(exportParams, result.ConnectionInfo);
                service.PerformOperation(exportOperation, TaskExecutionMode.Execute);

                // import the created bacpac
                var importParams = new ImportParams
                {
                    PackageFilePath = exportParams.PackageFilePath,
                    DatabaseName    = string.Concat(sourceDb.DatabaseName, "-imported")
                };

                ImportOperation importOperation = new ImportOperation(importParams, result.ConnectionInfo);
                service.PerformOperation(importOperation, TaskExecutionMode.Execute);
                targetDb = SqlTestDb.CreateFromExisting(importParams.DatabaseName);

                VerifyAndCleanup(exportParams.PackageFilePath);
            }
            finally
            {
                sourceDb.Cleanup();
                if (targetDb != null)
                {
                    targetDb.Cleanup();
                }
            }
        }
Example #11
0
        private void ExportScripts()
        {
            ExportParams exportParams = new ExportParams();

            exportParams.UseMultipleFiles = true;  // for now this always must be true

            exportParams.ScriptDataAsSql        = chkDataSql.Checked;
            exportParams.ScriptDataAsXml        = chkDataXml.Checked;
            exportParams.ScriptTableSchema      = chkSchema.Checked;
            exportParams.ScriptTableConstraints = chkConstraints.Checked;
            exportParams.ScriptTableIndexes     = chkIndex.Checked;

            if (exportParams.ScriptDataAsSql || exportParams.ScriptDataAsXml)
            {
                foreach (string table in lstTable.SelectedItems)
                {
                    exportParams.TablesToScriptData.Add(table);
                }
            }

            foreach (string sproc in lstSproc.SelectedItems)
            {
                exportParams.SprocsToScript.Add(sproc);
            }

            foreach (string table in lstTable.SelectedItems)
            {
                exportParams.TablesToScript.Add(table);
            }

            foreach (string view in lstView.SelectedItems)
            {
                exportParams.ViewsToScript.Add(view);
            }

            try
            {
                exportSession.Export(txtExportRootDir.Text, exportParams);
            }
            catch (SqlExporterException ex)
            {
                ShowError(ex.Message);
            }
        }
        private void ExportButton_OnClick(object sender, RoutedEventArgs e)
        {
            try
            {
                var saveFileDialog = new SaveFileDialog
                {
                    FileName = "export.xlsx",
                    Filter   = "Excel Worksheets|*.xlsx"
                };

                if (saveFileDialog.ShowDialog() == true)
                {
                    var exportParams = new ExportParams(
                        new YearAndMonth(model.SelectedFromYear, model.SelectedFromMonth),
                        model.CloneRowsForMultipleCopies,
                        model.MergeFilePath,
                        saveFileDialog.FileName);
                    mergeAndExport(exportParams).Match(
                        Exception: (error) =>
                    {
                        MessageBox.Show(
                            this,
                            $"{Properties.Resources.ExportDataSourceError} ({error.Message})",
                            Properties.Resources.Error,
                            MessageBoxButton.OK,
                            MessageBoxImage.Error);
                    },
                        Success: _ =>
                    {
                        MessageBox.Show(
                            this,
                            Properties.Resources.ExportDataSourceSuccess,
                            Properties.Resources.Information,
                            MessageBoxButton.OK,
                            MessageBoxImage.Information);
                        Close();
                    });
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(this, ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
Example #13
0
 /// <summary>
 /// Handles request to export a bacpac
 /// </summary>
 /// <returns></returns>
 public async Task HandleExportRequest(ExportParams parameters, RequestContext <DacFxResult> requestContext)
 {
     try
     {
         ConnectionInfo connInfo;
         ConnectionServiceInstance.TryFindConnection(
             parameters.OwnerUri,
             out connInfo);
         if (connInfo != null)
         {
             ExportOperation operation = new ExportOperation(parameters, connInfo);
             ExecuteOperation(operation, parameters, SR.ExportBacpacTaskName, requestContext);
         }
     }
     catch (Exception e)
     {
         await requestContext.SendError(e);
     }
 }
Example #14
0
        private void buttonExport_Click(object sender, EventArgs e)
        {
            MessageNotifyer("Please wait while the attendance log is exporting...");

            if (folderBrowserExport.ShowDialog() == DialogResult.OK)
            {
                ExportParams exportParams = new ExportParams
                {
                    ExportDir = folderBrowserExport.SelectedPath,
                    AllData   = checkBoxAllData.Checked,
                    StartDate = dateTimeStart.Value.ToString("yyyy-MM-dd"),
                    EndDate   = dateTimeEnd.Value.ToString("yyyy-MM-dd")
                };

                //Disable UI Controls
                EnableUIControls(false);
                exportBgWorker.RunWorkerAsync(exportParams);
            }
        }
        private async Task <Mock <RequestContext <DacFxResult> > > ValidateExportCancellation()
        {
            var result         = GetLiveAutoCompleteTestObjects();
            var requestContext = new Mock <RequestContext <DacFxResult> >();

            requestContext.Setup(x => x.SendResult(It.IsAny <DacFxResult>())).Returns(Task.FromResult(new object()));

            SqlTestDb testdb = await SqlTestDb.CreateNewAsync(TestServerType.OnPrem, false, null, null, "DacFxExportTest");

            string folderPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "DacFxTest");

            Directory.CreateDirectory(folderPath);

            var exportParams = new ExportParams
            {
                DatabaseName    = testdb.DatabaseName,
                PackageFilePath = Path.Combine(folderPath, string.Format("{0}.bacpac", testdb.DatabaseName))
            };

            SqlConnection   sqlConn   = ConnectionService.OpenSqlConnection(result.ConnectionInfo, "Export");
            DacFxService    service   = new DacFxService();
            ExportOperation operation = new ExportOperation(exportParams, sqlConn);

            // set cancellation token to cancel
            operation.Cancel();
            OperationCanceledException expectedException = null;

            try
            {
                service.PerformOperation(operation);
            }
            catch (OperationCanceledException canceledException)
            {
                expectedException = canceledException;
            }

            Assert.NotNull(expectedException);

            // cleanup
            testdb.Cleanup();

            return(requestContext);
        }
Example #16
0
        private void exportBgWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            ExportParams exportParams = (ExportParams)e.Argument;
            //Load Attendance Logs
            DataTable result = DataServices.LoadAttendanceClock(exportParams);

            Double bgWorkerProgress             = 0.0;
            List <AttendanceLog> attendanceLogs = new List <AttendanceLog>();

            foreach (DataRow row in result.Rows)
            {
                AttendanceLog obj = new AttendanceLog
                {
                    Id                  = (Int32)row["Id"],
                    BaseDataId          = Convert.ToString(row["BaseDataId"]),
                    ClockDate           = Convert.ToString(row["ClockDate"]),
                    ClockStatus         = Convert.ToInt32(row["ClockStatus"]),
                    ClockTime           = Convert.ToString(row["ClockTime"]),
                    LastUpdated         = Convert.ToString(row["LastUpdated"]),
                    MatchingScore       = Convert.ToInt32(row["MatchingScore"]),
                    TempleteId          = Convert.ToInt32(row["TempleteId"]),
                    TerminalId          = Convert.ToString(row["TerminalId"]),
                    TransactionCode     = Convert.ToString(row["TransactionCode"]),
                    TransactionDateTime = Convert.ToString(row["TransactionDateTime"]),
                    UserPrimaryCode     = Convert.ToString(row["UserPrimaryCode"])
                };

                attendanceLogs.Add(obj);
                bgWorkerProgress = bgWorkerProgress += 1;
                var PercentageProgress = bgWorkerProgress / result.Rows.Count;
                var PercentageComplete = PercentageProgress * 100;
                exportBgWorker.ReportProgress(Convert.ToInt32(PercentageComplete), null);
            }

            //Write Attendance Logs To file
            string fileAppendage = exportParams.AllData ? "_All_" : exportParams.StartDate + "_to_" + exportParams.EndDate;
            string fileName      = exportParams.ExportDir + "\\Attendance_Log_Export_" + fileAppendage + DateTime.Now.ToString("yyyyMMddhhmmsss") + ".expt";

            JsonSerialization.WriteToJsonFile <List <AttendanceLog> >(fileName, attendanceLogs);

            e.Result = attendanceLogs.Count + " Records Exported Succesfully to " + fileName;
        }
Example #17
0
        /// <summary>
        /// Производит процесс экпортирования только заказов.
        /// </summary>
        /// <param name="token">Токен безопасности.</param>
        /// <param name="exportParams">Параметры экспортирования.</param>
        /// <param name="stream"></param>
        private void ExportOnlyOrders(SecurityToken token, ExportParams exportParams, MemoryStream stream)
        {
            var items = RemontinkaServer.Instance.EntitiesFacade.GetRepairOrders(token, exportParams.BeginDate,
                                                                                 exportParams.EndDate);

            var writer = new StreamWriter(stream, Encoding.UTF8);

            foreach (var repairOrder in items)
            {
                writer.WriteLine("{0};{1};{2};{3};{4};{5};{6};{7};{8};{9};{10};{11};{12};{13};{14};{15};{16};{17};{18};{19};{20};{21}",
                                 NormilizeCsvString(repairOrder.Number),
                                 NormilizeCsvString(GetBranch(repairOrder.BranchID, repairOrder.BranchID).Title),
                                 NormilizeCsvString(Utils.DateTimeToStringWithTime(repairOrder.EventDate)),
                                 NormilizeCsvString(repairOrder.ClientFullName),
                                 NormilizeCsvString(repairOrder.ClientAddress),
                                 NormilizeCsvString(repairOrder.ClientPhone),
                                 NormilizeCsvString(repairOrder.DeviceTitle),
                                 NormilizeCsvString(repairOrder.DeviceModel),
                                 NormilizeCsvString(repairOrder.DeviceTrademark),
                                 NormilizeCsvString(repairOrder.Defect),
                                 NormilizeCsvString(repairOrder.DeviceAppearance),
                                 NormilizeCsvString(repairOrder.DeviceSN),
                                 NormilizeCsvString(repairOrder.Notes),
                                 NormilizeCsvString(Utils.DecimalToString(repairOrder.PrePayment)),
                                 NormilizeCsvString(Utils.DecimalToString(repairOrder.GuidePrice)),
                                 NormilizeCsvString(Utils.DateTimeToString(repairOrder.DateOfBeReady)),
                                 NormilizeCsvString(repairOrder.WarrantyTo == null?string.Empty:Utils.DateTimeToString(repairOrder.WarrantyTo.Value)),
                                 NormilizeCsvString(GetUser(repairOrder.ManagerID, repairOrder.UserDomainID).LoginName),
                                 NormilizeCsvString(GetUser(repairOrder.EngineerID, repairOrder.UserDomainID).LoginName),
                                 NormilizeCsvString(repairOrder.IssueDate == null ? string.Empty : Utils.DateTimeToString(repairOrder.IssueDate.Value)),
                                 NormilizeCsvString(GetUser(repairOrder.IssuerID, repairOrder.UserDomainID).LoginName),
                                 NormilizeCsvString(repairOrder.WarrantyTo == null ? string.Empty : Utils.DateTimeToString(repairOrder.WarrantyTo.Value))
                                 );
            } //foreach


            writer.Flush();
        }
Example #18
0
        public static string GetExportData(HttpContext context)
        {
            IDataExportPortal portal    = ExportItemManager.GetPortal(context.Request.QueryString["portal"]);
            ExportParams      parameter = DataExportDirector.GetExportParams(
                context.Request["params"], null);
            int pageIndex, pageSize;

            if (context.Request["page"] != null)
            {
                int.TryParse(context.Request["page"], out pageIndex);
                parameter.Parameters.Add("pageIndex", pageIndex);
            }

            if (context.Request["rows"] != null)
            {
                int.TryParse(context.Request["rows"], out pageSize);
                parameter.Parameters.Add("pageSize", pageSize);
            }

            int       totalCount;
            DataTable dt = portal.GetShemalAndData(parameter.Parameters, out totalCount);

            return(JsonConvert.SerializeObject(new { total = totalCount, rows = dt }));
        }
Example #19
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            DisableControls();

            bool error = false;

            try
            {
                using (StreamWriter writer = new StreamWriter(txtFile.Text))
                {
                    ExportOption  exportOption;
                    MatchExporter exporter;

                    if (rButtonMatchesOnly.Checked)
                    {
                        exportOption = ExportOption.MatchesOnly;
                    }
                    else if (rButtonGroupsOnly.Checked)
                    {
                        exportOption = ExportOption.GroupsOnly;
                    }
                    else
                    {
                        exportOption = ExportOption.Both;
                    }

                    ExportParams exportParams = new ExportParams()
                    {
                        Pattern = pattern, MatchList = matchList, ExportOption = exportOption
                    };

                    if (saveFileDialog1.FilterIndex == 1)
                    {
                        exporter = new CsvMatchExporter(exportParams);
                    }
                    else
                    {
                        exporter = new XmlMatchExporter(exportParams);
                    }

                    exporter.Export(writer);
                }
            }
            catch (IOException)
            {
                error = true;
                MessageBox.Show("Could not open the file.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch
            {
                error = true;
                MessageBox.Show("There was an error saving the file.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            EnableControls();

            if (!error)
            {
                MessageBox.Show("Export completed", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                Close();
            }
        }
 public ExportOperation(ExportParams parameters, SqlConnection sqlConnection) : base(sqlConnection)
 {
     Validate.IsNotNull("parameters", parameters);
     this.Parameters = parameters;
 }
 public ExportOperation(ExportParams parameters, ConnectionInfo connInfo) : base(connInfo)
 {
     Validate.IsNotNull("parameters", parameters);
     this.Parameters = parameters;
 }
Example #22
0
 public DataTable GetQueryView(string sqlItemName, ExportParams exportParams, int pageSize, int pageIndex)
 {
     return(_commonDataQuery.GetQuery(sqlItemName, exportParams, pageSize, pageIndex));
 }
Example #23
0
        /// <summary>
        /// Download module configuration
        /// </summary>
        public bool Load(out string errMsg)
        {
            SetToDefault();

            try {
                var xmlDoc = new XmlDocument();
                xmlDoc.Load(FileName);

                // loading export destinations
                var expDestsNode = xmlDoc.DocumentElement.SelectSingleNode("ExportDestinations");
                if (expDestsNode != null)
                {
                    var expDestNodeList = expDestsNode.SelectNodes("ExportDestination");
                    foreach (XmlElement expDestElem in expDestNodeList)
                    {
                        // loading data source
                        DataSource dataSource     = null;
                        var        dataSourceNode = expDestElem.SelectSingleNode("DataSource");

                        if (dataSourceNode != null)
                        {
                            // getting data source type
                            DBTypes dbType;
                            if (!Enum.TryParse <DBTypes>(dataSourceNode.GetChildAsString("DBType"), out dbType))
                            {
                                dbType = DBTypes.Undefined;
                            }

                            // create data source
                            switch (dbType)
                            {
                            case DBTypes.MSSQL:
                                dataSource = new SqlDataSource();
                                break;

                            case DBTypes.Oracle:
                                dataSource = new OraDataSource();
                                break;

                            case DBTypes.PostgreSQL:
                                dataSource = new PgSqlDataSource();
                                break;

                            case DBTypes.MySQL:
                                dataSource = new MySqlDataSource();
                                break;

                            case DBTypes.OLEDB:
                                dataSource = new OleDbDataSource();
                                break;

                            default:
                                dataSource = null;
                                break;
                            }

                            if (dataSource != null)
                            {
                                dataSource.Server           = dataSourceNode.GetChildAsString("Server");
                                dataSource.Database         = dataSourceNode.GetChildAsString("Database");
                                dataSource.User             = dataSourceNode.GetChildAsString("User");
                                dataSource.Password         = dataSourceNode.GetChildAsString("Password");
                                dataSource.ConnectionString = dataSourceNode.GetChildAsString("ConnectionString");

                                if (string.IsNullOrEmpty(dataSource.ConnectionString))
                                {
                                    dataSource.ConnectionString = dataSource.BuildConnectionString();
                                }
                            }
                        }

                        // load export options
                        ExportParams exportParams     = null;
                        var          exportParamsNode = expDestElem.SelectSingleNode("ExportParams");

                        if (dataSource != null && exportParamsNode != null)
                        {
                            exportParams = new ExportParams {
                                ExportCurDataQuery = exportParamsNode.GetChildAsString("ExportCurDataQuery")
                            };
                            exportParams.ExportCurData = !string.IsNullOrEmpty(exportParams.ExportCurDataQuery) &&
                                                         exportParamsNode.GetChildAsBool("ExportCurData");
                            exportParams.ExportArcDataQuery = exportParamsNode.GetChildAsString("ExportArcDataQuery");
                            exportParams.ExportArcData      = !string.IsNullOrEmpty(exportParams.ExportArcDataQuery) &&
                                                              exportParamsNode.GetChildAsBool("ExportArcData");
                            exportParams.ExportEventQuery = exportParamsNode.GetChildAsString("ExportEventQuery");
                            exportParams.ExportEvents     = !string.IsNullOrEmpty(exportParams.ExportEventQuery) &&
                                                            exportParamsNode.GetChildAsBool("ExportEvents");
                        }

                        // creating export destination
                        if (dataSource != null && exportParams != null)
                        {
                            var expDest = new ExportDestination(dataSource, exportParams);
                            ExportDestinations.Add(expDest);
                        }
                    }

                    // sort export destinations
                    ExportDestinations.Sort();
                }

                // loading control channel numbers for manual export
                var manExpNode = xmlDoc.DocumentElement.SelectSingleNode("ManualExport");
                if (manExpNode != null)
                {
                    CurDataCtrlCnlNum = manExpNode.GetChildAsInt("CurDataCtrlCnlNum");
                    ArcDataCtrlCnlNum = manExpNode.GetChildAsInt("ArcDataCtrlCnlNum");
                    EventsCtrlCnlNum  = manExpNode.GetChildAsInt("EventsCtrlCnlNum");
                }

                errMsg = "";
                return(true);
            } catch (FileNotFoundException ex) {
                errMsg = ModPhrases.LoadModSettingsError + ": " + ex.Message +
                         Environment.NewLine + ModPhrases.ConfigureModule;
                return(false);
            } catch (Exception ex) {
                errMsg = ModPhrases.LoadModSettingsError + ": " + ex.Message;
                return(false);
            }
        }
Example #24
0
 /// <summary>
 /// Constructor
 /// </summary>
 public ExportDestination(DataSource dataSource, ExportParams exportParams)
 {
     this.DataSource   = dataSource ?? throw new ArgumentNullException(nameof(dataSource));
     this.ExportParams = exportParams ?? throw new ArgumentNullException(nameof(exportParams));
 }
Example #25
0
        /// <summary>
        /// Загрузить конфигурацию модуля
        /// </summary>
        public bool Load(out string errMsg)
        {
            SetToDefault();

            try
            {
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load(FileName);

                // загрузка назначений экспорта
                XmlNode expDestsNode = xmlDoc.DocumentElement.SelectSingleNode("ExportDestinations");
                if (expDestsNode != null)
                {
                    XmlNodeList expDestNodeList = expDestsNode.SelectNodes("ExportDestination");
                    foreach (XmlElement expDestElem in expDestNodeList)
                    {
                        // загрузка источника данных
                        DataSource dataSource = null;

                        if (expDestElem.SelectSingleNode("DataSource") is XmlNode dataSourceNode)
                        {
                            // получение типа источника данных
                            if (!Enum.TryParse(dataSourceNode.GetChildAsString("DBType"), out DBType dbType))
                            {
                                dbType = DBType.Undefined;
                            }

                            // создание источника данных
                            switch (dbType)
                            {
                            case DBType.MSSQL:
                                dataSource = new SqlDataSource();
                                break;

                            case DBType.Oracle:
                                dataSource = new OraDataSource();
                                break;

                            case DBType.PostgreSQL:
                                dataSource = new PgSqlDataSource();
                                break;

                            case DBType.MySQL:
                                dataSource = new MySqlDataSource();
                                break;

                            case DBType.OLEDB:
                                dataSource = new OleDbDataSource();
                                break;

                            default:
                                dataSource = null;
                                break;
                            }

                            if (dataSource != null)
                            {
                                dataSource.Server           = dataSourceNode.GetChildAsString("Server");
                                dataSource.Database         = dataSourceNode.GetChildAsString("Database");
                                dataSource.User             = dataSourceNode.GetChildAsString("User");
                                dataSource.Password         = ScadaUtils.Decrypt(dataSourceNode.GetChildAsString("Password"));
                                dataSource.ConnectionString = dataSourceNode.GetChildAsString("ConnectionString");

                                if (string.IsNullOrEmpty(dataSource.ConnectionString))
                                {
                                    dataSource.ConnectionString = dataSource.BuildConnectionString();
                                }
                            }
                        }

                        if (dataSource != null &&
                            expDestElem.SelectSingleNode("ExportParams") is XmlNode exportParamsNode)
                        {
                            // загрузка параметров экспорта
                            ExportParams exportParams = new ExportParams();
                            exportParams.LoadFromXml(exportParamsNode);

                            // создание назначения экспорта
                            ExportDestination expDest = new ExportDestination(dataSource, exportParams);
                            ExportDestinations.Add(expDest);
                        }
                    }

                    // сортировка назначений экспорта
                    ExportDestinations.Sort();
                }

                // загрузка номеров каналов управления для экспорта в ручном режиме
                if (xmlDoc.DocumentElement.SelectSingleNode("ManualExport") is XmlNode manExpNode)
                {
                    CurDataCtrlCnlNum = manExpNode.GetChildAsInt("CurDataCtrlCnlNum");
                    ArcDataCtrlCnlNum = manExpNode.GetChildAsInt("ArcDataCtrlCnlNum");
                    EventsCtrlCnlNum  = manExpNode.GetChildAsInt("EventsCtrlCnlNum");
                }

                errMsg = "";
                return(true);
            }
            catch (FileNotFoundException ex)
            {
                errMsg = ModPhrases.LoadModSettingsError + ": " + ex.Message +
                         Environment.NewLine + ModPhrases.ConfigureModule;
                return(false);
            }
            catch (Exception ex)
            {
                errMsg = ModPhrases.LoadModSettingsError + ": " + ex.Message;
                return(false);
            }
        }
Example #26
0
        /// <summary>
        /// Сохранить конфигурацию модуля
        /// </summary>
        public bool Save(out string errMsg)
        {
            try
            {
                XmlDocument xmlDoc = new XmlDocument();

                XmlDeclaration xmlDecl = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", null);
                xmlDoc.AppendChild(xmlDecl);

                XmlElement rootElem = xmlDoc.CreateElement("ModDBExport");
                xmlDoc.AppendChild(rootElem);

                // сохранение назначений экспорта
                XmlElement expDestsElem = xmlDoc.CreateElement("ExportDestinations");
                rootElem.AppendChild(expDestsElem);

                foreach (ExportDestination expDest in ExportDestinations)
                {
                    XmlElement expDestElem = xmlDoc.CreateElement("ExportDestination");
                    expDestsElem.AppendChild(expDestElem);

                    // сохранение источника данных
                    DataSource dataSource     = expDest.DataSource;
                    XmlElement dataSourceElem = xmlDoc.CreateElement("DataSource");
                    dataSourceElem.AppendElem("DBType", dataSource.DBType);
                    dataSourceElem.AppendElem("Server", dataSource.Server);
                    dataSourceElem.AppendElem("Database", dataSource.Database);
                    dataSourceElem.AppendElem("User", dataSource.User);
                    dataSourceElem.AppendElem("Password", dataSource.Password);
                    string connStr    = dataSource.ConnectionString;
                    string bldConnStr = dataSource.BuildConnectionString();
                    dataSourceElem.AppendElem("ConnectionString",
                                              !string.IsNullOrEmpty(bldConnStr) && bldConnStr == connStr ? "" : connStr);
                    expDestElem.AppendChild(dataSourceElem);

                    // сохранение параметров экспорта
                    ExportParams exportParams     = expDest.ExportParams;
                    XmlElement   exportParamsElem = xmlDoc.CreateElement("ExportParams");
                    exportParamsElem.AppendElem("ExportCurData", exportParams.ExportCurData);
                    exportParamsElem.AppendElem("ExportCurDataQuery", exportParams.ExportCurDataQuery);
                    exportParamsElem.AppendElem("ExportArcData", exportParams.ExportArcData);
                    exportParamsElem.AppendElem("ExportArcDataQuery", exportParams.ExportArcDataQuery);
                    exportParamsElem.AppendElem("ExportEvents", exportParams.ExportEvents);
                    exportParamsElem.AppendElem("ExportEventQuery", exportParams.ExportEventQuery);
                    expDestElem.AppendChild(exportParamsElem);
                }

                // сохранение номеров каналов управления для экспорта в ручном режиме
                XmlElement manExpElem = xmlDoc.CreateElement("ManualExport");
                rootElem.AppendChild(manExpElem);
                manExpElem.AppendElem("CurDataCtrlCnlNum", CurDataCtrlCnlNum);
                manExpElem.AppendElem("ArcDataCtrlCnlNum", ArcDataCtrlCnlNum);
                manExpElem.AppendElem("EventsCtrlCnlNum", EventsCtrlCnlNum);

                xmlDoc.Save(FileName);
                errMsg = "";
                return(true);
            }
            catch (Exception ex)
            {
                errMsg = ModPhrases.SaveModSettingsError + ": " + ex.Message;
                return(false);
            }
        }