Пример #1
0
        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;
     });
 }
Пример #3
0
        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;
            }
        }
Пример #4
0
        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;