public async Task Run(IContainer ioc) { using (var db = ioc.GetInstance <CardDatabaseContext>()) { await db.Database.MigrateAsync(); Log.Information("Updating Database Using Activity Log Queue..."); var activityLog = await db.MigrationLog.AsQueryable() .Where(log => !log.IsDone) .OrderBy(log => log.DateAdded) .AsAsyncEnumerable() .ToArrayAsync() ; foreach (var act in activityLog.Select((act, i) => (ActLog: act, Index: i))) { await(OnStarting?.Invoke(this, new UpdateEventArgs(act.ActLog, act.Index, activityLog.Length)) ?? Task.CompletedTask); await act.ActLog.ToCommand().Run(ioc); act.ActLog.IsDone = true; await(OnEnding?.Invoke(this, new UpdateEventArgs(act.ActLog, act.Index + 1, activityLog.Length)) ?? Task.CompletedTask); } Log.Information("Done!"); await db.SaveChangesAsync(); } }
public async Task Display() { await Task.Run(() => { Console.Clear(); Console.Title = getTitle(); while (!stopped) { OnBeforeTyping?.Invoke(this, EventArgs.Empty); if (!stopped) { for (int i = 0; i < variableInfoPairs.Length; ++i) { Console.WriteLine($"{variableInfoPairs[i].Info}"); variableInfoPairs[i].Variable = Console.ReadLine(); if (string.IsNullOrEmpty(variableInfoPairs[i].Variable)) { if (i == 0) { Stop(); break; } else { Console.Clear(); int j = 0; for (; j < i - 1; ++j) { Console.WriteLine($"{variableInfoPairs[j].Info}"); Console.WriteLine(variableInfoPairs[j].Variable); } i = i - 2; } } } } if (!stopped) { OnGettingData?.Invoke(variableInfoPairs.Select(vi => vi.Variable)); Console.WriteLine(successfulInputtingMsg); Console.ReadKey(); Console.Clear(); } } if (!stopped) { OnEnding?.Invoke(this, EventArgs.Empty); } Console.CursorVisible = false; }); }
internal void StateChangeHandler(CallingEventParams eventParams, CallingEventParams.StateParams stateParams) { PreviousState = State; State = stateParams.CallState; OnStateChange?.Invoke(mAPI, this, eventParams, stateParams); switch (stateParams.CallState) { case CallState.ringing: OnRinging?.Invoke(mAPI, this, eventParams, stateParams); break; case CallState.answered: OnAnswered?.Invoke(mAPI, this, eventParams, stateParams); break; case CallState.ending: OnEnding?.Invoke(mAPI, this, eventParams, stateParams); break; case CallState.ended: mAPI.RemoveCall(stateParams.CallID); if (stateParams.Peer != null && Peer != null && Peer.ID == stateParams.Peer.CallID) { // Detach peer from this ended call Peer.Peer = null; Peer = null; } if (stateParams.EndReason == DisconnectReason.busy) { mBusy = true; } OnEnded?.Invoke(mAPI, this, eventParams, stateParams); break; } }
internal void StateChangeHandler(CallEventParams.StateParams stateParams) { CallState oldState = State; State = stateParams.CallState; OnStateChange?.Invoke(mAPI, this, oldState, stateParams); switch (stateParams.CallState) { case CallState.ringing: OnRinging?.Invoke(mAPI, this, oldState, stateParams); break; case CallState.answered: OnAnswered?.Invoke(mAPI, this, oldState, stateParams); break; case CallState.ending: OnEnding?.Invoke(mAPI, this, oldState, stateParams); break; case CallState.ended: mAPI.RemoveCall(stateParams.CallID); if (stateParams.Peer != null && Peer != null && Peer.CallID == stateParams.Peer.CallID) { // Detach peer from this ended call Peer.Peer = null; Peer = null; } OnEnded?.Invoke(mAPI, this, oldState, stateParams); break; default: break; } }
public override Task OnLogStarting(UpdateEventArgs args) => OnEnding?.Invoke(this, args) ?? Task.CompletedTask;