public void LoadAlerts(int id) { lbAlerts.Items.Clear(); lbNotAlerts.Items.Clear(); int selectedGroup = Convert.ToInt32(dlGroups.SelectedValue); var ids = new List <int>(); var alerts = AlertManager.GetAll(); var groupAlerts = GroupAlertManager.GetByGroupId(selectedGroup); foreach (var item in groupAlerts) { if (item.GroupId == selectedGroup) { var alert = AlertManager.GetById(item.AlertId); lbAlerts.Items.Add(new ListItem(alert.AlertName, alert.AlertId.ToString())); ids.Add(item.AlertId); ddGeoFences.SelectedValue = item.FencesId.ToString(); } } foreach (var alert in alerts) { if (!ids.Contains(alert.AlertId)) { lbNotAlerts.Items.Add(new ListItem(alert.AlertName, alert.AlertId.ToString())); } } }
protected void btnSave_Click(object sender, EventArgs e) { try { if (dlGroups.SelectedIndex == 0) { return; } if (ddGeoFences.SelectedIndex == 0) { return; } int id = Convert.ToInt32(dlGroups.SelectedValue); RemoveGroupAlerts(id); int FanceID = Convert.ToInt32(ddGeoFences.SelectedValue); foreach (ListItem item in lbAlerts.Items) { var alertId = Convert.ToInt32(item.Value); var gAlert = new GroupAlert() { AlertId = alertId, GroupId = id, FencesId = FanceID }; GroupAlertManager.Add(gAlert); lblError.Text = "Record Saved Successfully"; //lblError.ForeColor = System.Drawing.Color.Red; lblError.Visible = true; } } catch (System.Exception ex) { lblError.Text = ex.ToString(); lblError.Visible = true; } }
private void timer_Elapsed(object sender, EventArgs e) { timer.Stop(); var logs = LocationMessageAlertsManager.GetLogs(); foreach (var log in logs) //Lopp through then each location log { var fences = FencesManager.GetAll(); foreach (var fence in fences) { var a = fence.FencesId; //var jsons = "{lat:28.589611097714087, lg:77.11919783963822},{lat:28.600161714673284, lg:77.1233177126851},{lat:28.604683083437216, lg:77.13155745877884},{lat:28.596695200206437, lg:77.14614867581986},{lat:28.59368074686057, lg:77.1562766970601},{lat:28.59111839354537, lg:77.16297149076127},{lat:28.58508908056065, lg:77.14992522611283},{lat:28.584184653792438, lg:77.13636397733353},{lat:28.584033915241474, lg:77.12675094022416}"; var jsons = fence.FencesCoordinate; var latMatchCol = Regex.Matches(jsons, latExp); var lgMatchCol = Regex.Matches(jsons, lgExp); var locs = new List <Loc>(); for (int i = 0; i < latMatchCol.Count; i++) { var l = latMatchCol[i].Value.Split(':')[1]; var g = lgMatchCol[i].Value.Split(':')[1]; locs.Add(new Loc { Lt = Convert.ToDouble(l), Lg = Convert.ToDouble(g) }); } for (int i = 0; i < lgMatchCol.Count; i++) { var l = lgMatchCol[i].Value.Split(':')[1]; var g = lgMatchCol[i].Value.Split(':')[1]; locs.Add(new Loc { Lt = Convert.ToDouble(l), Lg = Convert.ToDouble(g) }); } var IsPointInPolygon = ServiceHelper.IsPointInPolygon(locs, new Loc { Lt = (double)log.Lat, Lg = (double)log.Lang }); if (IsPointInPolygon == true) { //If already entered then go for next fences if (AlertFiredManager.IsAlreadyEnterdInFences(log.TrackerId)) { continue; } var groupAlert = GroupAlertManager.GetAllByFencesId(fence.FencesId); foreach (var item in groupAlert) { var alert = AlertManager.GetById(item.AlertId); if (alert.AlertOnGeofenceEnter ?? false) { //Get all user details and send mail alertName = alert.AlertName; message = alert.Message; SendAlertAndSaveInAlertLogTbl(fence.FencesId, log.MessageAlertId, item.AlertId, "onEnter"); } } //now inserting value in fired update table var alrtFired = new AlertFired { TrackerId = log.TrackerId, MessageAlertId = log.MessageAlertId, LocationMessageId = log.LocationMessageId, IsEnter = true, IsExit = false, Active = true, //??????, FenceId = fence.FencesId }; AlertFiredManager.Save(alrtFired); } else //Ispointinpolygon==false { //var fired = AlertFiredManager.GetActiveEnterByTrackerId(log.TrackerId,Convert.ToInt32(log.LocationMessageId)); var fired = AlertFiredManager.GetActiveEnterByTrackerId(log.TrackerId); if (fired == null) { continue; } var groupAlert = GroupAlertManager.GetAllByFencesId(fence.FencesId); foreach (var item in groupAlert) { var alert = AlertManager.GetById(item.AlertId); if (alert.AlertOnGeofenceLeave == true) { //get user details and send msg alertName = alert.AlertName; message = alert.Message; SendAlertAndSaveInAlertLogTbl(fence.FencesId, log.MessageAlertId, item.AlertId, "onExit"); } } //update values Active to false and is isexit and isenter to true in alertFired table; AlertFiredManager.ProcessedAlertExitFired(fired.Id); } } //update IsProccessed to true in LocationMessageAlert table. LocationMessageAlertsManager.UpdateByTrackerId(log.TrackerId); } timer.Start(); }
public void RemoveGroupAlerts(int id) { GroupAlertManager.RemoveGroupAlertsByGroupId(id); }