public void DoStartServer() { var listener = new HttpListener(); listener.Prefixes.Add(uri); isStarted = true; listener.Start(); var context = listener.GetContext(); using (var reader = new StreamReader(context.Request.InputStream)) { var body = reader.ReadToEnd(); var notifyData = new NotifyData(); notifyData.Deserialize(body); if (notifyData.Type == NotifyType.Email) { var json = notifyData.Data.ToString(); var entity = JsonConvert.DeserializeObject <MailEntity>(json); var agent = new MailAgent(); agent.Send(entity); } } var output = context.Response.OutputStream; output.Flush(); output.Close(); }
protected void NotifyObservers(NotifyData data) { foreach (var obs in observers) { obs.Notify(data); } }
public void handleBtnClick(INotifyData obj) { NotifyData <int> msg = obj as NotifyData <int>; if (msg != null) { GameModel gameModel = GameModel.getInstance(); GameNotifier gameNotifier = GameNotifier.getInstance(); bool needResult = false; //如果现在已经有数字, 加上去 if (gameModel.opNumber > 0) { gameModel.opNumber += msg.data; needResult = true; } else { gameModel.opNumber = msg.data; } //通知炮上的数字发生改变 gameNotifier.notifydata((int)NotifyId.CANNON_NUMBER_CHANGE, gameModel.opNumber); //如果需要结算 if (needResult) { handleOpResult(); } } }
// 通知事件 private void OnSyncEvent(NotifyData data) { if (_func != null) { _func(data); // 回调逻辑层 } }
public void Notify(NotifyData data) { if (Updatable) { _list.Add(data); } }
/// <summary> /// Set a communications notification callback, or null to remove the callback. /// The registered delegate receives all communications on the TCP channels (both /// on the platform and on the data channel). /// Note: Communications on the platform and data channels can be asynchronous on /// more than one thread. The callback must disentangle if this might occur /// </summary> /// <param name="notifier"></param> public void SetTransportCallback(NotifyData notifier) { lock (CallbackLock) { Notifier = notifier; } }
/// <summary> /// 更新进度 /// </summary> private void ProgressChanged(object sender, DownloadProgressChangedEventArgs e) { //UnityEngine.Debug.Log(e.ProgressPercentage); //UnityEngine.Debug.Log(string.Format("{0} MB's / {1} MB's", // (e.BytesReceived / 1024d / 1024d).ToString("0.00"), // (e.TotalBytesToReceive / 1024d / 1024d).ToString("0.00"))); //float value = (float)e.ProgressPercentage / 100f; string speed = string.Format("{0} kb/s", (e.BytesReceived / 1024d / m_stopwatch.Elapsed.TotalSeconds).ToString("0.00")); object[] evParam = { m_currDownFile, speed, e.BytesReceived }; NotifyData data = new NotifyData(NotifyConst.UPDATE_PROGRESS, evParam); if (m_SyncEvent != null) { m_SyncEvent(data); } //if ( e.ProgressPercentage == 100 && e.BytesReceived == e.TotalBytesToReceive ) //{ // m_stopwatch.Reset(); // data = new NotifyData( NotifyConst.UPDATE_DOWNLOAD, m_currDownFile ); // if ( m_SyncEvent != null ) // m_SyncEvent( data ); //} }
/// <summary> /// Removes specified file from quarantine queue, /// also terminate file processing if performed /// </summary> /// <param name="FileName"></param> public static void CancelItemProcessing(long id,IntPtr[] Listeners) { lock (MainLock) { if (QueueLocked) { return; } foreach (QuarantineItem item in ItemsQueue) { if (item.ID == id) { ItemsQueue.Remove(item); NotifyData data = new NotifyData(); data.ID = id; SendQuarantineNotify(UM_QUARANTINE_ITEM_PROCESSING_CANCELED, data, Listeners); return; } } if (CurrentID == id) { // File is processing right now SkipCurrentItem = true; } } }
public static DbNotifyData ConvertNotifyData(NotifyData notification) { int nextId = DbManager.Instance.GetNotifyWithMaxId(); DbNotifyData DBnotification = new DbNotifyData(nextId, notification.Context, notification.UserName); return(DBnotification); }
private async void Client_OnMessage(object sender, MessageEventArgs e) { byte[] byteMsg = e.RawData; string json = Encoding.UTF8.GetString(byteMsg);// changed Dictionary <string, object> resDict = JsonConvert.DeserializeObject <Dictionary <string, object> >(json); if (resDict.TryGetValue("_Opcode", out object opcodeObj)) { int opcode = Convert.ToInt32(opcodeObj); if (opcode == (int)Opcode.NOTIFICATION) { NotifyData notifyData = JsonConvert.DeserializeObject <NotifyData>(json); await NotifierService.Update(notifyData.Context); } else if (opcode == (int)Opcode.STATISTICS) { NotifyStatisticsData statData = JsonConvert.DeserializeObject <NotifyStatisticsData>(json); await NotifierService.GotStatistics(statData.statistics); } else { responses.Add(json); } } }
public void Notify(NotifyData data) { List <string> result = new List <string>(); if (data.ExtraData.Contains("STARTED")) { result.Add("Voting has just started!"); } else if (data.IsOpen) { result.Add("Voting is open"); if (data.VotesReceived != -1) { result.Add("Option " + data.OptionName + " received " + data.VotesReceived + " votes"); } } else { result.Add("Voting is closed"); } if (data.IsValidated) { result.Add("Voting is now officialy validated!"); } result.Add("Total/Eligible votes: " + data.TotalVoters + "/" + data.EligibleVoters); NotifyObservers(result); }
// 上传进度 private void UploadProgress(object sender, UploadProgressChangedEventArgs e) { string value = string.Format("{0} kb/s", (e.BytesSent / 1024d / _stopWatch.Elapsed.TotalSeconds).ToString("0.00")); object[] evParam = { value, e.BytesSent }; NotifyData data = new NotifyData(NotifyConst.UPLOAD_PROGRESS, evParam); OnSyncEvent(data); }
// 上传完成 private void UploadCompleted(object sender, AsyncCompletedEventArgs e) { _stopWatch.Reset(); // 通知逻辑层 object[] evParam = { _currUploadFile }; NotifyData data = new NotifyData(NotifyConst.UPLOAD, evParam); OnSyncEvent(data); }
// 更新下载进度 private void DownloadProgress(object sender, DownloadProgressChangedEventArgs e) { string speed = string.Format("{0} kb/s", (e.BytesReceived / 1024d / _stopWatch.Elapsed.TotalSeconds).ToString("0.00")); object[] evParam = { _currDownFile, speed, e.BytesReceived }; NotifyData data = new NotifyData(NotifyConst.DOWNLOAD_PROGRESS, evParam); OnSyncEvent(data); }
public DbNotifyer(NotifyData data) { m_Data = data; m_tbNotify = new TaskbarIcon(); m_tbNotify.Icon = Resources.Database; m_tbNotify.ToolTipText = data.Title; SLLogEvents.ShowBallonTipp += OnShowLogBallonTipp; }
protected static void UpdateData(NotifyData data) { using (LiveScoreContext dbContext = new LiveScoreContext()) { LiveScore score = dbContext.LiveScore.Where(ls => ls.Css == data.ID.Replace("txt", "")).FirstOrDefault(); //LiveScore score = dbContext.LiveScore.Where(ls => ls.ID == data.No).FirstOrDefault(); score.Score = data.Score; dbContext.SaveChanges(); } }
private void RefreshData( ) { NotifyData?data = Notify.GetDataByID(this.THREAD_ID); if (data.HasValue) { this.dataTemp = data.Value; } this.Refresh( ); }
/// <summary> /// 上传完成 /// </summary> private void UploadFileCompleted(object sender, AsyncCompletedEventArgs e) { m_stopwatch.Reset(); // 通知逻辑层 object[] evParam = { m_currUploadFile }; NotifyData data = new NotifyData(NotifyConst.UPLOAD, evParam); if (m_SyncEvent != null) { m_SyncEvent(data); } }
private void startRound(INotifyData obj) { NotifyData <NotifyRoundStartMsg> msg = obj as NotifyData <NotifyRoundStartMsg>; //创建一个石球 resetStoneBall(msg.data.result); cannon.clearNumber(); //刷新按键数字 numberBtnArea.refreshNumbers(msg.data.numbers); }
private void onOpNumberChanged(INotifyData obj) { NotifyData <int> msg = obj as NotifyData <int>; if (msg.data <= 0) { numberText.text = ""; } else { numberText.text = msg.data.ToString(); } }
public override void GetStateFromMemento(Memento mementoState) { var state = ((RefMemento)mementoState).GetState(); _question = state.title; IsOpen = state.isopen; EligibleVoters = state.eligible; TotalVotes = state.total; var mementoData = state.data; lastData = new NotifyData(IsOpen, mementoData.BallotNumber, mementoData.OptionName, mementoData.VotesReceived, IsValidated(), TotalVotes, _question, EligibleVoters, mementoData.ExtraData); NotifyObservers(mementoData); }
public void notify(string username, NotifyData msg) { byte[] response; //get_session: WebSocketSession session = handler.GetSession(username); if (session == null) { //goto get_session; return; } response = handler.HandleNotification(msg); session.Send(response, 0, response.Length); }
// 継続データの設定 public static void SetContinueNotify() { lock (cointinueData) { try { var filename = Hm.Edit.FilePath ?? ""; cointinueData = new NotifyData { hasData = true, strFilePath = filename, time = timeGetTime() }; } catch (Exception e) { System.Diagnostics.Trace.WriteLine(e.Message); System.Diagnostics.Trace.WriteLine(e.StackTrace); } } }
public void Open(string title, string content) { App.Current.Dispatcher.Invoke((Action)(() => { NotifyData data = new NotifyData(); data.Title = title; data.Content = content; NotificationWindow dialog = new NotificationWindow();//new 一个通知 dialog.Closed += Dialog_Closed; dialog.TopFrom = GetTopFrom(); _dialogs.Add(dialog); dialog.DataContext = data;//设置通知里要显示的数据 dialog.Show(); })); }
private void ShowNotification(string title, string msg) { NotifyData data = new NotifyData(); data.Title = title; data.Content = msg; NotificationDialog dialog = new NotificationDialog();//new 一个通知 dialog.Closed += Dialog_Closed; dialog.TopFrom = GetTopFrom(); _notificationDialogs.Add(dialog); dialog.DataContext = data;//设置通知里要显示的数据 dialog.ShowActivated = false; dialog.Show(); }
private async Task NotifyWithOutGroup(NotifyData input) { // 指定的用户连接Dictionary列表 var dictUserConnections = await GetUserConnectDict(input.UserIds); var userConnects = dictUserConnections.SelectMany(m => m.Value).ToList(); if (input.ExcludeUsers) { await _notifyHub.Clients.AllExcept(userConnects).OnNotify(input.NotifyObj); } else { await _notifyHub.Clients.Clients(userConnects).OnNotify(input.NotifyObj); } }
public async Task Post(NotifyData input) { _logger.LogDebug($"post:{JsonConvert.SerializeObject(input)}"); var hasGroups = !string.IsNullOrWhiteSpace(input.GroupIds); // input.NotifyObj= MessagePackSerializer.Deserialize<NotifyData>(MessagePackSerializer.SerializeUnsafe(input)); input.NotifyObj = JsonConvert.SerializeObject(input.NotifyObj); if (hasGroups) { await NotifyWithGroup(input); } else { await NotifyWithOutGroup(input); } }
/// <summary> /// 定时事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private async void Timer_Elapsed(object sender, ElapsedEventArgs e) { for (int i = 0; i < 3; i++) { var notifyData = new NotifyData() { Title = "标题" + i, Content = DateTime.Now.AddHours(i).ToString() }; EventData eventData = new EventData() { EventNotify = EventNotifyType.New, Data = notifyData }; Handler.EventNotify(eventData); } }
public override void AddVotes(int choiceNr, string choiceTitle, int votes) { if (!IsOpen) { return; } if (TotalVotes + votes <= EligibleVoters) { TotalVotes += votes; var data = new NotifyData(number: choiceNr, optionName: choiceTitle, votes: votes, total: TotalVotes, eligible: EligibleVoters, validated: IsValidated()); NotifyObservers(data); } else { EndVoting(); } }
/// <summary> /// Send message to Listeners /// </summary> private static void SendQuarantineNotify(int notification, NotifyData data, IntPtr[] Listeners) { lock (MainLock) { if (Listeners == null) { return; } foreach (IntPtr handle in Listeners) { int size = Marshal.SizeOf(data); IntPtr ptr = Marshal.AllocHGlobal(size); Marshal.StructureToPtr(data, ptr, false); Win32API.PostMessage(handle, notification, (uint)ptr.ToInt32(), 0); } } }