public override void Push(List <Day> days) { logger.Info($"Repushing to server.........count = {days.Count()}"); float totalDays = days.Count; float completedDays = 0; days = days.OrderBy(d => d.Date).ToList(); using (SQLiteCommand cmd = _connection.CreateCommand()) { foreach (Day day in days) { cmd.Parameters.Clear(); cmd.CommandText = $"DELETE FROM [{DayTableName}] WHERE Date = @Date"; cmd.Parameters.Add(new SQLiteParameter("Date", DateSqLite(day.Date))); cmd.ExecuteNonQuery(); cmd.CommandText = $"DELETE FROM [{TimeTableName}] WHERE Date = @Date"; cmd.ExecuteNonQuery(); } foreach (Day day in days) { cmd.Parameters.Clear(); cmd.CommandText = $"INSERT INTO [{DayTableName}] VALUES(@Date, @Details)"; cmd.Parameters.Add(new SQLiteParameter("Date", DateSqLite(day.Date.Date))); cmd.Parameters.Add(new SQLiteParameter("Details", day.Details)); cmd.ExecuteNonQuery(); foreach (Time time in day.Times) { cmd.Parameters.Clear(); cmd.CommandText = $"INSERT INTO [{TimeTableName}] VALUES(@Date, @TimeIn, @TimeOut, @Key)"; cmd.Parameters.Add(new SQLiteParameter("Date", DateSqLite(time.TimeIn.Date))); cmd.Parameters.Add(new SQLiteParameter("TimeIn", DateTimeSqLite(time.TimeIn))); cmd.Parameters.Add(new SQLiteParameter("TimeOut", DateTimeSqLite(time.TimeOut))); cmd.Parameters.Add(new SQLiteParameter("Key", time.Key)); cmd.ExecuteNonQuery(); } ProgressChangedEvent?.Invoke(completedDays++ / totalDays * 100f); } } ProgressFinishEvent?.Invoke(); logger.Info($"Repushing to server.........count = {days.Count()} FINISHED!!!"); }
private void OnProgressFinishEvent() => ProgressFinishEvent?.Invoke();
public override void Push(List <Day> days) { logger.Info($"Repushing to server.........count = {days.Count()}"); if (ServerState != State.Connected) { throw new Exception("Not Connected!"); } float totalDays = days.Count; float completedDays = 0; days = days.OrderBy(d => d.Date).ToList(); using (MySqlCommand cmd = _connection.CreateCommand()) { try { foreach (Day day in days) { // remove day cmd.Parameters.Clear(); cmd.CommandText = $"DELETE FROM `{DayTableName}` WHERE Date = @Date"; cmd.Parameters.Add(new MySqlParameter("Date", DateSqLite(day.Date))); cmd.ExecuteNonQuery(); cmd.CommandText = $"DELETE FROM `{TimeTableName}` WHERE Date = @Date"; cmd.ExecuteNonQuery(); } foreach (Day day in days) // insert all days and times in range { // re-push day cmd.Parameters.Clear(); cmd.CommandText = $"INSERT INTO `{DayTableName}` VALUES(@Date, @Details)"; cmd.Parameters.Add(new MySqlParameter("Date", DateSqLite(day.Date.Date))); cmd.Parameters.Add(new MySqlParameter("Details", day.Details)); cmd.ExecuteNonQuery(); foreach (Time time in day.Times) { { cmd.Parameters.Clear(); cmd.CommandText = $"INSERT INTO `{TimeTableName}` VALUES(@Date, @TimeIn, @TimeOut, @Key)"; cmd.Parameters.Add(new MySqlParameter("Date", DateSqLite(time.TimeIn.Date))); cmd.Parameters.Add(new MySqlParameter("TimeIn", DateTimeSqLite(time.TimeIn))); cmd.Parameters.Add(new MySqlParameter("TimeOut", DateTimeSqLite(time.TimeOut))); cmd.Parameters.Add(new MySqlParameter("Key", time.Key)); cmd.ExecuteNonQuery(); } } ProgressChangedEvent?.Invoke(completedDays++ / totalDays * 100f); } ProgressFinishEvent?.Invoke(); } catch (Exception e) { logger.Info("\n\n----------------MYSLQ RePushToServer EXCEPTION!!!----------------\n" + e); } } logger.Info($"Repushing to server.........count = {days.Count()} FINISHED!!!"); }