using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Threading; namespace PEP_Tool { class Tracker { static DispatcherTimer timer = new DispatcherTimer(); //public double time = 0; static string client = ""; public static double time { get; set; } private static int count = 0; public static async void Init_Track() { client = await Crypto.EncryptString(Environment.MachineName); time = await Reader.ReadTime(await Reader.ReadTimeJSON()); SaveTrack(true); timer.Interval = TimeSpan.FromSeconds(1); timer.Tick += Timer_Tick; timer.Start(); } private static void Timer_Tick(object sender, EventArgs e) { //var t = time.Item1; time += 1; count++; if(count >= 30) { SaveTrack(true); count = 0; } } public static async Task SaveTrack(bool Online) { var save = await Reader.ReadTimeJSON(); //var save = new Dictionary(); if (save == null) save = new Dictionary>(); if (save.ContainsKey(client)) save[client] = new Tuple(time, Online, Properties.Settings.Default.Version); else save.Add(client, new Tuple(time, Online, Properties.Settings.Default.Version)); if (client == "") return; try { var json = Newtonsoft.Json.JsonConvert.SerializeObject(save); //json = await Crypto.EncryptString(json); byte[] jsonB = new UTF8Encoding(true).GetBytes(json); using (var fs = Writer.WaitForFile(@"\\bku.db.de\db\DB_006\GLW_11\ICE-Fertigung\M2\Personaleinsatzplanung\Log\Track.json", System.IO.FileMode.Open, System.IO.FileAccess.Write, System.IO.FileShare.Read))//Write | System.IO.FileShare.Delete { if (fs != null) { fs.SetLength(0); await fs.WriteAsync(jsonB, 0, jsonB.Length); } else fs.Dispose(); } } catch (Exception ex) { LogFile.WriteLine(ex); } } } }