예제 #1
0
        public bool ExecuteNow()
        {
            ClientServer sc = new ClientServer(this.ClientID);
            DataExport   de = new DataExport(sc.GetServer().Connection());

            de.Merge <ExportSettings>(Settings);
            Data.ImportExport im = new Data.ImportExport();
            try
            {
                Status = ImportExportStatus.progress;
                im.UpdateScheduleStatus(this.ClientID, ExportImportID, (int)Status, "");
                string fileName = @"/sqldump-" + Guid.NewGuid().ToString() + ".sql";
                var    path     = FolderPath + fileName;
                de.ExportTo(path);
                Status = ImportExportStatus.completed;
                im.UpdateScheduleStatus(this.ClientID, ExportImportID, (int)Status, "", fileName);
            }
            catch (Exception ex)
            {
                Status = ImportExportStatus.error;
                im.UpdateScheduleStatus(this.ClientID, ExportImportID, (int)Status, ex.Message);
                throw ex;
            }
            finally {
            }
            return(true);
        }
예제 #2
0
 public bool Save()
 {
     Data.ImportExport im = new Data.ImportExport();
     this.ExportImportID = im.SaveSchedule(this.ClientID,
                                           Newtonsoft.Json.JsonConvert.SerializeObject(Settings), 0, ExportDate, FolderPath, false, 2);
     return(true);
 }
예제 #3
0
 public bool Save()
 {
     //ClientServer sc = new ClientServer(this.ClientID);
     Data.ImportExport im = new Data.ImportExport();
     this.ExportImportID = im.SaveSchedule(this.ClientID,
                                           "", 0, DateTime.Now, ImportFilePath, IgnoreSQLErrors, 1);
     return(true);
 }
예제 #4
0
 public string ImportFrom(string filePath, bool ignoreError)
 {
     try
     {
         Data.ImportExport im = new Data.ImportExport();
         return(im.Import(Conn, ignoreError, filePath));
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
예제 #5
0
        public ExportEvent getExportEvent(string importExportID)
        {
            Data.ImportExport ie = new Data.ImportExport();
            DataTable         dt = ie.GetExportEventByID(this.ClientID, importExportID);
            var a = dt.toList <ExportEvent>(new DataFieldMappings().Add("ClientID", "ClientID")
                                            .Add("EventDateTime", "ExportDate")
                                            .Add("ImportExportID", "ExportImportID", true)
                                            .Add("FilePath", "FolderPath")
                                            .Add("Errors", "Errors")
                                            .Add("Status", "Status")
                                            .Add("Settings", "ExportSetting"), null, (x, y) => dynamic(x, y));

            return(a.FirstOrDefault());
        }
예제 #6
0
        public List <ImportEvent> GetImportList()
        {
            Data.ImportExport ie = new Data.ImportExport();
            DataTable         dt = ie.GetAllImportEvents(this.ClientID);
            var a = dt.toList <ImportEvent>(new DataFieldMappings().Add("ClientID", "ClientID")
                                            .Add("EventDateTime", "ExportDate")
                                            .Add("ImportExportID", "ExportImportID", true)
                                            .Add("FilePath", "FolderPath")
                                            .Add("Errors", "Errors")
                                            .Add("Status", "Status")
                                            .Add("IgnoreSQLErrors", "IgnoreSQLErrors"), null, (x, y) => dynamic(x, y));

            return(a);
        }
예제 #7
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public List <ExportEvent> GetPendingExportList()
        {
            Data.ImportExport ie = new Data.ImportExport();
            DataTable         dt = ie.GetPendingEvents(this.ClientID, 2);
            var a = dt.toList <ExportEvent>(new DataFieldMappings().Add("ClientID", "ClientID")
                                            .Add("EventDateTime", "ExportDate")
                                            .Add("ImportExportID", "ExportImportID", true)
                                            .Add("FilePath", "FolderPath")
                                            .Add("Errors", "Errors")
                                            .Add("Status", "Status")
                                            .Add("Settings", "ExportSetting"), null, (x, y) => dynamic(x, y));

            a = a.Where(x => x.Status == ImportExportStatus.pending).ToList();
            return(a);
        }
예제 #8
0
        public bool ImportNow()
        {
            ClientServer sc = new ClientServer(this.ClientID);
            DataImport   di = new DataImport(sc.GetServer().Connection());

            Data.ImportExport im = new Data.ImportExport();

            try
            {
                string assemblyFolder = Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase);
                assemblyFolder = assemblyFolder.Replace("\\Debug", "");
                assemblyFolder = assemblyFolder.Replace("\\bin", "");
                assemblyFolder = assemblyFolder.Replace("\\netcoreapp2.1", "");
                assemblyFolder = assemblyFolder.Replace("file:\\", "");
                if (ImportFilePath.StartsWith("~"))
                {
                    ImportFilePath = ImportFilePath.Substring(1);
                }
                string impPath = assemblyFolder + ImportFilePath;
                Status = ImportExportStatus.progress;
                im.UpdateScheduleStatus(this.ClientID, ExportImportID, (int)Status, "");
                string rst = di.ImportFrom(impPath, IgnoreSQLErrors);
                if (rst == "done")
                {
                    Status = ImportExportStatus.completed;
                    im.UpdateScheduleStatus(this.ClientID, ExportImportID, (int)Status, "");
                    return(true);
                }
                else
                {
                    Status = ImportExportStatus.error;
                    im.UpdateScheduleStatus(this.ClientID, ExportImportID, (int)Status, rst);
                    return(false);
                }
            }
            catch (Exception ex)
            {
                Status = ImportExportStatus.error;
                im.UpdateScheduleStatus(this.ClientID, ExportImportID, (int)Status, ex.Message);
                throw ex;
            }
            finally
            {
            }
        }
예제 #9
0
        public bool ExportTo(string folder)
        {
            Data.ImportExport im = new Data.ImportExport();
            bool exTable         = false;
            bool exRow           = false;

            if (Type == ExportType.structureonly)
            {
                exTable = true;
                exRow   = false;
            }
            else
            {
                exTable = true;
                exRow   = true;
            }
            try
            {
                return(im.Export(Conn,
                                 folder,
                                 EnableDropDatabase,
                                 EnableCreateDatabase,
                                 EnableDropDatabase,
                                 exTable,
                                 exRow,
                                 EnableExportFunction,
                                 EnableExportStoredProcedure,
                                 EnableExportTrigger,
                                 EnableExportEvent,
                                 EnableExportViews,
                                 MaxSQLLength,
                                 (int)BlobExportMode));
            }
            catch (Exception ex) {
                throw ex;
            }
        }