Beispiel #1
0
        public async void GetListAsync()
        {
            FtpClient ftp = new FtpClient(Main.ftphost);

            ftp.Credentials = new System.Net.NetworkCredential(Main.ftpuser, Main.ftppass);
            ftp.Connect();

            FtpListItem[] fli = await ftp.GetListingAsync(Main.ftppath);

            foreach (FtpListItem item in fli)
            {
                if (!Directory.Exists(@"backup\"))
                {
                    Directory.CreateDirectory(@"backup\");
                }
                string fx = item.Name.Substring(item.Name.LastIndexOf('.') + 1);;
                if (fx == "mxw")
                {
                    string bjson = item.Name.Substring(0, item.Name.LastIndexOf(".") + 1);
                    ftp.DownloadFile(@"backup\" + item.Name.Substring(0, item.Name.LastIndexOf(".") + 1) + "json", "backup/" + bjson + "json");
                    BackupJson j = JsonConvert.DeserializeObject <BackupJson>(File.ReadAllText(@"backup\" + bjson + "json"));
                    dataGridView1.Rows.Add(new object[] { j.date, j.time, item.Name });
                    DataGridViewButtonColumn btn = new DataGridViewButtonColumn();
                    dataGridView1.Columns.Add(btn);
                    btn.Text = "Restaurer";
                    btn.UseColumnTextForButtonValue = true;
                }
            }
            ftp.Disconnect();
        }
Beispiel #2
0
        /// <summary>
        /// 从Redis获取同步数据
        /// </summary>
        /// <param name="ctx"></param>
        /// <param name="dataType"></param>
        /// <param name="redis"></param>
        /// <param name="redisKeys"></param>
        /// <returns></returns>
        private static List <AbsSynchroDataInfo> GetSynchroObjects(Context ctx, SynchroDataType dataType, IRedisClient redis, IEnumerable <string> redisKeys, SynchroDirection direction = SynchroDirection.ToK3)
        {
            List <AbsSynchroDataInfo> datas = null;
            List <string>             jsons = null;

            Dictionary <string, string> dict = null;

            if (redis != null)
            {
                if (redisKeys != null && redisKeys.Count() > 0)
                {
                    dict  = new Dictionary <string, string>();
                    jsons = new List <string>();

                    foreach (var item in redisKeys)
                    {
                        if (!string.IsNullOrWhiteSpace(item))
                        {
                            string json = redis.Get <string>(item.ToString());

                            if (!string.IsNullOrWhiteSpace(json))
                            {
                                BackupJson.WriteJsonToLocal(ctx, dataType, json);
                                jsons.Add(json);
                                dict.Add(item.ToString(), JsonUtils.ReplaceDoubleQuotes(json));
                            }
                        }
                    }

                    BackupDataToRedis(ctx, dict, redisKeys, dataType, direction);
                }
            }

            if (jsons != null && jsons.Count > 0)
            {
                datas = new List <AbsSynchroDataInfo>();

                foreach (var json in jsons)
                {
                    if (json.IsNullOrEmptyOrWhiteSpace() || json.EqualsIgnoreCase("None"))
                    {
                        continue;
                    }
                    try
                    {
                        AbsSynchroDataInfo data = SynchroDataHelper.BuildSynchroData(ctx, dataType, json);

                        if (data != null)
                        {
                            datas.Add(data);
                        }
                    }
                    catch (Exception ex)
                    {
                        LogUtils.WriteSynchroLog(ctx, dataType,
                                                 "下载" + dataType + "出现异常" +
                                                 ex.Message + System.Environment.NewLine + ex.StackTrace);
                    }
                }
            }

            return(datas);
        }
Beispiel #3
0
        private void timerBackup_Tick(object sender, EventArgs e)
        {
            FtpClient ftp = new FtpClient(Main.ftphost);

            ftp.Credentials = new System.Net.NetworkCredential(Main.ftpuser, Main.ftppass);
            ftp.Connect();

            string user   = ftpuser.Substring(ftpuser.LastIndexOf('_') + 1);
            string hour   = DateTime.Now.Hour.ToString();
            string minute = DateTime.Now.Minute.ToString();
            string day    = DateTime.Now.Day.ToString();
            string month  = DateTime.Now.Month.ToString();
            string year   = DateTime.Now.Year.ToString();

            IO.ClearDir("tmp");
            IO.CreateSample(@"tmp\" + string.Format("{0}_wtf_{1}.{2}.{3}.{4}.{5}.mxw", user, month, day, year, hour, minute), "", Main.clientpath + @"\WTF");

            ftp.UploadFile(@"tmp\" + string.Format("{0}_wtf_{1}.{2}.{3}.{4}.{5}.mxw", user, month, day, year, hour, minute), @"backup/" + string.Format("{0}_wtf_{1}.{2}.{3}.{4}.{5}.mxw", user, month, day, year, hour, minute));

            string fm = "";
            string pe = "";

            switch (DateTime.Now.Month)
            {
            case 1:
                fm = "Janvier";
                break;

            case 2:
                fm = "Février";
                break;

            case 3:
                fm = "Mars";
                break;

            case 4:
                fm = "Avril";
                break;

            case 5:
                fm = "Mai";
                break;

            case 6:
                fm = "Juin";
                break;

            case 7:
                fm = "Juillet";
                break;

            case 8:
                fm = "Août";
                break;

            case 9:
                fm = "Septembre";
                break;

            case 10:
                fm = "Octobre";
                break;

            case 11:
                fm = "Novembre";
                break;

            case 12:
                fm = "Décembre";
                break;
            }

            switch (DateTime.Now.Hour)
            {
            case 1:
                pe = "am";
                break;

            case 2:
                pe = "am";
                break;

            case 3:
                pe = "am";
                break;

            case 4:
                pe = "am";
                break;

            case 5:
                pe = "am";
                break;

            case 6:
                pe = "am";
                break;

            case 7:
                pe = "am";
                break;

            case 8:
                pe = "am";
                break;

            case 9:
                pe = "am";
                break;

            case 10:
                pe = "am";
                break;

            case 11:
                pe = "am";
                break;

            case 12:
                pe = "pm";
                break;

            case 13:
                pe = "pm";
                break;

            case 14:
                pe = "pm";
                break;

            case 15:
                pe = "pm";
                break;

            case 16:
                pe = "pm";
                break;

            case 17:
                pe = "pm";
                break;

            case 18:
                pe = "pm";
                break;

            case 19:
                pe = "pm";
                break;

            case 20:
                pe = "pm";
                break;

            case 21:
                pe = "pm";
                break;

            case 22:
                pe = "pm";
                break;

            case 23:
                pe = "pm";
                break;

            case 24:
                pe = "am";
                break;
            }

            BackupJson bjson = new BackupJson()
            {
                date    = string.Format("{0} {1} {2}", day, fm, year),
                time    = string.Format("{0}:{1}{2}", hour, Handler.Int.ZeroPad(DateTime.Now.Minute), pe),
                archive = string.Format("{0}_wtf_{1}.{2}.{3}.{4}.{5}.mxw", user, month, day, year, hour, minute)
            };

            using (FileStream fs = File.Open(@"tmp\" + string.Format("{0}_wtf_{1}.{2}.{3}.{4}.{5}.json", user, month, day, year, hour, minute), FileMode.CreateNew))
                using (StreamWriter sw = new StreamWriter(fs))
                    using (JsonWriter jw = new JsonTextWriter(sw))
                    {
                        jw.Formatting = Newtonsoft.Json.Formatting.Indented;
                        JsonSerializer serializer = new JsonSerializer();
                        serializer.Serialize(jw, bjson);
                    }

            ftp.UploadFile(@"tmp\" + string.Format("{0}_wtf_{1}.{2}.{3}.{4}.{5}.json", user, month, day, year, hour, minute), @"backup/" + string.Format("{0}_wtf_{1}.{2}.{3}.{4}.{5}.json", user, month, day, year, hour, minute));
        }