Beispiel #1
0
        private async Task <SocketMessage?> NextMessageAsync(IStandard <SocketMessage> standard, TimeSpan?timeOut = null,
                                                             CancellationToken token = default)
        {
            timeOut ??= _defaultTimeout;

            var eventTrigger  = new TaskCompletionSource <SocketMessage>();
            var cancelTrigger = new TaskCompletionSource <bool>();

            token.Register(() => cancelTrigger.SetResult(true));

            async Task Handler(SocketMessage message)
            {
                var result = await standard.CheckAsync(this, message).ConfigureAwait(false);

                if (result)
                {
                    eventTrigger.SetResult(message);
                }
            }

            Client.MessageReceived += Handler;

            var trigger = eventTrigger.Task;
            var cancel  = cancelTrigger.Task;
            var delay   = Task.Delay(timeOut.Value);
            var task    = await Task.WhenAny(trigger, delay, cancel).ConfigureAwait(false);

            Client.MessageReceived -= Handler;

            if (task == trigger)
            {
                return(await trigger.ConfigureAwait(false));
            }
            return(null);
        }
Beispiel #2
0
 protected void OnInitialized(ScoreInfo scoreInfo)
 {
     _oldValue = scoreInfo.Score;
     _nowValue = scoreInfo.Score;
     _key      = scoreInfo.ID;
     _standard = StandardFactory.getInstance("Normal");
 }
Beispiel #3
0
        public StandardProxy(IStandard target)
        {
            if (target == null)
                throw new ArgumentNullException("target");

            _target = target;
        }
Beispiel #4
0
        public StandardProxy(IStandard target)
        {
            if (target == null)
            {
                throw new ArgumentNullException("target");
            }

            _target = target;
        }
Beispiel #5
0
 public AdmissionController(IStudent repository, IAdmission admission, IAdmissionPay admissionPay, IStandard standard, IHostingEnvironment env, IEmailService emailService)
 {
     StudentRepository = repository;
     _admission        = admission;
     _admissionPay     = admissionPay;
     _Standard         = standard;
     this.env          = env;
     this.emailService = emailService;
 }
 internal StockItemBarcodeResult(IStandard standard, StockItem stockItem)
 {
     this.Standard  = standard;
     this.StockItem = stockItem;
 }
Beispiel #7
0
        static async Task RunTest(IStandard c)
        {
            var huga1 = await c.NullableCheck(false);

            var huga2 = await c.NullableCheck(true);
        }
Beispiel #8
0
 /// <summary>
 /// 构建一个解析配置
 /// </summary>
 /// <param name="standard">解析标准</param>
 public CsvParserOptions(IStandard standard)
 {
     Standard       = standard;
     SkipHeader     = false;
     AnnotationChar = ';';
 }
Beispiel #9
0
 // 다형성(융통성)
 public CarRepair(IStandard car) => car.Run();
Beispiel #10
0
        private StockItemBarcodeResult BuildResultObject(string barcode, IStandard standard)
        {
            var stockItem = standard.Parse();

            return(new StockItemBarcodeResult(standard, stockItem));
        }
Beispiel #11
0
 public StockItemBarcodeResult GetBarcodeData(string barcode, IStandard standard)
 {
     return(this.BuildResultObject(barcode, standard));
 }
Beispiel #12
0
 private String RetrieveDocumentation(IStandard standard)
 {
     return(standard.GetDocumentation);
 }
 public StandardController(IStandard standard)
 {
     this._standard = standard;
 }