public AccountSessionHandler(SessionData sessionData, ILogger <AccountSessionHandler> logger, IChatsRepository chatsRepository, SubscriptionFactory subscriptionFactory) { _sessionData = sessionData; _logger = logger; _chatsRepository = chatsRepository; _subscription = subscriptionFactory.Create(); _sessionSubject = new BehaviorSubject <SessionData>(sessionData); _subscription.Add(_sessionSubject); SessionChanges = _sessionSubject; _cancelSubject = new Subject <Unit>(); _subscription.Add(_cancelSubject); _supportedMessages = new Dictionary <string, Func <IObservable <Unit> > >(StringComparer.OrdinalIgnoreCase) { { "/start", () => Observable.Empty <Unit>() }, { "/stop", () => Observable.Empty <Unit>() }, { "/help", () => ShowHelp() }, { "/login", () => Login() }, { "/username", () => RequestUsername() }, { "/session", () => RequestSession() }, { "/token", () => RequestAuthToken() }, { "/cancel", () => Cancel() }, { "/pause", () => StartPauseDialog() }, { "/resume", () => Resume() }, { "/mute", () => StartMuteDialog() }, { "/unmute", () => Unmute() }, { "/timezone", () => RequestTimezone() }, }; }
private void SubscribeOnAccounts() { _subscriptions.Add( Messages.Where(m => m.Value.Message.NewChatMembers?.Any(cm => cm.Id == m.Key) == true || m.Value.Message.Text == "/start" ) .SelectAsync(m => AddChat(m.Key, m.Value.Message.Chat.Id)) .Where(sessionData => sessionData != null) .SelectAsync(sessionData => sessionData.SessionCommunicator.SendMessage(StandardMessage.Started, true)) .Subscribe() ); _subscriptions.Add( Messages.Where(m => m.Value.Message.Text == "/stop") .SelectAsync(m => RemoveChat(m.Key, m.Value.Message.Chat.Id)) .SelectAsync(sessionData => sessionData.SessionCommunicator.SendMessage(StandardMessage.Stopped, true)) .Subscribe() ); _subscriptions.Add( Messages.Where(m => m.Value.Message.LeftChatMember?.Id == m.Key) .Select(m => RemoveChat(m.Key, m.Value.Message.Chat.Id)) .Subscribe() ); }
/// <summary> /// Charge from users for chat app /// </summary> //[HttpPost] //public async Task<IHttpActionResult> Charge() //{ // //URL: http://localhost:2513/41440/v1/chat/charge // IdeaMartStatusResponse statusResponse = new IdeaMartStatusResponse(); // Log.TraceStart(); // try // { // ChatAppDM dm = new ChatAppDM(); // var userList = dm.GetAllUserAddressList(); // foreach (var userAddress in userList) // { // var chargingResponse = await ChargeUser(userAddress); // } // statusResponse.requestId = "User Chat App"; // statusResponse.statusCode = Consts.SUCCESS; // statusResponse.statusDetail = "Charging service successful for User Chat App."; // statusResponse.timeStamp = DateTime.UtcNow.ToString(); // statusResponse.version = "1.0"; // } // catch (Exception ex) // { // Log.Error(ex.ToString()); // return BadRequest(); // } // Log.TraceEnd(); // return Ok(statusResponse); //} #endregion #region private methods private async Task <IdeaMartStatusResponseDto> RegisterUser(string userAddress) { //Log.TraceStart(); try { //Subscribe User Subscription subscription = new Subscription(); var response = await subscription.Add(_appId, _password, userAddress); if (response != null) { ChatAppDM dm = new ChatAppDM(); if (response.statusCode == Consts.SUCCESS)//subscription successful { // var chargingResponse = await ChargeUser(userAddress); //ChargeUser(userAddress); //Generate code string code = Common.GenerateCode(_codeLength); while (dm.CodeExists(code)) { code = Common.GenerateCode(_codeLength); } //Save in DB var userId = dm.SubscribeUser(userAddress, code); if (userId > 0) { var message = string.Format(Resources.Info_RegisterSuccess, code.ToUpper()); Sms.Send(userAddress, message); } else { Log.Error(string.Format(Resources.Error_UserSaveFailed, userAddress)); } } else if (response.statusCode == Consts.USER_ALREADY_REGISTERED) { string code = dm.GetUserCode(userAddress); var message = string.Format(Resources.Info_UserAlreadyRegistered, code); Sms.Send(userAddress, message); } else { var message = string.Format(response.statusDetail); Sms.Send(userAddress, message); } } //Log.TraceEnd(); return(response); } catch (Exception ex) { Log.Error(ex.ToString()); throw; } }
internal CardStateViewModel(CardState card) { this._card = card ?? throw new ArgumentNullException(nameof(card)); Cid = card.Cid; // Subscribe event handlers. Subscription.Add(Observable.FromEvent <PropertyChangedEventHandler, PropertyChangedEventArgs> ( handler => (sender, e) => handler(e), handler => card.PropertyChanged += handler, handler => card.PropertyChanged -= handler ) .ObserveOn(SynchronizationContext.Current) .Subscribe(e => { switch (e.PropertyName) { case nameof(CardState.Capacity): RaisePropertyChanged(nameof(FreeCapacity)); RaisePropertyChanged(nameof(TotalCapacity)); RaisePropertyChanged(nameof(UsedPercentage)); break; } })); }
public MainWindowViewModel() { Op = new Operator(this); // Add event listeners. if (!Designer.IsInDesignMode) // AddListener source may be null in Design mode. { _fileListPropertyChangedListener = new PropertyChangedEventListener(FileListPropertyChanged); PropertyChangedEventManager.AddListener(FileListCore, _fileListPropertyChangedListener, string.Empty); _settingsPropertyChangedListener = new PropertyChangedEventListener(ReactSettingsPropertyChanged); PropertyChangedEventManager.AddListener(Settings.Current, _settingsPropertyChangedListener, string.Empty); _operatorPropertyChangedListener = new PropertyChangedEventListener(ReactOperatorPropertyChanged); PropertyChangedEventManager.AddListener(Op, _operatorPropertyChangedListener, string.Empty); } // Subscribe event handlers. Subscription.Add(Observable.FromEvent ( handler => _currentFrameSizeChanged += handler, handler => _currentFrameSizeChanged -= handler ) .Throttle(TimeSpan.FromMilliseconds(50)) .ObserveOn(SynchronizationContext.Current) .Subscribe(_ => SetCurrentImage())); Subscription.Add(Observable.FromEvent ( handler => _autoCheckIntervalChanged += handler, handler => _autoCheckIntervalChanged -= handler ) .Throttle(TimeSpan.FromMilliseconds(200)) .ObserveOn(SynchronizationContext.Current) .Subscribe(_ => Op.ResetAutoTimer())); Subscription.Add(Observable.FromEvent ( handler => _targetConditionChanged += handler, handler => _targetConditionChanged -= handler ) .Throttle(TimeSpan.FromMilliseconds(200)) .ObserveOn(SynchronizationContext.Current) .Subscribe(_ => { FileListCoreView.Refresh(); Op.UpdateProgress(); })); Subscription.Add(Observable.FromEventPattern ( handler => Op.ActivateRequested += handler, handler => Op.ActivateRequested -= handler ) .ObserveOn(SynchronizationContext.Current) .Subscribe(_ => ActivateRequested?.Invoke(this, EventArgs.Empty))); SetSample(1); }
public MaintananceHostedService(ILogger <MaintananceHostedService> logger, SubscriptionFactory subscriptionFactory) { _subscription = subscriptionFactory.Create(); _logger = logger; _httpClient = new HttpClient(); _subscription.Add(_httpClient); }
public Task StartAsync(CancellationToken cancellationToken) { var timer = Observable.Interval(TimeSpan.FromMinutes(1)).StartWith(0); var subscription = timer.SelectAsync(async interval => await Ping()).Subscribe(); _subscription.Add(subscription); return(Task.CompletedTask); }
public TelegramAccountsHandler(SubscriptionFactory subscriptionFactory, IChatsRepository chatsRepository, BotClientFactory botClientFactory, MessageFactory messageFactory, MessageSender messageSender) { _subscriptions = subscriptionFactory.Create(); _sessionChanges = new Subject <SessionData>(); _subscriptions.Add(_sessionChanges); _chatsRepository = chatsRepository; _botClientFactory = botClientFactory; _messageFactory = messageFactory; this._messageSender = messageSender; }
private void AddPseudoSkusToSubscription(IList <int> pseudoSkusToAdd, Subscription subscription) { PseudoSku pseudoSku; if (pseudoSkusToAdd.Count() > 0) { foreach (int pseudoSkuId in pseudoSkusToAdd) { pseudoSku = _pseudoSkuRepository.FindBy(pseudoSkuId); subscription.Add(pseudoSku); } } }
internal void Initialize(MainWindowViewModel mainWindowViewModel) { this._mainWindowViewModel ??= mainWindowViewModel ?? throw new ArgumentNullException(nameof(mainWindowViewModel)); // Subscribe event handlers. Subscription.Add(Observable.FromEvent <PropertyChangedEventHandler, PropertyChangedEventArgs> ( handler => (sender, e) => handler(e), handler => mainWindowViewModel.Op.Card.PropertyChanged += handler, handler => mainWindowViewModel.Op.Card.PropertyChanged -= handler ) .Where(e => { switch (e.PropertyName) { case nameof(CardState.FirmwareVersion): case nameof(CardState.Ssid): case nameof(CardState.Cid): return(true); } return(false); }) .Throttle(TimeSpan.FromMilliseconds(100)) .ObserveOn(SynchronizationContext.Current) .Subscribe(_ => { RemoteCard = new CardStateViewModel(this._mainWindowViewModel.Op.Card); })); Subscription.Add(Observable.FromEvent <NotifyCollectionChangedEventHandler, NotifyCollectionChangedEventArgs> ( handler => (sender, e) => handler(e), handler => LocalCards.CollectionChanged += handler, handler => LocalCards.CollectionChanged -= handler ) .ObserveOn(SynchronizationContext.Current) .Subscribe(_ => { LocalCard ??= LocalCards.FirstOrDefault(); RaisePropertyChanged(StaticPropertyChanged, nameof(LocalCardIsAvailable)); })); LocalCard ??= LocalCards.FirstOrDefault(); }
public void Initialize() { _subscription.Add( StartHandleMessages().LogException(_logger).Subscribe() ); }