示例#1
0
        private Task <LogItemCollection> UpdateCore()
        {
            LogItemCollection items = new LogItemCollection();

            return(Task.Factory.StartNew(() =>
            {
                try
                {
                    string file = Path.Combine(Logger.LogFolder,
                                               Logger.LogParameters[this.CurrentLogType].FileName);
                    if (!File.Exists(file))
                    {
                        return items;
                    }

                    IEnumerable <string> lines = File.ReadLines(file);

                    this.TotalPage = (lines.Count() - 1) / 20 + 1;

                    // ReSharper disable once PossibleMultipleEnumeration
                    lines.Take(1).First().Split(',').ToList().ForEach((col => items.Columns.Add(col)));

                    // ReSharper disable once PossibleMultipleEnumeration
                    lines.Skip(1).Reverse().Skip((this.CurrentPage - 1) * this.logPerPage).Take(this.logPerPage).ToList().ForEach(line =>
                    {
                        string[] elements = line.Split(',');

                        if (elements.Length < 5)
                        {
                            return;
                        }

                        items.Rows.Add(elements
                                       .Take(items.Columns.Count)
                                       .ToArray());
                    });

                    return items;
                }
                catch (Exception)
                {
                    return items;
                }
            }));
        }
        private Task <LogItemCollection> UpdateCore()
        {
            var items = new LogItemCollection();

            return(Task.Factory.StartNew(() =>
            {
                try
                {
                    var file = Path.Combine(KanColleClient.Current.Settings.LoggerFolder, Logger.LogParameters[this.CurrentLogType].FileName);

                    if (!File.Exists(file))
                    {
                        return items;
                    }

                    var lines = ReadLines(file);

                    // ReSharper disable once PossibleMultipleEnumeration
                    this.TotalPage = (lines.Count() - 1) / 20 + 1;

                    // ReSharper disable once PossibleMultipleEnumeration
                    lines.Take(1).First().Split(',').ToList().ForEach((col => items.Columns.Add(col)));

                    // ReSharper disable once PossibleMultipleEnumeration
                    lines.Skip(1).Reverse().Skip((this.CurrentPage - 1) * this.logPerPage).Take(this.logPerPage).ToList().ForEach(line =>
                    {
                        var elements = line.Split(',');
                        items.Rows.Add(elements
                                       .Take(items.Columns.Count)
                                       .ToArray());
                    });

                    return items;
                }
                catch (Exception ex)
                {
                    Debug.WriteLine(ex.ToString());
                    return items;
                }
            }));
        }
示例#3
0
        private Task<LogItemCollection> UpdateCore()
        {
            var items = new LogItemCollection();

            return Task.Factory.StartNew(() =>
            {
                try
                {
					var file = Path.Combine(KanColleClient.Current.Settings.LoggerFolder, Logger.LogParameters[this.CurrentLogType].FileName);

                    if (!File.Exists(file))
                        return items;

                    var lines = ReadLines(file);

					// ReSharper disable once PossibleMultipleEnumeration
					this.TotalPage = (lines.Count() - 1)/20 + 1;

	                // ReSharper disable once PossibleMultipleEnumeration
                    lines.Take(1).First().Split(',').ToList().ForEach((col => items.Columns.Add(col)));

	                // ReSharper disable once PossibleMultipleEnumeration
					lines.Skip(1).Reverse().Skip((this.CurrentPage - 1) * this.logPerPage).Take(this.logPerPage).ToList().ForEach(line =>
                    {
                        var elements = line.Split(',');
                        items.Rows.Add(elements
                            .Take(items.Columns.Count)
                            .ToArray());
                    });

                    return items;
                }
                catch (Exception ex)
                {
					Debug.WriteLine(ex.ToString());
                    return items;
                }
            });
        }
示例#4
0
        private Task<LogItemCollection> UpdateCore()
        {
            LogItemCollection items = new LogItemCollection();

            return Task.Factory.StartNew(() =>
            {
                try
                {
                    string file = Path.Combine(Logger.LogFolder,
                        Logger.LogParameters[this.CurrentLogType].FileName);
                    if (!File.Exists(file))
                        return items;

                    IEnumerable<string> lines = File.ReadLines(file);

	                this.TotalPage = (lines.Count() - 1)/20 + 1;

	                // ReSharper disable once PossibleMultipleEnumeration
                    lines.Take(1).First().Split(',').ToList().ForEach((col => items.Columns.Add(col)));

	                // ReSharper disable once PossibleMultipleEnumeration
					lines.Skip(1).Reverse().Skip((this.CurrentPage - 1) * this.logPerPage).Take(this.logPerPage).ToList().ForEach(line =>
                    {
                        string[] elements = line.Split(',');

                        if (elements.Length < 5)
                            return;

                        items.Rows.Add(elements
                            .Take(items.Columns.Count)
                            .ToArray());
                    });

                    return items;
                }
                catch (Exception)
                {
                    return items;
                }
            });
        }
示例#5
0
 public static void SetLogSource(DependencyObject d, LogItemCollection value)
 {
     d.SetValue(LogSourceProperty, value);
 }