public void DoBindFances() { var Geo_Fance = FencesManager.GetAll(); CollectionHelper.PopulateListControl(ddGeoFences, "FencesId", "FencesName", Geo_Fance); }
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 FencesBind() { var fences = FencesManager.GetAll(); CollectionHelper.PopulateListControl(dlFences, "FencesId", "FencesName", fences); }