// GET : /Distributor/Add public ActionResult Schedule(string AlertType, string DeviceId, string AlertId) { ScheduleViewModel sVM = new ScheduleViewModel(); sVM.AlertTypes = new AlertData().GetAvailableAlerts(); sVM.Devices = new AlertData().GetAvailableDevices().Select(m=>m.DeviceId).ToList(); if (!string.IsNullOrWhiteSpace(AlertType)) { sVM.SelectedAlertType = (DeviceAlarmType)Enum.Parse(typeof(DeviceAlarmType), AlertType); } if (!string.IsNullOrWhiteSpace(DeviceId)) { sVM.SelectedDevice = DeviceId; } if (!string.IsNullOrWhiteSpace(AlertId)) { sVM.SelectedAlertId = AlertId; } if (!string.IsNullOrWhiteSpace(AlertType) && !string.IsNullOrWhiteSpace(DeviceId)) { sVM = new AlertData().GetAlertData(sVM); } if (Request.IsAjaxRequest()) { return PartialView("_Schedule", sVM); } return View(sVM); }
public ActionResult Ac(int? Id = null) { AcAlert alertModel = new AcAlert(); try { ScheduleViewModel sVM = new ScheduleViewModel(); sVM.SelectedAlertType = DeviceAlarmType.AcAlarm; sVM = new AlertData().GetAlertDetails(sVM, Id); AlertBase alertData = sVM.AlertDatas.FirstOrDefault() as AlertBase; if (alertData == null) { alertData = new AlertBase() { Id = 0, Conditions = new List<Tracker.Common.Condition>(), IsActive = false }; } bool IsOnAc = false; if (alertData.Conditions.Where(m => m.Operand == "OnAc").FirstOrDefault() != null) { IsOnAc = Convert.ToBoolean(Convert.ToInt32(alertData.Conditions.Where(m => m.Operand == "OnAc").FirstOrDefault().Value)); } else { IsOnAc = false; } alertModel = new AcAlert() { Id = alertData.Id, IsActive = alertData.IsActive, IsOnAc = IsOnAc, Devices = new List<DeviceDetailSelection>() }; List<DeviceDetailSelection> availableDevices = new AlertData().GetAvailableDevices(); List<string> activeDevices = new AlertData().GetDevicesForAlert(alertData.Id); if (availableDevices != null && availableDevices.Count > 0) { alertModel.Devices = availableDevices.Select(m => new DeviceDetailSelection { DeviceId = m.DeviceId, VehicleId = m.VehicleId, Checked = activeDevices.Contains(m.DeviceId) }).ToList(); } } catch (Exception ex) { } return View(alertModel); }
public ActionResult SaveAlert(FormCollection form) { ScheduleViewModel model = new ScheduleViewModel(); // Save the data UpdateModel(model, form); var tAlertData = new List<AlertBase>(); TryUpdateModel(tAlertData, form); model.AlertDatas = Extensions.ToObjList<AlertBase>(tAlertData); new AlertData().SaveAlertData(model); return RedirectToAction("Schedule", new { AlertType = model.SelectedAlertType, DeviceId = model.SelectedDevice }); }
public bool SaveAlertData(ScheduleViewModel model) { try { List<CustomSqlParameterGroup> paramsToExe = new List<CustomSqlParameterGroup>(); List<SqlParameter> parentdbParams = new List<SqlParameter>(); //parentdbParams.Add(new SqlParameter("DeviceId", model.SelectedDevice)); parentdbParams.Add(new SqlParameter("AlertType", model.SelectedAlertType)); //dbParams.Add(new SqlParameter("IsActive", model.IsActive)); switch (model.SelectedAlertType) { case DeviceAlarmType.PowerCutAlarm: Utils.Extensions.ToObjList<AlertBase>(model.AlertDatas).ForEach(ad => { List<SqlParameter> newdbParams = new List<SqlParameter>(); newdbParams.AddRange(parentdbParams.ToArray()); newdbParams.Add(new SqlParameter("DeviceAlertsId", ad.Id)); newdbParams.Add(new SqlParameter("Name", ad.Name)); newdbParams.Add(new SqlParameter("DescriptionText", ad.DescriptionText)); newdbParams.Add(new SqlParameter("IsActive", ad.IsActive)); newdbParams.Add(new SqlParameter("IsToDelete", ad.IsToDelete)); Condition con = ad.Conditions[0]; con.Operator = "=="; con.Operand = "OnPowerCut"; // TODO //con.Value = Convert.ToBoolean(con.Value) ? "1" : "0"; newdbParams.Add(new SqlParameter("Eval", Tracker.Common.AlertData.SerializeCondition(con))); paramsToExe.Add(new CustomSqlParameterGroup() { Parameters = newdbParams.ToArray() }); }); break; case DeviceAlarmType.SOSAlarm: parentdbParams.Add(new SqlParameter("Operand", "OnSOS")); parentdbParams.Add(new SqlParameter("Operator", "==")); Utils.Extensions.ToObjList<AlertBase>(model.AlertDatas).ForEach(ad => { List<SqlParameter> newdbParams = new List<SqlParameter>(); newdbParams.AddRange(parentdbParams.ToArray()); Condition con = ad.Conditions[0]; con.Operator = "=="; con.Operand = "OnSOS"; // TODO //con.Value = Convert.ToBoolean(con.Value) ? "1" : "0"; newdbParams.Add(new SqlParameter("Eval", Tracker.Common.AlertData.SerializeCondition(con))); newdbParams.Add(new SqlParameter("DeviceAlertsId", ad.Id)); newdbParams.Add(new SqlParameter("Name", ad.Name)); newdbParams.Add(new SqlParameter("DescriptionText", ad.DescriptionText)); newdbParams.Add(new SqlParameter("IsActive", ad.IsActive)); newdbParams.Add(new SqlParameter("IsToDelete", ad.IsToDelete)); paramsToExe.Add(new CustomSqlParameterGroup() { Parameters = newdbParams.ToArray() }); }); break; case DeviceAlarmType.SpeedAlarm: Utils.Extensions.ToObjList<AlertBase>(model.AlertDatas).ForEach(ad => { List<SqlParameter> newdbParams = new List<SqlParameter>(); newdbParams.AddRange(parentdbParams.ToArray()); Condition con = ad.Conditions[0]; con.Operand = "Speed"; // TODO //con.Value = Convert.ToBoolean(con.Value) ? "1" : "0"; newdbParams.Add(new SqlParameter("Eval", Tracker.Common.AlertData.SerializeCondition(con))); newdbParams.Add(new SqlParameter("DeviceAlertsId", ad.Id)); newdbParams.Add(new SqlParameter("Name", ad.Name)); newdbParams.Add(new SqlParameter("DescriptionText", ad.DescriptionText)); newdbParams.Add(new SqlParameter("IsActive", ad.IsActive)); newdbParams.Add(new SqlParameter("IsToDelete", ad.IsToDelete)); paramsToExe.Add(new CustomSqlParameterGroup() { Parameters = newdbParams.ToArray() }); }); break; //case DeviceAlarmType.BreakAlarm: // AlertData = new BreakAlert(); // break; case DeviceAlarmType.VibrationAlarm: Utils.Extensions.ToObjList<AlertBase>(model.AlertDatas).ForEach(ad => { List<SqlParameter> newdbParams = new List<SqlParameter>(); newdbParams.AddRange(parentdbParams.ToArray()); Condition con = ad.Conditions[0]; con.Operator = "=="; con.Operand = "Vibration"; // TODO //con.Value = Convert.ToBoolean(con.Value) ? "1" : "0"; newdbParams.Add(new SqlParameter("Eval", Tracker.Common.AlertData.SerializeCondition(con))); newdbParams.Add(new SqlParameter("DeviceAlertsId", ad.Id)); newdbParams.Add(new SqlParameter("IsActive", ad.IsActive)); newdbParams.Add(new SqlParameter("Name", ad.Name)); newdbParams.Add(new SqlParameter("DescriptionText", ad.DescriptionText)); newdbParams.Add(new SqlParameter("IsToDelete", ad.IsToDelete)); paramsToExe.Add(new CustomSqlParameterGroup() { Parameters = newdbParams.ToArray() }); }); break; case DeviceAlarmType.FenceAlarm: case DeviceAlarmType.FenceInAlarm: case DeviceAlarmType.FenceOutAlarm: { Utils.Extensions.ToObjList<AlertBase>(model.AlertDatas).ForEach(ad => { CustomSqlParameterGroup pListToProcess = new CustomSqlParameterGroup(); List<SqlParameter> newdbParams = new List<SqlParameter>(); newdbParams.AddRange(parentdbParams.ToArray()); newdbParams.Add(new SqlParameter("DeviceAlertsId", ad.Id)); newdbParams.Add(new SqlParameter("IsActive", ad.IsActive)); newdbParams.Add(new SqlParameter("IsToDelete", ad.IsToDelete)); newdbParams.Add(new SqlParameter("Name", ad.Name)); newdbParams.Add(new SqlParameter("DescriptionText", ad.DescriptionText)); pListToProcess.Parameters = newdbParams.ToArray(); pListToProcess.ChildParameters = new CustomSqlParameterGroup(); List<TVParameter> newdbFenceParams = new List<TVParameter>(); int listOrder = 0; DataTable fenceDbDt = new DataTable(); fenceDbDt.Columns.Add("Col1", typeof(string)); fenceDbDt.Columns.Add("Col2", typeof(string)); fenceDbDt.Columns.Add("Col3", typeof(string)); fenceDbDt.Columns.Add("Col4", typeof(string)); fenceDbDt.Columns.Add("Col5", typeof(string)); fenceDbDt.Columns.Add("Col6", typeof(string)); fenceDbDt.Columns.Add("Col7", typeof(string)); if (!string.IsNullOrWhiteSpace(ad.FenceListStr)) { ad.FenceList = ad.FenceList ?? new List<ATFPosition>(); ad.FenceListStr.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries).ToList().ForEach(m => { var latLang = m.Trim().Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); var atP = new ATFPosition() { Lat = latLang[0], Lang = latLang[1], ListOrder = listOrder }; fenceDbDt.Rows.Add(ad.Id.ToString(), latLang[0].Trim(), latLang[1].Trim(), null, listOrder.ToString(), null, null); ad.FenceList.Add(atP); listOrder++; }); } newdbFenceParams.Add(new TVParameter() { ParameterName = "@DeviceFenceList", ParameterValue = fenceDbDt, ParameterTypeName = "CustomDataType", SqlDbType = SqlDbType.Structured }); pListToProcess.ChildParameters.TableValuedParameters = newdbFenceParams.ToArray(); pListToProcess.ChildParameters.Parameters = new SqlParameter[] { new SqlParameter("DeviceAlertId", ad.Id), new SqlParameter("IsToDelete", ad.IsToDelete) }; newdbFenceParams = null; paramsToExe.Add(pListToProcess); }); } break; case DeviceAlarmType.MovingAlarm: Utils.Extensions.ToObjList<AlertBase>(model.AlertDatas).ForEach(ad => { List<SqlParameter> newdbParams = new List<SqlParameter>(); newdbParams.AddRange(parentdbParams.ToArray()); for (int i = 0; i < ad.Conditions.Count; i++) { ad.Conditions[i].Operand = "Speed"; } ad.Conditions.Insert(0, new Condition() { Operand = "OnAcc", Operator = "==", Value = "0", Conjunction = ConjunctionType.AND }); newdbParams.Add(new SqlParameter("Eval", Tracker.Common.AlertData.SerializeCondition(ad.Conditions))); newdbParams.Add(new SqlParameter("DeviceAlertsId", ad.Id)); newdbParams.Add(new SqlParameter("IsActive", ad.IsActive)); newdbParams.Add(new SqlParameter("Name", ad.Name)); newdbParams.Add(new SqlParameter("DescriptionText", ad.DescriptionText)); newdbParams.Add(new SqlParameter("IsToDelete", ad.IsToDelete)); paramsToExe.Add(new CustomSqlParameterGroup() { Parameters = newdbParams.ToArray() }); }); break; case DeviceAlarmType.AccAlarm: Utils.Extensions.ToObjList<AlertBase>(model.AlertDatas).ForEach(ad => { List<SqlParameter> newdbParams = new List<SqlParameter>(); newdbParams.AddRange(parentdbParams.ToArray()); Condition con = ad.Conditions[0]; con.Operator = "=="; con.Operand = "OnAcc"; // TODO //con.Value = Convert.ToBoolean(con.Value) ? "1" : "0"; newdbParams.Add(new SqlParameter("Eval", Tracker.Common.AlertData.SerializeCondition(con))); newdbParams.Add(new SqlParameter("DeviceAlertsId", ad.Id)); newdbParams.Add(new SqlParameter("IsActive", ad.IsActive)); newdbParams.Add(new SqlParameter("Name", ad.Name)); newdbParams.Add(new SqlParameter("DescriptionText", ad.DescriptionText)); newdbParams.Add(new SqlParameter("IsToDelete", ad.IsToDelete)); paramsToExe.Add(new CustomSqlParameterGroup() { Parameters = newdbParams.ToArray() }); }); break; case DeviceAlarmType.AcAlarm: Utils.Extensions.ToObjList<AlertBase>(model.AlertDatas).ForEach(ad => { List<SqlParameter> newdbParams = new List<SqlParameter>(); newdbParams.AddRange(parentdbParams.ToArray()); Condition con = ad.Conditions[0]; con.Operator = "=="; con.Operand = "OnAc"; // TODO //con.Value = Convert.ToBoolean(con.Value) ? "1" : "0"; newdbParams.Add(new SqlParameter("Eval", Tracker.Common.AlertData.SerializeCondition(con))); newdbParams.Add(new SqlParameter("DeviceAlertsId", ad.Id)); newdbParams.Add(new SqlParameter("IsActive", ad.IsActive)); newdbParams.Add(new SqlParameter("Name", ad.Name)); newdbParams.Add(new SqlParameter("DescriptionText", ad.DescriptionText)); newdbParams.Add(new SqlParameter("IsToDelete", ad.IsToDelete)); paramsToExe.Add(new CustomSqlParameterGroup() { Parameters = newdbParams.ToArray() }); }); break; case DeviceAlarmType.StopAlarm: Utils.Extensions.ToObjList<AlertBase>(model.AlertDatas).ForEach(ad => { List<SqlParameter> newdbParams = new List<SqlParameter>(); newdbParams.AddRange(parentdbParams.ToArray()); // For security reason, delete hijacked entries ad.Conditions.RemoveAll(c => c.Operand.ToLower() != "speed" && c.Operand.ToLower() != "onacc" && c.Operand.ToLower() != "duration"); //for (int i = 0; i < ad.Conditions.Count; i++) //{ // ad.Conditions[i].Operand = "Speed"; // ad.Conditions[i].Operator = "=="; // ad.Conditions[i].Value = "0"; //} //ad.Conditions.Insert(0, new Condition() //{ // Operand = "OnAcc", // Operator = "==", // Value = "0", // Conjunction = ConjunctionType.AND //}); newdbParams.Add(new SqlParameter("Eval", Tracker.Common.AlertData.SerializeCondition(ad.Conditions))); newdbParams.Add(new SqlParameter("DeviceAlertsId", ad.Id)); newdbParams.Add(new SqlParameter("IsActive", ad.IsActive)); newdbParams.Add(new SqlParameter("Name", ad.Name)); newdbParams.Add(new SqlParameter("DescriptionText", ad.DescriptionText)); newdbParams.Add(new SqlParameter("IsToDelete", ad.IsToDelete)); paramsToExe.Add(new CustomSqlParameterGroup() { Parameters = newdbParams.ToArray() }); }); break; default: break; } try { paramsToExe.ForEach(p => { string updatedVal = Data.StoreData_ExecuteScalar(DataBase.Api, CommandType.StoredProcedure, "Master_SaveDeviceAlert", p.Parameters, null ); model.SelectedAlertId = updatedVal; if (p.ChildParameters != null && p.ChildParameters.TableValuedParameters != null && p.ChildParameters.TableValuedParameters.Length > 0) { switch (model.SelectedAlertType) { case DeviceAlarmType.FenceAlarm: case DeviceAlarmType.FenceInAlarm: case DeviceAlarmType.FenceOutAlarm: { // -1 used for delete the records if (!string.IsNullOrWhiteSpace(updatedVal) && updatedVal.Trim() != "-1") { p.ChildParameters.Parameters[0].Value = updatedVal.Trim(); } Data.StoreData_ExecuteNonQuery(DataBase.Api, CommandType.StoredProcedure, "Master_SaveFenceList", p.ChildParameters.Parameters, p.ChildParameters.TableValuedParameters.ToList() ); } break; } } }); } catch (Exception ex) { } return true; } catch (Exception) { return false; } }
public ScheduleViewModel GetAlertData(ScheduleViewModel svm) { DataTable alertsDt = new DataTable(); try { List<SqlParameter> dbParams = new List<SqlParameter>(); dbParams.Add(new SqlParameter("DeviceId", svm.SelectedDevice)); dbParams.Add(new SqlParameter("AlertType", svm.SelectedAlertType)); alertsDt = Data.GetData(DataBase.Api, System.Data.CommandType.StoredProcedure, "Master_GetDeviceAlert", dbParams.ToArray()); } catch (Exception ex) { } if (alertsDt != null) { switch (svm.SelectedAlertType) { case DeviceAlarmType.PowerCutAlarm: { var alertDatas = new List<object>(); foreach (var aDt in alertsDt.AsEnumerable()) { alertDatas.Add(new AlertBase() { Id = Convert.ToInt32((aDt["Id"] != DBNull.Value ? aDt["Id"] : 0)), Conditions = Tracker.Common.AlertData.DeSerializeCondition(Convert.ToString(aDt["Eval"] != DBNull.Value ? aDt["Eval"] : "")), IsActive = Convert.ToBoolean(aDt["IsActive"] != DBNull.Value ? aDt["IsActive"] : false) }); } svm.AlertDatas = alertDatas; break; } case DeviceAlarmType.SOSAlarm: { var alertDatas = new List<object>(); foreach (var aDt in alertsDt.AsEnumerable()) { alertDatas.Add(new AlertBase() { Id = Convert.ToInt32((aDt["Id"] != DBNull.Value ? aDt["Id"] : 0)), Conditions = Tracker.Common.AlertData.DeSerializeCondition(Convert.ToString(aDt["Eval"] != DBNull.Value ? aDt["Eval"] : "")), IsActive = Convert.ToBoolean(aDt["IsActive"] != DBNull.Value ? aDt["IsActive"] : false) }); } svm.AlertDatas = alertDatas; break; } case DeviceAlarmType.SpeedAlarm: { var alertDatas = new List<object>(); foreach (var aDt in alertsDt.AsEnumerable()) { alertDatas.Add(new AlertBase() { Id = Convert.ToInt32((aDt["Id"] != DBNull.Value ? aDt["Id"] : 0)), Conditions = Tracker.Common.AlertData.DeSerializeCondition(Convert.ToString(aDt["Eval"] != DBNull.Value ? aDt["Eval"] : "")), IsActive = Convert.ToBoolean(aDt["IsActive"] != DBNull.Value ? aDt["IsActive"] : false) }); } svm.AlertDatas = alertDatas; break; } //case DeviceAlarmType.BreakAlarm: // _AlertData = new BreakAlert(); // break; case DeviceAlarmType.VibrationAlarm: { var alertDatas = new List<object>(); foreach (var aDt in alertsDt.AsEnumerable()) { alertDatas.Add(new AlertBase() { Id = Convert.ToInt32((aDt["Id"] != DBNull.Value ? aDt["Id"] : 0)), Conditions = Tracker.Common.AlertData.DeSerializeCondition(Convert.ToString(aDt["Eval"] != DBNull.Value ? aDt["Eval"] : "")), IsActive = Convert.ToBoolean(aDt["IsActive"] != DBNull.Value ? aDt["IsActive"] : false) }); } svm.AlertDatas = alertDatas; break; } case DeviceAlarmType.FenceAlarm: case DeviceAlarmType.FenceInAlarm: case DeviceAlarmType.FenceOutAlarm: { var alertDatas = new List<object>(); foreach (var aDt in alertsDt.AsEnumerable()) { var FenceList = new List<ATFPosition>(); try { var fenceListDt = Data.GetData(DataBase.Api, System.Data.CommandType.StoredProcedure, "Master_GetFenceList", new SqlParameter[] { new SqlParameter("DeviceAlertId", aDt["Id"]) }); FenceList = fenceListDt.AsEnumerable().Select(m => new ATFPosition() { Lat = Convert.ToString(m["Latitude"]), Lang = Convert.ToString(m["Longitude"]), Distance = (float)Convert.ToDouble(m["Distance"]), ListOrder = Convert.ToInt32(m["ListOrder"]) }).ToList(); } catch (Exception ex) { } alertDatas.Add(new AlertBase() { Id = Convert.ToInt32((aDt["Id"] != DBNull.Value ? aDt["Id"] : 0)), Name = Convert.ToString(aDt["Name"]), DescriptionText = Convert.ToString(aDt["DescriptionText"]), Conditions = Tracker.Common.AlertData.DeSerializeCondition(Convert.ToString(aDt["Eval"] != DBNull.Value ? aDt["Eval"] : "")), IsActive = Convert.ToBoolean(aDt["IsActive"] != DBNull.Value ? aDt["IsActive"] : false), FenceList = FenceList ?? new List<ATFPosition>() }); } svm.AlertDatas = alertDatas; } break; case DeviceAlarmType.MovingAlarm: { var alertDatas = new List<object>(); foreach (var aDt in alertsDt.AsEnumerable()) { var _aData = new AlertBase() { Id = Convert.ToInt32((aDt["Id"] != DBNull.Value ? aDt["Id"] : 0)), Conditions = Tracker.Common.AlertData.DeSerializeCondition(Convert.ToString(aDt["Eval"] != DBNull.Value ? aDt["Eval"] : "")), IsActive = Convert.ToBoolean(aDt["IsActive"] != DBNull.Value ? aDt["IsActive"] : false) }; _aData.Conditions.RemoveAll(a => a.Operand.ToLower() == "onacc"); alertDatas.Add(_aData); } svm.AlertDatas = alertDatas; break; } case DeviceAlarmType.AccAlarm: { var alertDatas = new List<object>(); foreach (var aDt in alertsDt.AsEnumerable()) { alertDatas.Add(new AlertBase() { Id = Convert.ToInt32((aDt["Id"] != DBNull.Value ? aDt["Id"] : 0)), Conditions = Tracker.Common.AlertData.DeSerializeCondition(Convert.ToString(aDt["Eval"] != DBNull.Value ? aDt["Eval"] : "")), IsActive = Convert.ToBoolean(aDt["IsActive"] != DBNull.Value ? aDt["IsActive"] : false) }); } svm.AlertDatas = alertDatas; break; } case DeviceAlarmType.StopAlarm: { var alertDatas = new List<object>(); foreach (var aDt in alertsDt.AsEnumerable()) { var _aData = new AlertBase() { Id = Convert.ToInt32((aDt["Id"] != DBNull.Value ? aDt["Id"] : 0)), Conditions = Tracker.Common.AlertData.DeSerializeCondition(Convert.ToString(aDt["Eval"] != DBNull.Value ? aDt["Eval"] : "")), IsActive = Convert.ToBoolean(aDt["IsActive"] != DBNull.Value ? aDt["IsActive"] : false) }; alertDatas.Add(_aData); } svm.AlertDatas = alertDatas; break; } default: break; } } return svm; }
public ActionResult Ac(AcAlert alertModel) { ScheduleViewModel sVM = new ScheduleViewModel(); sVM.SelectedAlertType = DeviceAlarmType.AcAlarm; sVM.AlertDatas = new List<object>(); AlertBase alertData = new AlertBase() { Id = alertModel.Id, IsActive = alertModel.IsActive, Conditions = new List<Tracker.Common.Condition>() { new Tracker.Common.Condition() { Operand = "OnAc", Value = alertModel.IsOnAc == true ? "1" : "0" } } }; sVM.AlertDatas.Add(alertData); if (new AlertData().SaveAlertData(sVM)) { int updateId = 0; if (int.TryParse(sVM.SelectedAlertId, out updateId)) { alertModel.Id = updateId; if (alertModel.Devices != null && alertModel.Devices.Count > 0) { alertModel.Devices.ForEach(d => { try { new AlertData().SaveDevicesForAlert(alertModel.Id, d.DeviceId, !d.Checked); } catch (Exception ex) { } }); } } ViewBag.AlertWriteStatus = "Success"; } else { ViewBag.AlertWriteStatus = "Failed"; } return View(alertModel); }
public ActionResult Stoppage(StoppageAlert alertModel) { { ScheduleViewModel sVM = new ScheduleViewModel(); sVM.SelectedAlertType = DeviceAlarmType.StopAlarm; sVM.AlertDatas = new List<object>(); AlertBase alertData = new AlertBase() { Id = alertModel.Id, Name = alertModel.Name, DescriptionText = alertModel.Description, IsActive = alertModel.IsActive, Conditions = new List<Tracker.Common.Condition>() { new Tracker.Common.Condition() { Operand = "Speed", Operator = "==", Value = "0", Conjunction = Tracker.Common.ConjunctionType.AND }, new Tracker.Common.Condition() { Operand = "Duration", Operator = "<=", Value = alertModel.Duration.ToString() } } }; sVM.AlertDatas.Add(alertData); if (new AlertData().SaveAlertData(sVM)) { int updateId = 0; if (int.TryParse(sVM.SelectedAlertId, out updateId)) { alertModel.Id = updateId; if (alertModel.Devices != null && alertModel.Devices.Count > 0) { alertModel.Devices.ForEach(d => { try { new AlertData().SaveDevicesForAlert(alertModel.Id, d.DeviceId, !d.Checked); } catch (Exception ex) { } }); } } ViewBag.AlertWriteStatus = "Success"; } else { ViewBag.AlertWriteStatus = "Failed"; } return View(alertModel); } }
public ActionResult Stoppage(int Id = 0) { StoppageAlert alertModel = new StoppageAlert(); try { ScheduleViewModel sVM = new ScheduleViewModel(); sVM.SelectedAlertType = DeviceAlarmType.StopAlarm; sVM = new AlertData().GetAlertDetails(sVM, Id); AlertBase alertData = sVM.AlertDatas.FirstOrDefault() as AlertBase; if (alertData == null) { alertData = new AlertBase() { Id = 0, Conditions = new List<Tracker.Common.Condition>(), IsActive = false }; } int Duration = 5; string SpeedComparer = string.Empty; if (alertData.Conditions.Where(m => m.Operand == "Duration").FirstOrDefault() != null) { Duration = Convert.ToInt32(alertData.Conditions.Where(m => m.Operand == "Duration").FirstOrDefault().Value); } alertModel = new StoppageAlert() { Id = alertData.Id, Name = alertData.Name, Description = alertData.DescriptionText, IsActive = alertData.IsActive, Duration = Duration, Devices = new List<DeviceDetailSelection>() }; List<DeviceDetailSelection> availableDevices = new AlertData().GetAvailableDevices(); List<string> activeDevices = new AlertData().GetDevicesForAlert(alertData.Id); if (availableDevices != null && availableDevices.Count > 0) { alertModel.Devices = availableDevices.Select(m => new DeviceDetailSelection { DeviceId = m.DeviceId, VehicleId = m.VehicleId, Checked = activeDevices.Contains(m.DeviceId) }).ToList(); } } catch (Exception ex) { } return View(alertModel); }
public ActionResult Fence(FenceAlert alertModel) { { ScheduleViewModel sVM = new ScheduleViewModel(); //sVM.SelectedAlertType = DeviceAlarmType.FenceAlarm; sVM.SelectedAlertType = alertModel.FenceType; sVM.AlertDatas = new List<object>(); AlertBase alertData = new AlertBase() { Id = alertModel.Id, Name = alertModel.Name, DescriptionText = alertModel.Description, IsActive = alertModel.IsActive, FenceListStr = alertModel.PointsStr }; sVM.AlertDatas.Add(alertData); if (new AlertData().SaveAlertData(sVM)) { int updateId = 0; if (int.TryParse(sVM.SelectedAlertId, out updateId)) { alertModel.Id = updateId; try { alertModel.Points = (sVM.AlertDatas[0] as AlertBase).FenceList; } catch (Exception aBEx) { } if (alertModel.Devices != null && alertModel.Devices.Count > 0) { alertModel.Devices.ForEach(d => { try { new AlertData().SaveDevicesForAlert(alertModel.Id, d.DeviceId, !d.Checked); } catch (Exception ex) { } }); } } ViewBag.AlertWriteStatus = "Success"; } else { ViewBag.AlertWriteStatus = "Failed"; } return View(alertModel); } }
public ActionResult Fence(int Id = 0) { FenceAlert alertModel = new FenceAlert(); try { ScheduleViewModel sVM = new ScheduleViewModel(); sVM.SelectedAlertType = DeviceAlarmType.FenceAlarm; sVM = new AlertData().GetAlertDetails(sVM, Id); AlertBase alertData = sVM.AlertDatas.FirstOrDefault() as AlertBase; if (alertData == null) { alertData = new AlertBase() { Id = 0, Conditions = new List<Tracker.Common.Condition>(), IsActive = false }; } alertModel = new FenceAlert() { Id = alertData.Id, Name = alertData.Name, Description = alertData.DescriptionText, IsActive = alertData.IsActive, FenceType = (Id == 0) ? DeviceAlarmType.FenceInAlarm : sVM.SelectedAlertType, Points = alertData.FenceList, Devices = new List<DeviceDetailSelection>() }; List<DeviceDetailSelection> availableDevices = new AlertData().GetAvailableDevices(); List<string> activeDevices = new AlertData().GetDevicesForAlert(alertData.Id); if (availableDevices != null && availableDevices.Count > 0) { alertModel.Devices = availableDevices.Select(m => new DeviceDetailSelection { DeviceId = m.DeviceId, VehicleId = m.VehicleId, Checked = activeDevices.Contains(m.DeviceId) }).ToList(); } } catch (Exception ex) { } return View(alertModel); }