SafeDispatch/SubscriberAndUserManager/controlRegistration.cs

1225 lines
53 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SafeMobileLib;
using RegLibDLL;
using System.Net.Sockets;
using System.Net;
using Telerik.WinControls.UI;
using System.Collections;
namespace SubscriberAndUserManager
{
public partial class controlRegistration : UserControl
{
DBregistrationManager regManager;
int totalGateways = 0;
int remainingGateways = 0;
int totalGPS = 0;
int remainingGPS = 0;
int totalSMS = 0;
int remainingSMS = 0;
int totalTicketing = 0;
int remainingTicketing = 0;
int totalReports = 0;
int remainingReports = 0;
int totalVoice = 0;
int remainingVoice = 0;
int totalRecordings = 0;
int remainingRecordings = 0;
int totalZones = 0;
int remainingZones = 0;
int totalTelemetry = 0;
int remainingTelemetry = 0;
int totalGoogle = 0;
int remainingGoogle = 0;
int totalUS = 0;
int remainingUS = 0;
int totalOpenStreetMap = 0;
int remainingOpenStreetMap = 0;
int totalArcgis = 0;
int remainingArcgis = 0;
GatewayRegistration selectedGatewayRegistration;
SDRegistration selectedSDRegistration;
List<GatewayRegistration> gatewayRegs;
List<SDRegistration> safeDispatchRegs;
private void setLanguage()
{
//gbGateways.Text = MainForm.returnLNGString("gateway");
gbSafeDispatches.Text = MainForm.returnLNGString("SD");
if (MainForm.radioType == RADIOTYPE.HYT) gbSafeDispatches.Text = MainForm.returnLNGString("SH");
else if (MainForm.radioType == RADIOTYPE.HARRIS) gbSafeDispatches.Text = MainForm.returnLNGString("VS");
else if (MainForm.radioType == RADIOTYPE.ATLAS) gbSafeDispatches.Text = MainForm.returnLNGString("AT");
else if (MainForm.radioType == RADIOTYPE.SIMOCO) gbSafeDispatches.Text = MainForm.returnLNGString("SI");
else if (MainForm.radioType == RADIOTYPE.EXCERA) gbSafeDispatches.Text = MainForm.returnLNGString("EX");
else if (MainForm.radioType == RADIOTYPE.LINX) gbSafeDispatches.Text = "LINX Dispatch";
else if (MainForm.radioType == RADIOTYPE.LINXB) gbSafeDispatches.Text = "LINX Dispatch";
//radLabel15.Text = MainForm.returnLNGString("avb");
//btnNewGateway.Text = MainForm.returnLNGString("newname");
//btnUpdateGateway.Text = MainForm.returnLNGString("update");
//btnDeleteGateway.Text = MainForm.returnLNGString("del");
btnDeleteSafeDispatch.Text = MainForm.returnLNGString("del");
btnNewSafeDispatch.Text = MainForm.returnLNGString("newname");
btnUpdateSafeDispatch.Text = MainForm.returnLNGString("update");
radLabel7.Text = MainForm.returnLNGString("remen");
chbGPS.Text = MainForm.returnLNGString("gps");
chbSMS.Text = MainForm.returnLNGString("sms");
chbTicketing.Text = MainForm.returnLNGString("jobTicketing");
chbTelemetry.Text = MainForm.returnLNGString("telem");
chbVoice.Text = MainForm.returnLNGString("voice");
chbRecordings.Text = MainForm.returnLNGString("recordings");
chbZones.Text = MainForm.returnLNGString("geofenc");
chbReports.Text = MainForm.returnLNGString("reports");
gvSafeDispatches.Columns["ip"].HeaderText = MainForm.returnLNGString("ip");
gvSafeDispatches.Columns["gps"].HeaderText = MainForm.returnLNGString("gps");
gvSafeDispatches.Columns["sms"].HeaderText = MainForm.returnLNGString("sms");
gvSafeDispatches.Columns["ticketing"].HeaderText = MainForm.returnLNGString("jobTicketing");
gvSafeDispatches.Columns["reports"].HeaderText = MainForm.returnLNGString("reports");
gvSafeDispatches.Columns["voice"].HeaderText = MainForm.returnLNGString("voice");
gvSafeDispatches.Columns["recordings"].HeaderText = MainForm.returnLNGString("recordings");
gvSafeDispatches.Columns["zones"].HeaderText = MainForm.returnLNGString("geofenc");
gvSafeDispatches.Columns["telemetry"].HeaderText = MainForm.returnLNGString("telem");
gvSafeDispatches.Columns["MapTypeS"].HeaderText = MainForm.returnLNGString("mapType");
}
public controlRegistration(DBregistrationManager DBreg, Int32 gateways, Int32 GPS, Int32 SMS, Int32 TICKETING, Int32 reports, Int32 voice,
Int32 recordings, Int32 zones, Int32 telemetry, Int32 Google, Int32 USMap, Int32 OpenStreetMap, Int32 Arcgis)
{
InitializeComponent();
setLanguage();
regManager = DBreg;
totalGateways = gateways;
totalGPS = GPS;
totalSMS = SMS;
totalTicketing = TICKETING;
totalReports = reports;
totalVoice = voice;
totalRecordings = recordings;
totalZones = zones;
totalTelemetry = telemetry;
totalArcgis = Arcgis;
totalOpenStreetMap = OpenStreetMap;
totalUS = USMap;
totalGoogle = Google;
computeRemaining();
showRegistrations();
try
{
//if (regManager.gatewaysCount() == 0)
//{
// tbGWIP.Text = "127.0.0.1";
//}
if (regManager.safeDispatchesCount() == 0)
{
tbSafeDispatchIP.Text = "127.0.0.1";
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
if ((MainForm.radioType != RADIOTYPE.REPEATER_TRBO) && (MainForm.radioType != RADIOTYPE.MOTO))
{
chbTicketing.Visible = false;
chbTicketing.Checked = false;
tbTicketing.Visible = false;
gvSafeDispatches.Columns["ticketing"].IsVisible = false;
this.tbSafeDispatchIP.Location = new System.Drawing.Point(38, 38);
this.radLabel7.Location = new System.Drawing.Point(38, 71);
this.chbTelemetry.Location = new System.Drawing.Point(590, 40);
this.chbZones.Location = new System.Drawing.Point(490, 40);
this.chbRecordings.Location = new System.Drawing.Point(410, 40);
this.chbVoice.Location = new System.Drawing.Point(354, 40);
this.chbReports.Location = new System.Drawing.Point(288, 40);
this.chbSMS.Location = new System.Drawing.Point(225, 40);
this.chbGPS.Location = new System.Drawing.Point(165, 40);
this.tbTelemetry.Location = new System.Drawing.Point(590, 70);
this.tbZones.Location = new System.Drawing.Point(490, 70);
this.tbRecordings.Location = new System.Drawing.Point(412, 70);
this.tbVoice.Location = new System.Drawing.Point(354, 70);
this.tbReports.Location = new System.Drawing.Point(288, 70);
this.tbSMS.Location = new System.Drawing.Point(225, 70);
this.tbGPS.Location = new System.Drawing.Point(165, 70);
this.tbMaps.Location = new System.Drawing.Point(718, 70);
}
if ((MainForm.radioType == RADIOTYPE.TETRA))
{
chbVoice.Visible = true;
chbRecordings.Visible = true;
chbTelemetry.Visible = false;
tbVoice.Visible = true;
tbRecordings.Visible = true;
tbTelemetry.Visible = false;
gvSafeDispatches.Columns["voice"].IsVisible = true;
gvSafeDispatches.Columns["recordings"].IsVisible = true;
gvSafeDispatches.Columns["telemetry"].IsVisible = false;
chbGPS.Location = new Point(chbGPS.Location.X, chbGPS.Location.Y);
tbGPS.Location = new Point(tbGPS.Location.X, tbGPS.Location.Y);
chbSMS.Location = new Point(chbSMS.Location.X + 20, chbSMS.Location.Y);
tbSMS.Location = new Point(tbSMS.Location.X + 20, tbSMS.Location.Y);
chbReports.Location = new Point(chbReports.Location.X + 40, chbReports.Location.Y);
tbReports.Location = new Point(tbReports.Location.X + 40, tbReports.Location.Y);
this.chbVoice.Location = new Point(chbVoice.Location.X + 60, chbVoice.Location.Y);
this.tbVoice.Location = new Point(tbVoice.Location.X + 60, tbVoice.Location.Y);
this.chbRecordings.Location = new Point(chbRecordings.Location.X + 80, chbRecordings.Location.Y);
this.tbRecordings.Location = new Point(tbRecordings.Location.X + 80, tbRecordings.Location.Y);
chbZones.Location = new Point(chbZones.Location.X + 100, chbZones.Location.Y);
tbZones.Location = new Point(tbZones.Location.X + 100, tbZones.Location.Y);
cbMapType.Location = new Point(tbMaps.Location.X, cbMapType.Location.Y);
}
if ((MainForm.radioType == RADIOTYPE.HARRIS) || (MainForm.radioType == RADIOTYPE.ATLAS))
{
//radLabel15.ForeColor = MainForm.HarTextColor;
radLabel7.ForeColor = MainForm.HarTextColor;
//gbGateways.GroupBoxElement.ForeColor = MainForm.HarTextColor;
gbSafeDispatches.GroupBoxElement.ForeColor = MainForm.HarTextColor;
chbGPS.ButtonElement.TextElement.ForeColor = MainForm.HarTextColor;
chbReports.ButtonElement.TextElement.ForeColor = MainForm.HarTextColor;
chbSMS.ButtonElement.TextElement.ForeColor = MainForm.HarTextColor;
chbTicketing.ButtonElement.TextElement.ForeColor = MainForm.HarTextColor;
chbTelemetry.ButtonElement.TextElement.ForeColor = MainForm.HarTextColor;
chbVoice.ButtonElement.TextElement.ForeColor = MainForm.HarTextColor;
chbZones.ButtonElement.TextElement.ForeColor = MainForm.HarTextColor;
}
if ((MainForm.radioType == RADIOTYPE.ATLAS) || (MainForm.radioType == RADIOTYPE.LISF) || (MainForm.radioType == RADIOTYPE.CONECTPLUS))
{
chbVoice.Visible = false;
chbRecordings.Visible = false;
chbTelemetry.Visible = false;
tbVoice.Visible = false;
tbRecordings.Visible = false;
tbTelemetry.Visible = false;
gvSafeDispatches.Columns["voice"].IsVisible = false;
gvSafeDispatches.Columns["recordings"].IsVisible = false;
gvSafeDispatches.Columns["telemetry"].IsVisible = false;
chbGPS.Location = new Point(chbGPS.Location.X + 10, chbGPS.Location.Y);
tbGPS.Location = new Point(tbGPS.Location.X + 10, tbGPS.Location.Y);
chbSMS.Location = new Point(chbSMS.Location.X + 40, chbSMS.Location.Y);
tbSMS.Location = new Point(tbSMS.Location.X + 40, tbSMS.Location.Y);
chbReports.Location = new Point(chbReports.Location.X + 70, chbReports.Location.Y);
tbReports.Location = new Point(tbReports.Location.X + 70, tbReports.Location.Y);
chbZones.Location = new Point(chbZones.Location.X + 40, chbZones.Location.Y);
tbZones.Location = new Point(tbZones.Location.X + 40, tbZones.Location.Y);
cbMapType.Location = new Point(tbMaps.Location.X, cbMapType.Location.Y);
}
if (MainForm.radioType == RADIOTYPE.SIMOCO || MainForm.radioType == RADIOTYPE.EXCERA ||
MainForm.radioType == RADIOTYPE.LINX || MainForm.radioType == RADIOTYPE.LINXB)
{
//decide after we see all idea of desing
chbTelemetry.Visible = false;
tbTelemetry.Visible = false;
gvSafeDispatches.Columns["telemetry"].IsVisible = false;
chbGPS.Location = new Point(chbGPS.Location.X + 10, chbGPS.Location.Y);
tbGPS.Location = new Point(tbGPS.Location.X + 10, tbGPS.Location.Y);
chbSMS.Location = new Point(chbSMS.Location.X + 20, chbSMS.Location.Y);
tbSMS.Location = new Point(tbSMS.Location.X + 20, tbSMS.Location.Y);
chbReports.Location = new Point(chbReports.Location.X + 30, chbReports.Location.Y);
tbReports.Location = new Point(tbReports.Location.X + 30, tbReports.Location.Y);
chbVoice.Location = new Point(chbZones.Location.X - 15, chbZones.Location.Y);
tbVoice.Location = new Point(tbZones.Location.X - 15, tbZones.Location.Y);
chbRecordings.Location = new Point(chbZones.Location.X + 55, chbZones.Location.Y);
tbRecordings.Location = new Point(tbZones.Location.X + 55, tbZones.Location.Y);
chbZones.Location = new Point(chbZones.Location.X + 150, chbZones.Location.Y);
tbZones.Location = new Point(tbZones.Location.X + 150, tbZones.Location.Y);
tbMaps.Location = new Point(tbZones.Location.X + 160, tbZones.Location.Y);
}
//checkCheckboxes();
//chbGPS.Enabled = chbGPS.Checked || tbGPS.Text != "0";
//chbSMS.Enabled = chbSMS.Checked || tbSMS.Text != "0";
//chbTicketing.Enabled = chbTicketing.Checked || tbTicketing.Text != "0";
//chbReports.Enabled = chbReports.Checked || tbReports.Text != "0";
//chbVoice.Enabled = chbVoice.Checked || tbVoice.Text != "0";
//chbZones.Enabled = chbZones.Checked || tbZones.Text != "0";
//chbTelemetry.Enabled = chbTelemetry.Checked || tbTelemetry.Text != "0";
btnNewSafeDispatch.Enabled = !(tbGPS.Text == "0" && tbSMS.Text == "0" && tbTicketing.Text == "0"
&& tbReports.Text == "0" && tbVoice.Text == "0" && tbRecordings.Text == "0" && tbZones.Text == "0" && tbTelemetry.Text == "0");
// set the row height
//gvGateways.TableElement.RowHeight = 43;
//this.gvGateways.EnableAlternatingRowColor = true;
//this.gvGateways.TableElement.GridViewElement.TableElement.AlternatingRowColor = Color.LightYellow;
// remove border for grid
//this.gvGateways.GridViewElement.DrawBorder = false;
// set the row height
gvSafeDispatches.TableElement.RowHeight = 43;
this.gvSafeDispatches.EnableAlternatingRowColor = true;
this.gvSafeDispatches.TableElement.GridViewElement.TableElement.AlternatingRowColor = Color.LightYellow;
// remove border for grid
this.gvSafeDispatches.GridViewElement.DrawBorder = false;
}
private void computeRemaining()
{
try { gatewayRegs = regManager.getAllGateways(); }
catch (Exception ex) { Console.WriteLine(ex.ToString()); CustomMessageBox.Show(CustomMessageBoxType.exclamation, MainForm.returnLNGString("dberr"), MainForm.returnLNGString("err")); return; }
remainingGateways = totalGateways - regManager.gatewaysCount();
//gvGateways.DataSource = gatewayRegs;
//gvGateways.Columns[0].HeaderText = MainForm.returnLNGString("ip");
//if (regManager.gatewaysCount() > 0)
//{
// selectGatewayRow(gatewayRegs[0].ip);
// tbGWIP.Text = gvGateways.Rows[0].Cells[0].Value.ToString();
//}
//if (remainingGateways == 0)
//{
// btnNewGateway.Enabled = false;
//}
safeDispatchRegs = regManager.getAllSafeDispatches();
int usedGPS = 0;
int usedSMS = 0;
int usedTicketing = 0;
int usedReports = 0;
int usedVoice = 0;
int usedRecordings = 0;
int usedZones = 0;
int usedTelemetry = 0;
int usedGoogle = 0;
int usedMapUS = 0;
int usedMapEu = 0;
int usedArcgis = 0;
for (int i = 0; i < safeDispatchRegs.Count; i++)
{
if (safeDispatchRegs[i].gps)
{
usedGPS++;
}
if (safeDispatchRegs[i].reports)
{
usedReports++;
}
if (safeDispatchRegs[i].sms)
{
usedSMS++;
}
if (safeDispatchRegs[i].ticketing)
{
usedTicketing++;
}
if (safeDispatchRegs[i].voice)
{
usedVoice++;
}
if (safeDispatchRegs[i].recordings)
{
usedRecordings++;
}
if (safeDispatchRegs[i].zones)
{
usedZones++;
}
if (safeDispatchRegs[i].telemetry)
{
usedTelemetry++;
}
switch (safeDispatchRegs[i].map_type)
{
case 1: usedGoogle++;
break;
case 2: usedMapUS++;
break;
case 3: usedMapEu++;
break;
case 4: usedArcgis++;
break;
}
}
remainingGPS = totalGPS - usedGPS;
remainingReports = totalReports - usedReports;
remainingSMS = totalSMS - usedSMS;
remainingTicketing = totalTicketing - usedTicketing;
remainingVoice = totalVoice - usedVoice;
remainingRecordings = totalRecordings - usedRecordings;
remainingZones = totalZones - usedZones;
remainingTelemetry = totalTelemetry - usedTelemetry;
remainingArcgis = totalArcgis - usedArcgis;
remainingOpenStreetMap = totalOpenStreetMap - usedMapEu;
remainingUS = totalUS - usedMapUS;
remainingGoogle = totalGoogle - usedGoogle;
gvSafeDispatches.DataSource = safeDispatchRegs;
#region broadcast SD for dispatcher IP changed
//broadcast SD for dispatcher IP changed
string ipList = string.Join("/", safeDispatchRegs.Select(x => x.ip));
string cmd = $"#0.0#475#{ipList}";
// calc length and insert it at the begining
Int32 length = cmd.Length + 1;
length += length.ToString().Length;
cmd = $"#{length}{cmd}";
MainForm.BroadcastRegistrationSD(cmd);
#endregion
//gvSafeDispatches.Columns[5].HeaderText = "Geo-Fences";
if (regManager.safeDispatchesCount() > 0)
{
selectSafeDispatchRow(safeDispatchRegs[0]);
tbSafeDispatchIP.Text = gvSafeDispatches.Rows[0].Cells[0].Value.ToString();
}
else
{
btnNewSafeDispatch.Enabled = false;
btnUpdateSafeDispatch.Enabled = false;
btnDeleteSafeDispatch.Enabled = false;
}
}
private bool SearchIfAlreadyExistsIP(string ip)
{
for (int i = 0; i < gvSafeDispatches.RowCount; i++)
{
if (gvSafeDispatches.Rows[i].Cells[0].Value.ToString().Equals(ip))
return true;
}
return false;
}
private void showRegistrations()
{
tbGPS.Text = remainingGPS.ToString();
tbSMS.Text = remainingSMS.ToString();
tbTicketing.Text = remainingTicketing.ToString();
tbReports.Text = remainingReports.ToString();
tbVoice.Text = remainingVoice.ToString();
tbRecordings.Text = remainingRecordings.ToString();
tbZones.Text = remainingZones.ToString();
tbTelemetry.Text = remainingTelemetry.ToString();
//tbGateways.Text = remainingGateways.ToString();
switch (cbMapType.SelectedIndex)
{
case 0: tbMaps.Text = remainingGoogle.ToString();
break;
case 1: tbMaps.Text = remainingArcgis.ToString();
break;
case 2:
tbMaps.Text = remainingOpenStreetMap.ToString();
break;
//case 3: tbMaps.Text = remainingArcgis.ToString();
// break;
}
}
private Boolean gwListContainsIP(String ip)
{
Boolean toReturn = false;
if (gatewayRegs.Count == 0)
{
return false;
}
for (int i = 0; i < gatewayRegs.Count; i++)
{
if (ip.Equals(gatewayRegs[i].ip))
{
return true;
}
}
return toReturn;
}
private Boolean sdListContainsIP(String ip)
{
Boolean toReturn = false;
if (safeDispatchRegs.Count == 0)
{
return false;
}
for (int i = 0; i < safeDispatchRegs.Count; i++)
{
if (ip.Equals(safeDispatchRegs[i].ip))
{
return true;
}
}
return toReturn;
}
//private void tbIP_TextChanged(object sender, EventArgs e)
//{
// if (gwListContainsIP(tbGWIP.Text))
// {
// selectGatewayRow(tbGWIP.Text);
// btnNewGateway.Enabled = false;
// btnUpdateGateway.Enabled = false;
// btnDeleteGateway.Enabled = true;
// }
// else
// {
// if (remainingGateways > 0)
// {
// btnNewGateway.Enabled = true;
// }
// if (regManager.gatewaysCount() > 0)
// {
// btnUpdateGateway.Enabled = true;
// }
// else
// {
// btnUpdateGateway.Enabled = false;
// }
// btnDeleteGateway.Enabled = false;
// }
//}
//private void gvGateways_CellClick(object sender, Telerik.WinControls.UI.GridViewCellEventArgs e)
//{
// if (e.RowIndex >= 0)
// {
// selectedGatewayRegistration = gatewayRegs[e.RowIndex];
// tbGWIP.Text = gatewayRegs[e.RowIndex].ip;
// }
//}
private void gvSafeDispatches_CellClick(object sender, Telerik.WinControls.UI.GridViewCellEventArgs e)
{
if (e.RowIndex >= 0)
{
selectedSDRegistration = safeDispatchRegs[e.RowIndex];
tbSafeDispatchIP.Text = safeDispatchRegs[e.RowIndex].ip;
}
}
private void tbSafeDispatchIP_TextChanged(object sender, EventArgs e)
{
if (sdListContainsIP(tbSafeDispatchIP.Text))
{
btnNewSafeDispatch.Enabled = false;
btnUpdateSafeDispatch.Enabled = true;
btnDeleteSafeDispatch.Enabled = true;
chbGPS.Checked = selectedSDRegistration.gps;
chbSMS.Checked = selectedSDRegistration.sms;
chbTicketing.Checked = selectedSDRegistration.ticketing;
chbReports.Checked = selectedSDRegistration.reports;
chbVoice.Checked = selectedSDRegistration.voice;
chbRecordings.Checked = selectedSDRegistration.recordings;
chbZones.Checked = selectedSDRegistration.zones;
chbTelemetry.Checked = selectedSDRegistration.telemetry;
if (selectedSDRegistration.map_type == 1) cbMapType.SelectedIndex = 0;
else if (selectedSDRegistration.map_type == 4) cbMapType.SelectedIndex = 1;
else if (selectedSDRegistration.map_type == 3) cbMapType.SelectedIndex = 2;
//cbMapType.SelectedIndex = (selectedSDRegistration.map_type - 1);
else cbMapType.SelectedIndex = 0;
}
else
{
btnNewSafeDispatch.Enabled = true;
btnUpdateSafeDispatch.Enabled = true;
btnDeleteSafeDispatch.Enabled = false;
}
btnNewSafeDispatch.Enabled = !(tbGPS.Text == "0" && tbSMS.Text == "0" && tbTicketing.Text == "0"
&& tbReports.Text == "0" && tbVoice.Text == "0" && tbRecordings.Text == "0" && tbZones.Text =="0" && tbTelemetry.Text == "0");
}
//private void selectGatewayRow(String ip)
//{
// for (int i = 0; i < gvGateways.Rows.Count(); i++)
// {
// if (ip.Equals(gvGateways.Rows[i].Cells[0].Value))
// {
// gvGateways.CurrentRow = gvGateways.Rows[i];
// selectedGatewayRegistration = gatewayRegs[i];
// break;
// }
// }
//}
private void selectSafeDispatchRow(SDRegistration sdReg)
{
for (int i = 0; i < gvSafeDispatches.Rows.Count(); i++)
{
if (sdReg.ip.Equals(gvSafeDispatches.Rows[i].Cells[0].Value))
{
gvSafeDispatches.CurrentRow = gvSafeDispatches.Rows[i];
selectedSDRegistration = safeDispatchRegs[i];
break;
}
}
}
//private void btnNewGateway_Click(object sender, EventArgs e)
//{
// if (MainForm.TestIP(tbGWIP.Text))
// {
// int status = regManager.insertGatewayRegistration(tbGWIP.Text);
// if (status != -1)
// {
// btnNewGateway.Enabled = false;
// btnUpdateGateway.Enabled = false;
// remainingGateways--;
// gatewayRegs = regManager.getAllGateways();
// gvGateways.DataSource = gatewayRegs;
// gvGateways.Columns[0].HeaderText = MainForm.returnLNGString("ip");
// selectGatewayRow(tbGWIP.Text);
// if (btnDeleteGateway.Enabled == false)
// {
// btnDeleteGateway.Enabled = true;
// }
// tbGateways.Text = remainingGateways.ToString();
// if (remainingGateways == 0)
// {
// btnNewGateway.Enabled = false;
// }
// if (OnAppServerRefreshRequest != null)
// OnAppServerRefreshRequest();
// }
// }
// else CustomMessageBox.Show(CustomMessageBoxType.exclamation, MainForm.returnLNGString("errorIPFormat"), MainForm.returnLNGString("err"));
// tbGWIP.Focus();
//}
//private void btnUpdateGateway_Click(object sender, EventArgs e)
//{
// if (MainForm.TestIP(tbGWIP.Text))
// {
// btnNewGateway.Enabled = false;
// btnUpdateGateway.Enabled = false;
// btnDeleteGateway.Enabled = true;
// regManager.updateGatewayIP(selectedGatewayRegistration.ip, tbGWIP.Text);
// gatewayRegs = regManager.getAllGateways();
// gvGateways.DataSource = gatewayRegs;
// gvGateways.Columns[0].HeaderText = MainForm.returnLNGString("ip");
// selectGatewayRow(tbGWIP.Text);
// if (OnAppServerRefreshRequest != null)
// OnAppServerRefreshRequest();
// }
// else CustomMessageBox.Show(CustomMessageBoxType.exclamation, MainForm.returnLNGString("errorIPFormat"), MainForm.returnLNGString("err"));
// tbGWIP.Focus();
//}
//private void btnDeleteGateway_Click(object sender, EventArgs e)
//{
// regManager.removeGatewayRegistration(tbGWIP.Text);
// gatewayRegs = regManager.getAllGateways();
// gvGateways.DataSource = gatewayRegs;
// gvGateways.Columns[0].HeaderText = MainForm.returnLNGString("ip");
// remainingGateways++;
// tbGateways.Text = remainingGateways.ToString();
// if (remainingGateways == totalGateways)
// {
// btnNewGateway.Enabled = true;
// btnUpdateGateway.Enabled = false;
// btnDeleteGateway.Enabled = false;
// }
// else
// {
// gvGateways.CurrentRow = gvGateways.Rows[0];
// tbGWIP.Text = gvGateways.Rows[0].Cells[0].Value.ToString();
// if (remainingGateways == 1)
// {
// btnNewGateway.Enabled = true;
// }
// }
// if (OnAppServerRefreshRequest != null)
// OnAppServerRefreshRequest();
// tbGWIP.Focus();
//}
private Boolean checkNewSDValidity()
{
if (SearchIfAlreadyExistsIP(tbSafeDispatchIP.Text))
{
CustomMessageBox.Show(CustomMessageBoxType.exclamation, MainForm.returnLNGString("ipAlreadyExists"), MainForm.returnLNGString("warning"));
return false;
}
if (chbGPS.Checked && (remainingGPS == 0))
{
CustomMessageBox.Show(CustomMessageBoxType.exclamation, MainForm.returnLNGString("noGPSremaining"), MainForm.returnLNGString("err"));
return false;
}
if (chbSMS.Checked && (remainingSMS == 0))
{
CustomMessageBox.Show(CustomMessageBoxType.exclamation, MainForm.returnLNGString("noSMSremaining"), MainForm.returnLNGString("err"));
return false;
}
if (chbTicketing.Checked && (remainingTicketing == 0))
{
CustomMessageBox.Show(CustomMessageBoxType.exclamation, MainForm.returnLNGString("noTICKETSremaining"), MainForm.returnLNGString("err"));
return false;
}
if (chbReports.Checked && (remainingReports == 0))
{
CustomMessageBox.Show(CustomMessageBoxType.exclamation, MainForm.returnLNGString("noREPORTSremaining"), MainForm.returnLNGString("err"));
return false;
}
if ((MainForm.radioType != RADIOTYPE.ATLAS) && (MainForm.radioType != RADIOTYPE.CONECTPLUS))
{
if (chbVoice.Checked && (remainingVoice == 0))
{
CustomMessageBox.Show(CustomMessageBoxType.exclamation, MainForm.returnLNGString("noVOICEremaining"), MainForm.returnLNGString("err"));
return false;
}
if(chbRecordings.Checked && (remainingRecordings == 0))
{
CustomMessageBox.Show(CustomMessageBoxType.exclamation, MainForm.returnLNGString("noRECORDINGSremaining"), MainForm.returnLNGString("err"));
return false;
}
}
if (chbZones.Checked && (remainingZones == 0))
{
CustomMessageBox.Show(CustomMessageBoxType.exclamation, MainForm.returnLNGString("noGEOFENCESremaining"), MainForm.returnLNGString("err"));
return false;
}
if ((MainForm.radioType != RADIOTYPE.ATLAS) && (MainForm.radioType != RADIOTYPE.TETRA) && (MainForm.radioType != RADIOTYPE.CONECTPLUS))
{
if (chbTelemetry.Checked && (remainingTelemetry == 0))
{
CustomMessageBox.Show(CustomMessageBoxType.exclamation, MainForm.returnLNGString("noTELEMETRYremaining"), MainForm.returnLNGString("err"));
return false;
}
}
if ((cbMapType.SelectedIndex == 0) && (remainingGoogle == 0))
{
CustomMessageBox.Show(CustomMessageBoxType.exclamation, MainForm.returnLNGString("noMAPremaining"), MainForm.returnLNGString("err"));
return false;
}
if ((cbMapType.SelectedIndex == 1) && (remainingArcgis == 0))
{
CustomMessageBox.Show(CustomMessageBoxType.exclamation, MainForm.returnLNGString("noMAPremaining"), MainForm.returnLNGString("err"));
return false;
}
if ((cbMapType.SelectedIndex == 2) && (remainingOpenStreetMap == 0))
{
CustomMessageBox.Show(CustomMessageBoxType.exclamation, MainForm.returnLNGString("noMAPremaining"), MainForm.returnLNGString("err"));
return false;
}
//if ((cbMapType.SelectedIndex == 3) && (remainingArcgis == 0))
//{
// return false;
//}
return true;
}
private Boolean checkNewSDValidityUPDATE()
{
if (!selectedSDRegistration.gps && chbGPS.Checked && (remainingGPS == 0))
{
CustomMessageBox.Show(CustomMessageBoxType.exclamation, MainForm.returnLNGString("noGPSremaining"), MainForm.returnLNGString("err"));
return false;
}
if (!selectedSDRegistration.sms && chbSMS.Checked && (remainingSMS == 0))
{
CustomMessageBox.Show(CustomMessageBoxType.exclamation, MainForm.returnLNGString("noSMSremaining"), MainForm.returnLNGString("err"));
return false;
}
if (!selectedSDRegistration.ticketing && chbTicketing.Checked && (remainingTicketing == 0))
{
CustomMessageBox.Show(CustomMessageBoxType.exclamation, MainForm.returnLNGString("noTICKETSremaining"), MainForm.returnLNGString("err"));
return false;
}
if (!selectedSDRegistration.reports && chbReports.Checked && (remainingReports == 0))
{
CustomMessageBox.Show(CustomMessageBoxType.exclamation, MainForm.returnLNGString("noREPORTSremaining"), MainForm.returnLNGString("err"));
return false;
}
if ((MainForm.radioType != RADIOTYPE.ATLAS) && (MainForm.radioType != RADIOTYPE.CONECTPLUS))
{
if (!selectedSDRegistration.voice && chbVoice.Checked && (remainingVoice == 0))
{
CustomMessageBox.Show(CustomMessageBoxType.exclamation, MainForm.returnLNGString("noVOICEremaining"), MainForm.returnLNGString("err"));
return false;
}
if (!selectedSDRegistration.recordings && chbRecordings.Checked && (remainingRecordings == 0))
{
CustomMessageBox.Show(CustomMessageBoxType.exclamation, MainForm.returnLNGString("noRECORDINGSremaining"), MainForm.returnLNGString("err"));
return false;
}
}
if (!selectedSDRegistration.zones && chbZones.Checked && (remainingZones == 0))
{
CustomMessageBox.Show(CustomMessageBoxType.exclamation, MainForm.returnLNGString("noGEOFENCESremaining"), MainForm.returnLNGString("err"));
return false;
}
if ((MainForm.radioType != RADIOTYPE.ATLAS) && (MainForm.radioType != RADIOTYPE.TETRA) && (MainForm.radioType != RADIOTYPE.CONECTPLUS))
{
if (!selectedSDRegistration.telemetry && chbTelemetry.Checked && (remainingTelemetry == 0))
{
CustomMessageBox.Show(CustomMessageBoxType.exclamation, MainForm.returnLNGString("noTELEMETRYremaining"), MainForm.returnLNGString("err"));
return false;
}
}
if ((selectedSDRegistration.map_type - 1) != cbMapType.SelectedIndex)
{
switch (cbMapType.SelectedIndex)
{
case 0:
if (remainingGoogle == 0)
{
CustomMessageBox.Show(CustomMessageBoxType.exclamation, MainForm.returnLNGString("noMAPremaining"), MainForm.returnLNGString("err"));
return false;
}
break;
case 1:
if (remainingArcgis == 0)
{
CustomMessageBox.Show(CustomMessageBoxType.exclamation, MainForm.returnLNGString("noMAPremaining"), MainForm.returnLNGString("err"));
return false;
}
break;
case 2:
if (remainingOpenStreetMap == 0)
{
CustomMessageBox.Show(CustomMessageBoxType.exclamation, MainForm.returnLNGString("noMAPremaining"), MainForm.returnLNGString("err"));
return false;
}
break;
//case 3:
// if (remainingArcgis == 0) return false;
// break;
}
}
return true;
}
private void btnNewSafeDispatch_Click(object sender, EventArgs e)
{
if (MainForm.TestIP(tbSafeDispatchIP.Text))
{
if (!checkNewSDValidity())
{
return;
}
SDRegistration sdRegObj = new SDRegistration();
sdRegObj.ip = tbSafeDispatchIP.Text;
sdRegObj.gps = chbGPS.Checked;
sdRegObj.sms = chbSMS.Checked;
sdRegObj.ticketing = chbTicketing.Checked;
sdRegObj.reports = chbReports.Checked;
sdRegObj.voice = chbVoice.Checked;
sdRegObj.recordings = chbRecordings.Checked;
sdRegObj.zones = chbZones.Checked;
sdRegObj.telemetry = chbTelemetry.Checked;
if (chbGPS.Checked)
{
//sdRegObj.map_type = (Int16)(cbMapType.SelectedIndex + 1);
if (cbMapType.SelectedIndex == 0)
sdRegObj.map_type = 1;
else if(cbMapType.SelectedIndex == 1)
sdRegObj.map_type = 4;
else if (cbMapType.SelectedIndex == 2)
sdRegObj.map_type = 3;
}
else
{
sdRegObj.map_type = 0;
}
int status = regManager.insertSafeDispatchRegistration(sdRegObj);
if (status != -1)
{
btnNewSafeDispatch.Enabled = false;
btnUpdateSafeDispatch.Enabled = false;
if (sdRegObj.gps)
{
remainingGPS--;
}
if (sdRegObj.sms)
{
remainingSMS--;
}
if (sdRegObj.ticketing)
{
remainingTicketing--;
}
if (sdRegObj.reports)
{
remainingReports--;
}
if (sdRegObj.voice)
{
remainingVoice--;
}
if (sdRegObj.zones)
{
remainingZones--;
}
if (sdRegObj.telemetry)
{
remainingTelemetry--;
}
switch (sdRegObj.map_type)
{
case 1:
remainingGoogle--;
break;
case 2:
remainingUS--;
break;
case 3:
remainingOpenStreetMap--;
break;
case 4:
remainingArcgis--;
break;
}
safeDispatchRegs = regManager.getAllSafeDispatches();
gvSafeDispatches.DataSource = safeDispatchRegs;
selectSafeDispatchRow(sdRegObj);
if (btnDeleteSafeDispatch.Enabled == false)
{
btnDeleteSafeDispatch.Enabled = true;
}
updateRemainingFeaturesTextBoxes();
if (OnAppServerRefreshRequest != null)
OnAppServerRefreshRequest();
}
}
else CustomMessageBox.Show(CustomMessageBoxType.exclamation, MainForm.returnLNGString("errorIPFormat"), MainForm.returnLNGString("err"));
tbSafeDispatchIP.Focus();
}
private void updateRemainingFeaturesTextBoxes()
{
tbGPS.Text = remainingGPS.ToString();
tbSMS.Text = remainingSMS.ToString();
tbTicketing.Text = remainingTicketing.ToString();
tbReports.Text = remainingReports.ToString();
tbVoice.Text = remainingVoice.ToString();
tbRecordings.Text = remainingRecordings.ToString();
tbZones.Text = remainingZones.ToString();
tbTelemetry.Text = remainingTelemetry.ToString();
switch (cbMapType.SelectedIndex)
{
case 0:
tbMaps.Text = remainingGoogle.ToString();
break;
case 1:
tbMaps.Text = remainingArcgis.ToString();
break;
case 2:
tbMaps.Text = remainingOpenStreetMap.ToString();
break;
//case 3:
// tbMaps.Text = remainingArcgis.ToString();
// break;
}
}
private void btnDeleteSafeDispatch_Click(object sender, EventArgs e)
{
regManager.removeSafeDispatchRegistration(tbSafeDispatchIP.Text);
safeDispatchRegs = regManager.getAllSafeDispatches();
gvSafeDispatches.DataSource = safeDispatchRegs;
computeRemaining();
//if (remainingGateways == totalGateways)
//{
// btnNewGateway.Enabled = true;
// btnUpdateGateway.Enabled = false;
// btnDeleteGateway.Enabled = false;
//}
//else
//{
// gvGateways.CurrentRow = gvGateways.Rows[0];
// tbGWIP.Text = gvGateways.Rows[0].Cells[0].Value.ToString();
// if (remainingGateways == 1)
// {
// btnNewGateway.Enabled = true;
// }
//}
updateRemainingFeaturesTextBoxes();
tbSafeDispatchIP.Focus();
if (OnAppServerRefreshRequest != null)
OnAppServerRefreshRequest();
}
private void btnUpdateSafeDispatch_Click(object sender, EventArgs e)
{
if (MainForm.TestIP(tbSafeDispatchIP.Text))
{
if (!checkNewSDValidityUPDATE())
{
return;
}
btnNewSafeDispatch.Enabled = false;
btnUpdateSafeDispatch.Enabled = false;
btnDeleteSafeDispatch.Enabled = true;
SDRegistration newSDRegistration = new SDRegistration();
newSDRegistration.ip = tbSafeDispatchIP.Text;
newSDRegistration.gps = chbGPS.Checked;
newSDRegistration.sms = chbSMS.Checked;
newSDRegistration.ticketing = chbTicketing.Checked;
newSDRegistration.reports = chbReports.Checked;
newSDRegistration.voice = chbVoice.Checked;
newSDRegistration.recordings = chbRecordings.Checked;
newSDRegistration.zones = chbZones.Checked;
newSDRegistration.telemetry = chbTelemetry.Checked;
//newSDRegistration.map_type = (Int16)(cbMapType.SelectedIndex + 1);
if (cbMapType.SelectedIndex == 0)
newSDRegistration.map_type = 1;
else if(cbMapType.SelectedIndex == 1)
newSDRegistration.map_type = 4;
else if (cbMapType.SelectedIndex == 2)
newSDRegistration.map_type = 3;
regManager.updateSafeDispatchRegistration(selectedSDRegistration, newSDRegistration);
safeDispatchRegs = regManager.getAllSafeDispatches();
gvSafeDispatches.DataSource = safeDispatchRegs;
selectSafeDispatchRow(newSDRegistration);
computeRemaining();
updateRemainingFeaturesTextBoxes();
if (OnAppServerRefreshRequest != null)
OnAppServerRefreshRequest();
}
else CustomMessageBox.Show(CustomMessageBoxType.exclamation, MainForm.returnLNGString("errorIPFormat"), MainForm.returnLNGString("err"));
tbSafeDispatchIP.Focus();
}
private void checkExistingSafeDispatch()
{
SDRegistration tempSDRegistration = new SDRegistration();
tempSDRegistration.ip = tbSafeDispatchIP.Text;
tempSDRegistration.gps = chbGPS.Checked;
tempSDRegistration.sms = chbSMS.Checked;
tempSDRegistration.ticketing = chbTicketing.Checked;
tempSDRegistration.reports = chbReports.Checked;
tempSDRegistration.voice = chbVoice.Checked;
tempSDRegistration.recordings = chbRecordings.Checked;
tempSDRegistration.zones = chbZones.Checked;
tempSDRegistration.telemetry = chbTelemetry.Checked;
if (cbMapType.SelectedIndex == 0)
tempSDRegistration.map_type = 1;
else if (cbMapType.SelectedIndex == 1)
tempSDRegistration.map_type = 4;
else if (cbMapType.SelectedIndex == 2)
tempSDRegistration.map_type = 3;
//tempSDRegistration.map_type = (Int16)(cbMapType.SelectedIndex + 1);
if (tempSDRegistration.Equals(selectedSDRegistration))
{
btnNewSafeDispatch.Enabled = false;
btnUpdateSafeDispatch.Enabled = false;
btnDeleteSafeDispatch.Enabled = true;
}
else
{
if (selectedSDRegistration != null)
if (tempSDRegistration.ip.Equals(selectedSDRegistration.ip))
{
btnNewSafeDispatch.Enabled = false;
}
else
{
btnNewSafeDispatch.Enabled = true;
}
else
btnNewSafeDispatch.Enabled = true;
btnUpdateSafeDispatch.Enabled = true;
btnDeleteSafeDispatch.Enabled = true;
}
//checkCheckboxes();
}
private void chbGPS_ToggleStateChanged(object sender, Telerik.WinControls.UI.StateChangedEventArgs args)
{
checkExistingSafeDispatch();
if (chbGPS.Checked)
{
chbZones.Enabled = true;
chbZones.Checked = true;
}
else
{
chbZones.Enabled = false;
chbZones.Checked = false;
}
}
private void chbSMS_ToggleStateChanged(object sender, Telerik.WinControls.UI.StateChangedEventArgs args)
{
checkExistingSafeDispatch();
}
private void chbTicketing_ToggleStateChanged(object sender, Telerik.WinControls.UI.StateChangedEventArgs args)
{
checkExistingSafeDispatch();
}
private void chbReports_ToggleStateChanged(object sender, Telerik.WinControls.UI.StateChangedEventArgs args)
{
checkExistingSafeDispatch();
}
private void chbVoice_ToggleStateChanged(object sender, Telerik.WinControls.UI.StateChangedEventArgs args)
{
checkExistingSafeDispatch();
}
private void chbRecordings_ToggleStateChanged(object sender, StateChangedEventArgs args)
{
checkExistingSafeDispatch();
}
private void chbZones_ToggleStateChanged(object sender, Telerik.WinControls.UI.StateChangedEventArgs args)
{
checkExistingSafeDispatch();
}
private void chbTelemetry_ToggleStateChanged(object sender, Telerik.WinControls.UI.StateChangedEventArgs args)
{
checkExistingSafeDispatch();
}
private void gvGateways_CellFormatting(object sender, Telerik.WinControls.UI.CellFormattingEventArgs e)
{
GridCellElement cellElement = e.CellElement;
GridViewDataColumn columnInfo = e.CellElement.ColumnInfo as GridViewDataColumn;
if (cellElement == null || columnInfo == null)
return;
// do not draw border
cellElement.DrawBorder = false;
// do not highlight the cell on which was clicked
if (e.CellElement.IsCurrent)
{
e.CellElement.IsCurrent = false;
}
}
private void gvSafeDispatches_CellFormatting(object sender, Telerik.WinControls.UI.CellFormattingEventArgs e)
{
GridCellElement cellElement = e.CellElement;
GridViewDataColumn columnInfo = e.CellElement.ColumnInfo as GridViewDataColumn;
if (cellElement == null || columnInfo == null)
return;
// do not draw border
cellElement.DrawBorder = false;
// do not highlight the cell on which was clicked
if (e.CellElement.IsCurrent)
{
e.CellElement.IsCurrent = false;
}
}
private void cbMapType_SelectedIndexChanged(object sender, Telerik.WinControls.UI.Data.PositionChangedEventArgs e)
{
switch (cbMapType.SelectedIndex)
{
case 0: tbMaps.Text = remainingGoogle.ToString();
break;
case 1: tbMaps.Text = remainingArcgis.ToString();
break;
case 2:
tbMaps.Text = remainingOpenStreetMap.ToString();
break;
//case 3: tbMaps.Text = remainingArcgis.ToString();
// break;
}
checkExistingSafeDispatch();
}
private void checkCheckboxes()
{
chbGPS.Enabled = chbGPS.Checked || tbGPS.Text != "0" /*|| btnUpdateSafeDispatch.Enabled*/;
chbSMS.Enabled = chbSMS.Checked || tbSMS.Text != "0" /*|| btnUpdateSafeDispatch.Enabled*/;
chbTicketing.Enabled = chbTicketing.Checked || tbTicketing.Text != "0" /*|| btnUpdateSafeDispatch.Enabled*/;
chbReports.Enabled = chbReports.Checked || tbReports.Text != "0" /*|| btnUpdateSafeDispatch.Enabled*/;
chbVoice.Enabled = chbVoice.Checked || tbVoice.Text != "0" /*|| btnUpdateSafeDispatch.Enabled*/;
chbRecordings.Enabled = chbRecordings.Checked || tbRecordings.Text != "0" /*|| btnUpdateSafeDispatch.Enabled*/;
chbZones.Enabled = chbZones.Checked || tbZones.Text != "0" /*|| btnUpdateSafeDispatch.Enabled*/;
chbTelemetry.Enabled = chbTelemetry.Checked || tbTelemetry.Text != "0" /*|| btnUpdateSafeDispatch.Enabled*/;
}
public delegate void AppServerRefreshRequest();
public event AppServerRefreshRequest OnAppServerRefreshRequest;
/// <summary>
/// Change background color for the row according to its state and theme
/// </summary>
private void gvSafeDispatches_RowFormatting(object sender, RowFormattingEventArgs e)
{
e.RowElement.DrawFill = true;
e.RowElement.NumberOfColors = 1;
if (e.RowElement.IsSelected)
e.RowElement.BackColor = MainForm.GridSelectedRow;
else
e.RowElement.BackColor = (e.RowElement.RowInfo.Index % 2 == 0 ? Color.White : MainForm.GridAlternateRow);
}
/// <summary>
/// Change background color for the row according to its state and theme
/// </summary>
private void gvGateways_RowFormatting(object sender, RowFormattingEventArgs e)
{
e.RowElement.DrawFill = true;
e.RowElement.NumberOfColors = 1;
if (e.RowElement.IsSelected)
e.RowElement.BackColor = MainForm.GridSelectedRow;
else
e.RowElement.BackColor = (e.RowElement.RowInfo.Index % 2 == 0 ? Color.White : MainForm.GridAlternateRow);
}
private void gvSafeDispatches_SelectionChanged(object sender, EventArgs e)
{
int index = (((RadGridView)sender).SelectedRows[0]).Index;
if (index >= 0)
{
selectedSDRegistration = safeDispatchRegs[index];
tbSafeDispatchIP.Text = safeDispatchRegs[index].ip;
}
}
}
}