private static void CreateAlarmEvent(AlarmConfigurationItemBase configItem) { try { var dbContextFactory = LocalServiceLocator.GetService <IDbContextFactory>(); using (var context = dbContextFactory.CreateContext <AlarmDbContext>()) { var item = context.AlarmItems.FirstOrDefault(a => a.AlarmStatusId != (int)AlarmStatus.Closed && a.AlarmConfigName == configItem.ConfigName); if (item == null) { item = new AlarmItem() { AlarmDatabaseName = configItem.DatabasePrefix, AlarmTableName = configItem.TableName, AlarmConfigName = configItem.ConfigName, AlarmStatus = AlarmStatus.Open, OpenTime = DateTime.Now, }; context.AlarmItems.Add(item); context.SaveChanges(); } } } catch (Exception ex) { ex.Handle(AlarmConfigurationBase.ModuleName, "AlarmService", "CreateAlarmEvent"); } }
public async Task SwitchEnabled(AlarmItem alarm) { try { var newEnabledValue = !alarm.Enabled; if (newEnabledValue) { await _geofenceManager.AddGeofence(alarm.GeofenceId, alarm.Latitude, alarm.Longitude, alarm.Radius); } else { await _geofenceManager.RemoveGeofence(alarm.GeofenceId); } alarm.Enabled = newEnabledValue; _databaseManager.Update(alarm); OnAlarmsSetChanged(); } catch (Exception e) { _logService.Log(Tag, e); throw; } }
public void Initialize(AlarmItem item) { if (null != item) { alarmItem = item; } }
public static byte[] ToBytes(this AlarmItem alarmItem) { var firstPart = alarmItem.Time.ToBytes().ToList(); var secondPart = alarmItem.Name.ToBytes().ToList(); return(firstPart.Concat(secondPart).ToArray()); }
private void Back(AlarmItem item) { alarmItem = null; ViewModel.AlarmItem = null; ViewModel.Reset(); PageManager.Me.SetCurrentPage(typeof(CreateReminderPage), View => (View as CreateReminderPage).Initialize(item)); }
private void SetAlarmsViewSource_Filter(object sender, System.Windows.Data.FilterEventArgs e) { AlarmItem i = e.Item as AlarmItem; if (i != null) { e.Accepted = i.IsSet == true; } }
//========================================================= // Events //========================================================= /// <summary> /// Occurs when an alarm item on either the Miner or Botany data grid is checked /// </summary> /// <param name="item"></param> private void OnAlarmItemChecked(AlarmItem alarmItem) { AlarmController.Controller.Master.SetAlarmItem(alarmItem.Name, alarmItem.StartTime); CollectionViewSource scheduledAlarmsViewSource = ((CollectionViewSource)Schedules.View.FindResource("ScheduledAlarmsViewSource")); if (scheduledAlarmsViewSource.View != null) { scheduledAlarmsViewSource.View.Refresh(); } }
private void BotanistViewSource_Filter(object sender, System.Windows.Data.FilterEventArgs e) { AlarmItem i = e.Item as AlarmItem; if (i != null) { if (!string.IsNullOrEmpty(((ViewModels.AlarmsViewModel) this.DataContext).SearchText)) { e.Accepted = i.Name.ToLower().Contains(((ViewModels.AlarmsViewModel) this.DataContext).SearchText.ToLower()) && i.Job == "Botanist"; } } }
public async Task Remove(AlarmItem alarm) { try { await _geofenceManager.RemoveGeofence(alarm.GeofenceId); _databaseManager.Delete(alarm); OnAlarmsSetChanged(); } catch (Exception e) { _logService.Log(Tag, e); throw; } }
//http://dotnetbyexample.blogspot.com/2014/02/drawing-circle-shapes-on-windows-phone.html public static IEnumerable <BasicGeoposition> GetPointsForCirle(this AlarmItem source) { var center = new BasicGeoposition { Latitude = source.Latitude, Longitude = source.Longitude }; var locations = new List <BasicGeoposition>(); for (var i = 0; i <= 180; i++) { locations.Add(center.GetAtDistanceBearing(source.Radius, 2 * i)); } return(locations); }
/// <summary> /// 添加报警信息到列表 /// </summary> /// <param name="ac"></param> private void AddAlarmQueue(ref int i, NormalizingApp.Model.AlarmContent ac) { AlarmItem ai = new AlarmItem(i.ToString(), DateTime.Now.ToString(), ac.ID.ToString(), ac.Message); foreach (AlarmItem item in alarmListData) { if (item.Id.ToString() == ac.ID.ToString()) { return; } } alarmListData.Add(ai); i++; }
public async Task AddAlarm(AlarmItem alarm) { try { alarm.GeofenceId = Guid.NewGuid().ToString(); await _geofenceManager.AddGeofence(alarm.GeofenceId, alarm.Latitude, alarm.Longitude, alarm.Radius); _databaseManager.Add(alarm); OnAlarmsSetChanged(); } catch (Exception e) { _logService.Log(Tag, e); throw; } }
public void Handle(AlarmItem message) { if (!message.Value) { if (AlarmList.Any(x => x.Address == message.Address)) { var a = AlarmList.Where(x => x.Address == message.Address); foreach (var v in a) { AlarmList.Remove(v); } } } else { AlarmList.Add(message); } }
void cond_SendAlarm(object sender, AlarmItem e) { lock (_asyncAlarm) { int index2 = _conditions.BinarySearch(new DigitAlarm(0, e.Source), _compare); if (index2 > -1) { var cond = _conditions[index2]; if (_conditionList.Contains(cond) && App.Current != null) { App.Current.Dispatcher.BeginInvoke(new Action(delegate { try { _conditionList.Remove(cond); } catch (Exception err) { } })); } if (e.SubAlarmType != SubAlarmType.None && App.Current != null) { App.Current.Dispatcher.BeginInvoke(new Action(delegate { try { _conditionList.Add(cond); } catch (Exception err) { } })); } } if (_linkedList.Count < ALARMLIMIT) { _linkedList.Enqueue(e); } else { _linkedList.Dequeue(); _linkedList.Enqueue(e); } } }
public override void AboutToShow() { base.AboutToShow(); if (null == alarmItem) { alarmItem = new AlarmItem(); ViewModel.Reset(); //#if DEBUG // alarmItem.Description = "Megamode pumper"; // alarmItem.Date = DateTime.Now; // alarmItem.IsAutoStart = true; //#endif ViewModel.AlarmItem = alarmItem; } else { ViewModel.AlarmItem = alarmItem; } }
private void FinishSession(AlarmItem item) { PageManager.Me.SetCurrentPage(typeof(ChooseModePage), View => (View as ChooseModePage).Initialize(item)); }
void CancelButton_Clicked(object sender, EventArgs e) { // Cleanup alarmItem = null; ViewModel.AlarmItem = null; }
//========================================================= // Events //========================================================= /// <summary> /// Occurs when an alarm item on either the Miner or Botany data grid is checked /// </summary> /// <param name="item"></param> private void OnAlarmItemChecked(AlarmItem item) { AlarmController.Controller.Master.SetAlarmItem(item.Name, item.StartTime); }
public override void DealException(string strExcptionName, WaranResult BitOpreatBtn, AlarmItem alarmItem) { base.DealException(strExcptionName, BitOpreatBtn, alarmItem); }
static void Main(string[] args) { AdhesiveFramework.Start(); Console.ReadLine(); IDbContextFactory dbContextFactory = LocalServiceLocator.GetService <IDbContextFactory>(); using (var context = dbContextFactory.CreateContext <AlarmDbContext>()) { var alarm1 = new AlarmItem { AlarmConfigName = "Asdadsad", AlarmStatus = AlarmStatus.Open, OpenTime = DateTime.Now, AlarmTimes = 10, }; var alarm2 = new AlarmItem { AlarmConfigName = "Asdadsad", AlarmStatus = AlarmStatus.Handling, HandleTime = DateTime.Now, OpenTime = DateTime.Now, AlarmTimes = 10, }; var alarm3 = new AlarmItem { AlarmConfigName = "Asdadsad", AlarmStatus = AlarmStatus.Closed, AlarmTimes = 10, OpenTime = DateTime.Now, CloseTime = DateTime.Now, HandleTime = DateTime.Now, }; var alarmprocess1 = new AlarmProcessItem() { AlarmItem = alarm3, MailComment = "邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息", MobileComment = "短信消息短信消息短信消息短信消息短信消息短信消息", AlarmStatus = AlarmStatus.Handling, ProcessUserName = "******", ProcessUserRealName = "朱晔", EventTime = DateTime.Now, }; var alarmprocess2 = new AlarmProcessItem() { AlarmItem = alarm3, MailComment = "邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息", MobileComment = "短信消息短信消息短信消息短信消息短信消息短信消息", AlarmStatus = AlarmStatus.Handling, ProcessUserName = "******", ProcessUserRealName = "朱晔", EventTime = DateTime.Now, }; var alarmprocess3 = new AlarmProcessItem() { AlarmItem = alarm3, MailComment = "邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息邮件消息", MobileComment = "短信消息短信消息短信消息短信消息短信消息短信消息", AlarmStatus = AlarmStatus.Closed, ProcessUserName = "******", ProcessUserRealName = "朱晔", EventTime = DateTime.Now, }; context.AlarmItems.Add(alarm1); context.AlarmItems.Add(alarm2); context.AlarmItems.Add(alarm3); context.AlarmProcessItems.Add(alarmprocess1); context.AlarmProcessItems.Add(alarmprocess2); context.AlarmProcessItems.Add(alarmprocess3); context.SaveChanges(); } AdhesiveFramework.End(); }
async Task SendNotificationAsync(RemoteMessage message) { string notificationType = message.Data["type"]; string idAlarm = message.Data["idAlarm"]; string idRoom = message.Data["idRoom"]; string numRoom = message.Data["numRoom"]; string nomOccupant = message.Data["occupant"]; string triggerTime = message.Data["triggerTime"]; //Personnalisation du message de la notification string notifTitle = "Nouvel appel en chambre " + numRoom + " !"; string notifMessage = "Appel effectué à " + triggerTime; //S'il s'agit d'une notification de type nouvelle alarme if (notificationType.Equals("newAlarm")) { //Ajout de l'alarme dans la base de données locale AlarmItem alarm = new AlarmItem(); alarm.IDAlarm = int.Parse(idAlarm); alarm.Status = false; alarm.Chambre = numRoom; alarm.NomOccupant = nomOccupant; alarm.DtDebut = triggerTime; AlarmItemManager.AddAlarm(alarm); Console.WriteLine(AlarmItemManager.GetAlarm(4).Chambre); } //Affichage de la notification que nous venons de configurer var intent = new Intent(this, typeof(Accueil)); intent.AddFlags(ActivityFlags.ClearTop); var pendingIntent = PendingIntent.GetActivity(this, 0, intent, PendingIntentFlags.OneShot); Notification.BigTextStyle textStyle = new Notification.BigTextStyle(); //... textStyle.BigText(notifMessage); var notificationBuilder = new Notification.Builder(this) .SetContentTitle(notifTitle) .SetStyle(textStyle) .SetContentText(notifMessage) .SetPriority((int)Android.App.NotificationPriority.High) .SetDefaults(NotificationDefaults.Vibrate) .SetSmallIcon(Resource.Drawable.patient2) .SetSound(RingtoneManager.GetDefaultUri(RingtoneType.Alarm)) .SetAutoCancel(true) .SetContentIntent(pendingIntent) .SetVisibility(NotificationVisibility.Public); if (notificationType.Equals("newAlarm") || (notificationType.Equals("support") && notifyNewSupport)) { var notificationManager = NotificationManager.FromContext(this); notificationManager.Notify(int.Parse(idRoom), notificationBuilder.Build()); } }