示例#1
0
        private void LoadCodeDetailData(string CodeSetName)
        {
            
            i9Message RequestMessage = new i9Message();
            RequestMessage.MsgBody = CodeSetName;
            RequestMessage.ToBizLayer = MobileMessageType.Admin;
            RequestMessage.ToBizLayerMsgType = AdminType.Code_GetCodeDetail_Admin;

            i9Message responseMsg = i9MessageManager.SendMessage(RequestMessage);
            if (responseMsg.ErrorStatus.IsError)
            {
                LogManager.Instance.LogMessage(responseMsg.ErrorStatus);
                //AppCommand.SendCommand(AppCommandType.Error, AppSubCommandType.DisplayError, "");
                MessageBox.Show("Unable to get codes, please try again.", "Codes", MessageBoxButton.OK, MessageBoxImage.Information);
                
                this.DataContext = null;
                return;
            }

            if (responseMsg.HasTables())
            {
                CodeDetailDataTable = responseMsg.MsgBodyDataSet.Tables[0];
                this.DataContext = CodeDetailDataTable.DefaultView;
            }
            else
            {
                this.DataContext = null;
            }
            
        }
示例#2
0
        private static void WaitForMessage(ref i9Message ReturnMessage, CancellationToken ct)
        {
            DateTime StartTime = DateTime.Now;

            while (true)
            {
                if (ct.IsCancellationRequested)
                {
                    return;
                }

                DateTime EndTime = DateTime.Now;
                TimeSpan span    = EndTime.Subtract(StartTime);

                if (ReturnMessage != null)
                {
                    break;
                }

                if (span.Seconds > MsgTimeOut)  //Time needs to be configurable...
                {
                    break;
                }

                Thread.Sleep(200);  //Sleep alittle bit
            }
        }
示例#3
0
        //private static i9Message SendMessage_V2(i9Message MobileMsg)
        //{
        //    i9Message ReturnMessage = null;
        //    DateTime StartTime = DateTime.Now;

        //    Thread MsgThread = new Thread(delegate()
        //        {
        //            // Return value directly to local variable.
        //            Thread.Sleep(15000);
        //            ReturnMessage = SendMessageAsync(MobileMsg);
        //        }
        //    );

        //    ThreadMessages.Add(MobileMsg.MsgGUID, MsgThread);
        //    MsgThread.Start();

        //    if (MsgThread.Join(10000))
        //    {
        //        Console.WriteLine("New thread terminated.");
        //    }
        //    else
        //    {
        //        Console.WriteLine("Join timed out.");
        //        ReturnMessage = new i9Message();
        //        ReturnMessage.ErrorStatus.IsError = true;
        //        ReturnMessage.ErrorStatus.ErrorMsg = "User Canceled the Action";
        //    }


        //    ThreadMessages.Remove(MobileMsg.MsgGUID);
        //    tokenSource = null;

        //    return ReturnMessage;
        //}

        //private static bool CancelMessage_V2(i9Message MobileMsg)
        //{
        //    bool Results = false;

        //    if (MobileMsg == null)
        //    {
        //        foreach (KeyValuePair<string, Thread> kvp in ThreadMessages)
        //        {
        //            Thread t = kvp.Value;
        //            t.Abort();
        //            Results = true;
        //        }
        //    }
        //    else
        //    {
        //        if (ThreadMessages.ContainsKey(MobileMsg.MsgGUID))
        //        {
        //            Thread t = ThreadMessages[MobileMsg.MsgGUID];
        //            t.Abort();
        //            Results = true;
        //        }
        //    }

        //    return Results;
        //}

        private static bool CancelMessage_V1(i9Message MobileMsg)
        {
            bool Results = false;

            if (tokenSource != null)
            {
                tokenSource.Cancel();
            }

            if (MobileMsg == null)
            {
                foreach (KeyValuePair <string, Thread> kvp in ThreadMessages)
                {
                    kvp.Value.Abort();
                    Results = true;
                }
            }
            else
            {
                if (ThreadMessages.ContainsKey(MobileMsg.MsgGUID))
                {
                    Thread t = ThreadMessages[MobileMsg.MsgGUID];
                    t.Abort();
                    Results = true;
                }
            }

            return(Results);
        }
示例#4
0
        private i9Message GetEntireTable(i9Message RequestMessage)
        {
            string TableName = RequestMessage.MsgBody;

            i9Message response = new i9Message();
            string sql = "SELECT * FROM " + TableName;
            string personnelID = RequestMessage.MessageSecurity.LoginPersonnelID;

            switch (TableName.ToUpper())
            {
                case "i9SysPersonnel":
                    //Leave out the password from the result set.
                    sql = "SELECT BadgeNumber, i9SysPersonnelID, FirstName, LastName, MiddleName, OfficerORI, Officer FROM i9SysPersonnel";
                    break;
                    
                //case "i9SecurityGroupTask":
                //    sql = "SELECT * FROM i9SecurityGroupTask WHERE i9SysPersonnelID = " + SQLUtility.SQLString(personnelID);
                //    break;

                //case "i9SecurityGroupModule":
                //    sql = "SELECT * FROM i9SecurityGroupModule WHERE i9SysPersonnelID = " + SQLUtility.SQLString(personnelID);
                //    break;

                default:
                    sql = "SELECT * FROM " + TableName;
                    break;
            }

            DataSet ss = new SQLAccess().GetDataSet(sql, TableName);
            response.MsgBodyDataSet = ss;
            return response;
        }
示例#5
0
        /// <summary>
        /// Process Mobile Message
        /// </summary>
        /// <param name="requestMessage"></param>
        /// <returns></returns>
        public i9Message ProcessMobileMessage(i9Message requestMessage)
        {
            i9Message responseMessage = new i9Message();
            
            switch (requestMessage.ToBizLayerMsgType)
            {
                case SecurityType.Security_PersonnelGroupsGet:
                    responseMessage = Security_GetPersonnelGroups(requestMessage);
                    break;

                case SecurityType.Security_PersonnelGroupsSave:
                    responseMessage = Security_SavePersonnelGroups(requestMessage);
                    break;

                case SecurityType.Security_SecurityGroupsGet:
                    responseMessage = Security_GetSecurityGroups(requestMessage);
                    break;

                case SecurityType.Security_SecurityGroupSave:
                    responseMessage = Security_SaveGroupItems(requestMessage);
                    break;

                case SecurityType.Security_PersonnelGroupTaskGet:
                    responseMessage = Security_PersonnelGroupTaskGet(requestMessage);
                    break;

                default:
                    responseMessage.ErrorStatus.IsError = true;
                    responseMessage.ErrorStatus.ErrorMsg = "Unknown Message Type(" + DateTime.Now.ToString() + "): " + requestMessage.ToBizLayerMsgType;
                    ServiceLogManager.LogThis("Unkown message type in the Security business layer :  " + requestMessage.ToBizLayerMsgType, LogEventType.Info, "", "");
                    break;
            }
            return responseMessage;
        }
示例#6
0
        private i9Message AgencySave(i9Message requestMessage)
        {
            i9Message ResponseMessage = new i9Message();

            try
            {
                if (requestMessage.MsgBodyDataSet != null)
                {
                    if (requestMessage.MsgBodyDataSet.Tables.Count > 0)
                    {
                        SQLAccess da = new SQLAccess();
                        da.SaveDataTable(requestMessage.MsgBodyDataSet.Tables["i9Agency"]);
                        ResponseMessage.ErrorStatus.IsError = false;
                    }
                }
            }
            catch (Exception ex)
            {
                ServiceLogManager.LogThis("Error saving dataset", LogEventType.Error, ex, "", "");
                ResponseMessage.ErrorStatus.IsError = true;
                ResponseMessage.ErrorStatus.ErrorMsg = ex.Message;
            }

            return ResponseMessage;
        }
示例#7
0
        public i9Message ProcessMobileMessage(i9Message mMessage)
        {
            i9Message response = new i9Message();
            response.ErrorStatus.SetError(true, "un-processed message", new Exception());

            switch (mMessage.ToBizLayerMsgType)
            {
                case LawType.Incident_New:
                    response = NewIncident(mMessage);
                    break;

                case LawType.Incident_Edit:
                    response = EditIncident(mMessage);
                    break;

                case LawType.Incident_Save:
                    response = SaveIncident(mMessage);
                    break;

                case LawType.Incident_Search:
                    response = SearchIncident(mMessage);
                    break;

                case LawType.Incident_Delete:
                    response = DeleteIncident(mMessage);
                    break;

                default:
                    response.ErrorStatus.IsError = true;
                    response.ErrorStatus.ErrorMsg = "Unknown Message Type(" + DateTime.Now.ToString() + "): " + mMessage.ToBizLayerMsgType;
                    //response.ErrorStatus.SetError(true, "un-processed message", new Exception());
                    break;
            }
            return response;
        }
示例#8
0
 /// <summary>
 /// Process Mobile Message
 /// </summary>
 /// <param name="requestMessage"></param>
 /// <returns></returns>
 public i9Message ProcessMobileMessage(i9Message requestMessage)
 {
     i9Message responseMessage = new i9Message();
     
     switch (requestMessage.ToBizLayerMsgType)
     {
         case AgencyType.Agency_GetList:
             responseMessage = GetList(requestMessage);
             break;
         case AgencyType.Agency_Delete:
             responseMessage = DeleteAgency(requestMessage);
             break;
         case AgencyType.Agency_GetDetail:
             responseMessage = GetDetail(requestMessage);
             break;
         case AgencyType.Agency_Save:
             responseMessage = AgencySave(requestMessage);
             break;
         default:
             responseMessage.ErrorStatus.IsError = true;
             responseMessage.ErrorStatus.ErrorMsg = "Unknown Message Type(" + DateTime.Now.ToString() + "): " + requestMessage.ToBizLayerMsgType;
             ServiceLogManager.LogThis("Unkown message type in the Agency business layer :  " + requestMessage.ToBizLayerMsgType, LogEventType.Info, "", "");
             break;
     }
     
     return responseMessage;
 }
示例#9
0
        public static i9Message SendMessage(string ToBizLayer, string ToBizLayerMsgType, string From)
        {
            i9Message MobileMsg = new i9Message();

            MobileMsg.ToBizLayer = ToBizLayer;
            MobileMsg.ToBizLayerMsgType = ToBizLayerMsgType;

            MobileMsg.From = From;

            return SendMessage(MobileMsg);
        }
示例#10
0
        public static i9Message SendMessage(string ToBizLayer, string ToBizLayerMsgType, string From)
        {
            i9Message MobileMsg = new i9Message();

            MobileMsg.ToBizLayer        = ToBizLayer;
            MobileMsg.ToBizLayerMsgType = ToBizLayerMsgType;

            MobileMsg.From = From;

            return(SendMessage(MobileMsg));
        }
示例#11
0
        private i9Message DeleteAgency(i9Message requestMessage)
        {
            string AgencyID = requestMessage.MsgBody.ToString();
            i9Message response = new i9Message();
            SQLAccess da = new SQLAccess();
            string SQL = "DELETE FROM i9Agency WHERE i9AgencyID = " + SQLUtility.SQLString(AgencyID) + " ";

            int UpdatedRows = da.ExecuteSQL(SQL);
            response.MsgBody = UpdatedRows.ToString();

            return response;
        }
示例#12
0
        public static i9Message SendMessage(string ToBizLayer, string ToBizLayerMsgType, string From, DataSet MsgDataSet)
        {
            i9Message MobileMsg = new i9Message();

            MobileMsg.ToBizLayer        = ToBizLayer;
            MobileMsg.ToBizLayerMsgType = ToBizLayerMsgType;

            MobileMsg.From = From;

            MobileMsg.MsgBodyDataSet = MsgDataSet;

            return(SendMessage(MobileMsg));
        }
示例#13
0
        public static i9Message SendMessage(string ToBizLayer, string ToBizLayerMsgType, string From, DataSet MsgDataSet )
        {
            i9Message MobileMsg = new i9Message();

            MobileMsg.ToBizLayer = ToBizLayer;
            MobileMsg.ToBizLayerMsgType = ToBizLayerMsgType;

            MobileMsg.From = From;

            MobileMsg.MsgBodyDataSet = MsgDataSet;

            return SendMessage(MobileMsg);
        }
示例#14
0
        private static i9Message SendMessageAsync(i9Message MobileMsg)
        {
            i9Message ReturnMessage = new i9Message();

            try
            {
                //Thread.Sleep(10000);


                //Security Information to the Message.
                MobileMsg.MessageSecurity.MachineName      = Environment.MachineName;
                MobileMsg.MessageSecurity.MachineUserName  = Environment.UserName;
                MobileMsg.MessageSecurity.IPAddress        = "???";
                MobileMsg.MessageSecurity.LoginPersonnelID = SettingManager.Instance.LoginPersonnelID;
                MobileMsg.MessageSecurity.AgencyID         = SettingManager.Instance.AgencyID;

                string TextMsg          = MobileMsg.XMLSerializeMessage();
                string ReturnXMLMessage = "";
                if (ConfigurationManager.Instance.IsDemoMode)
                {
                    //Demo Verison of the application.  No Backend system.
                    if (mIi9MessageManager == null)
                    {
                        mIi9MessageManager = GetIi9BizManager();
                    }

                    ReturnXMLMessage = mIi9MessageManager.ProcessMobileMessage(TextMsg);
                }
                else
                {
                    //Production Verison of the application.  biz logic and data access is handed in the backend.
                    Invert911Service oInvert911Service = (Invert911Service)WebServiceUtilities.GetWebService(new Invert911Service());
                    //Invert911.InvertCommon.Invert911service.Invert911Service oInvert911Service = new Invert911service.Invert911Service();

                    //ReturnXMLMessage = oInvert911Service.ProcessMobileMessageTest(TextMsg);

                    ReturnXMLMessage = oInvert911Service.ProcessMobileMessage(TextMsg);
                }

                ReturnMessage = (i9Message)i9Message.XMLDeserializeMessage(typeof(i9Message), ReturnXMLMessage);
            }
            catch (Exception ex)
            {
                ReturnMessage.ErrorStatus.IsError = true;
                //ReturnMessage.ErrorStatus.ErrorMsg = ex.GetBaseException().Message;
                ReturnMessage.ErrorStatus.ErrorMsg = "Error: " + ex.GetBaseException().Message + Environment.NewLine + "  StackTrace:  " + ex.GetBaseException().StackTrace;
                LogManager.Instance.LogMessage("Error in the MessageManager.SendMessage", ex);
            }

            return(ReturnMessage);
        }
示例#15
0
        public static i9Message SendMessage(string ToBizLayer, string ToBizLayerMsgType, string From, Type type, object MsgBody)
        {
            i9Message MobileMsg = new i9Message();
            
            MobileMsg.ToBizLayer = ToBizLayer;
            MobileMsg.ToBizLayerMsgType = ToBizLayerMsgType;

            MobileMsg.From = From;

            if(type == typeof(string))
                MobileMsg.MsgBody = MsgBody.ToString();
            else
                MobileMsg.MsgBody = i9Message.XMLSerializeMessage(MsgBody.GetType(), MsgBody);

            return SendMessage(MobileMsg);
        }
示例#16
0
        void IncidentEntry_Loaded(object sender, RoutedEventArgs e)
        {
            if (m_LawIncidentType != null)
                return;

            ClearReportViewer();

            m_LawIncidentType = new LawIncidentType();

            if (String.IsNullOrEmpty(i9EventID))
            {
                i9Message responseMsg = i9MessageManager.SendMessage(MobileMessageType.Incident, LawType.Incident_New, "incidentEntry");
                if (responseMsg.ErrorStatus.IsError)
                {
                    MessageBox.Show("Error creating a new incident.");
                    return;
                }
                else
                {
                    m_LawIncidentType.oDataSet = responseMsg.MsgBodyDataSet;
                }
            }
            else
            {
                i9Message Msg = new i9Message();
                Msg.ToBizLayer = MobileMessageType.Incident;
                Msg.ToBizLayerMsgType = LawType.Incident_Edit;
                Msg.From = "IncidentEntry";

                LawIncidentMessage incidentMsg = new LawIncidentMessage();
                incidentMsg.i9EventID = i9EventID;
                Msg.MsgBody = i9Message.XMLSerializeMessage(incidentMsg.GetType(), incidentMsg);  

                i9Message responseMsg = i9MessageManager.SendMessage(Msg);
                if (responseMsg.ErrorStatus.IsError)
                {
                    MessageBox.Show("Error opening the incident record.");
                    return;
                }
                else
                {
                    m_LawIncidentType.oDataSet = responseMsg.MsgBodyDataSet;
                }
            }

            DataBindIncident(); 
        }
示例#17
0
        public i9Message ProcessMobileMessage(i9Message RequestMessage)
        {
            i9Message response = new i9Message();
            switch (RequestMessage.ToBizLayerMsgType)
            {
                case SyncCacheType.GetSyncData:
                    string LastChanged = RequestMessage.MsgBody;
                    response = GetSyncData(LastChanged);
                    break;

                case SyncCacheType.GetFullTable:
                    response = GetEntireTable(RequestMessage);
                    break;
            }

            return response;
        }
示例#18
0
        private i9Message GetDetail(i9Message requestMessage)
        {
            string AgencyID = requestMessage.MsgBody.ToString();
            i9Message response = new i9Message();
            SQLAccess da = new SQLAccess();
            string SQL = " Select * from i9Agency WHERE i9AgencyID = " + SQLUtility.SQLString(AgencyID) + " order by AgencyName ";

            Dictionary<string, string> tableMapping = new Dictionary<string, string>() 
            {
                {"Table", "i9Agency"},
            };

            DataSet ds = da.GetDataSet(SQL, tableMapping);
            response.MsgBodyDataSet = ds;

            return response;
        }
示例#19
0
        public static i9Message SendMessage(i9Message MobileMsg)
        {
            i9Message RespomseMsg = new i9Message();

            try
            {
                RespomseMsg = SendMessage_V1(MobileMsg);
            }
            catch (Exception ex)
            {
                LogManager.Instance.LogMessage(ex);
                RespomseMsg.ErrorStatus.IsError  = true;
                RespomseMsg.ErrorStatus.ErrorMsg = "Error: " + ex.GetBaseException().Message + Environment.NewLine + "  StackTrace:  " + ex.GetBaseException().StackTrace;
            }

            return(RespomseMsg);
        }
示例#20
0
        public static i9Message SendMessage(i9Message MobileMsg)
        {
            i9Message RespomseMsg = new i9Message();
            
            try
            {
                RespomseMsg = SendMessage_V1(MobileMsg);
                
            }
            catch (Exception ex)
            {
                LogManager.Instance.LogMessage(ex);
                RespomseMsg.ErrorStatus.IsError = true;
                RespomseMsg.ErrorStatus.ErrorMsg = "Error: " + ex.GetBaseException().Message + Environment.NewLine + "  StackTrace:  " + ex.GetBaseException().StackTrace;
            }

            return RespomseMsg;
        }
示例#21
0
        private i9Message DeleteIncident(i9Message requestMessage)
        {
            i9Message response = new i9Message();
            SQLAccess da = new SQLAccess();

            LawIncidentMessage lim = (LawIncidentMessage)i9Message.XMLDeserializeMessage(typeof(LawIncidentMessage), requestMessage.MsgBody);
            string i9EventID = lim.i9EventID;

            string DeleteIncidentSql =
                  " DELETE FROM i9LawIncident WHERE i9EventID = " + SQLUtility.SQLString(i9EventID) + Environment.NewLine +
                  " DELETE FROM i9PersonSMT WHERE i9EventID = " + SQLUtility.SQLString(i9EventID) + Environment.NewLine +
                  " DELETE FROM i9Property WHERE  i9EventID = " + SQLUtility.SQLString(i9EventID) + Environment.NewLine +
                  " DELETE FROM i9Narrative WHERE i9EventID = " + SQLUtility.SQLString(i9EventID) + Environment.NewLine +
                  " DELETE FROM i9VehicleRecovery WHERE i9EventID = " + SQLUtility.SQLString(i9EventID) + Environment.NewLine +
                  " DELETE FROM i9VehicleTowed WHERE i9EventID = " + SQLUtility.SQLString(i9EventID) + Environment.NewLine +
                  " DELETE FROM i9AttachmentLink WHERE i9EventID = " + SQLUtility.SQLString(i9EventID) + Environment.NewLine +
                  " DELETE FROM i9Attachment WHERE i9EventID = " + SQLUtility.SQLString(i9EventID) + Environment.NewLine +
                  " DELETE FROM i9AttachmentData WHERE i9EventID = " + SQLUtility.SQLString(i9EventID) + Environment.NewLine +
                  " DELETE FROM i9Person WHERE  i9EventID = " + SQLUtility.SQLString(i9EventID) + Environment.NewLine +
                  " DELETE FROM i9Vehicle WHERE  i9EventID = " + SQLUtility.SQLString(i9EventID) + Environment.NewLine +
                  " DELETE FROM i9Location WHERE  i9EventID = " + SQLUtility.SQLString(i9EventID) + Environment.NewLine +
                  " DELETE FROM i9Event WHERE  i9EventID = " + SQLUtility.SQLString(i9EventID) + Environment.NewLine;
                  //" DELETE FROM i9Offense WHERE  i9EventID = " + SQLUtility.SQLString(i9EventID) + Environment.NewLine +
                  //" DELETE FROM i9CADServiceCall WHERE i9EventID = " + SQLUtility.SQLString(i9EventID);


            //Stopwatch stopWatch = new Stopwatch();
            //stopWatch.Start();
            
            DeleteIncidentSql = SQLUtility.WrapInTransaction(DeleteIncidentSql);

            response.MsgBody = da.ExecuteSQL(DeleteIncidentSql).ToString();

            //stopWatch.Stop();
            //TimeSpan ts = stopWatch.Elapsed;
            //string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}",
            //ts.Hours, ts.Minutes, ts.Seconds,
            //ts.Milliseconds / 10);
            //Console.WriteLine(elapsedTime);

            response.ErrorStatus.IsError = false;

            return response;
        }
示例#22
0
        public static i9Message SendMessage(string ToBizLayer, string ToBizLayerMsgType, string From, Type type, object MsgBody)
        {
            i9Message MobileMsg = new i9Message();

            MobileMsg.ToBizLayer        = ToBizLayer;
            MobileMsg.ToBizLayerMsgType = ToBizLayerMsgType;

            MobileMsg.From = From;

            if (type == typeof(string))
            {
                MobileMsg.MsgBody = MsgBody.ToString();
            }
            else
            {
                MobileMsg.MsgBody = i9Message.XMLSerializeMessage(MsgBody.GetType(), MsgBody);
            }

            return(SendMessage(MobileMsg));
        }
示例#23
0
        private static i9Message SendMessage_V1(i9Message MobileMsg)
        {
            tokenSource = new CancellationTokenSource();
            CancellationToken token = tokenSource.Token;

            i9Message ReturnMessage = null;
            DateTime  StartTime     = DateTime.Now;

            Thread MsgThread = new Thread(delegate()
            {
                // Return value directly to local variable.
                ReturnMessage = SendMessageAsync(MobileMsg);
            }
                                          );

            ThreadMessages.Add(MobileMsg.MsgGUID, MsgThread);
            MsgThread.Start();

            Task taskA = Task.Factory.StartNew(() => WaitForMessage(ref ReturnMessage, token), token);

            WaitWithPumping(taskA);

            ThreadMessages.Remove(MobileMsg.MsgGUID);
            tokenSource = null;

            if (token.IsCancellationRequested)
            {
                ReturnMessage = new i9Message();
                ReturnMessage.ErrorStatus.IsError  = true;
                ReturnMessage.ErrorStatus.ErrorMsg = "User Canceled the Action";
            }

            if (ReturnMessage == null)
            {
                LogManager.Instance.LogMessage("RespomseMsg was null");
                ReturnMessage.ErrorStatus.IsError  = true;
                ReturnMessage.ErrorStatus.ErrorMsg = "Message timed out";
            }

            return(ReturnMessage);
        }
示例#24
0
        private i9Message GetSyncData(string LatChanged)
        {
            i9Message response = new i9Message();
            string sql = "";
            int TableCounter = 0;
            
            List<string> tables = DataAccessUtilities.SyncTableNames();
            Dictionary<string, string> tableMapping = new Dictionary<string, string>();

            tables.ForEach(delegate(String TableName)
            {
                sql += " SELECT * FROM " + TableName + " WHERE  LastUpdate >= " + SQLUtility.SQLString(LatChanged.Trim()) + "  or  LastUpdate is null " + Environment.NewLine;
                tableMapping.Add("Table" + (TableCounter == 0 ? "" : TableCounter.ToString()), TableName);
                TableCounter++;
            });

            DataSet ds = new SQLAccess().GetDataSet(sql, tableMapping);
            response.MsgBodyDataSet = ds;

            return response;
        }
示例#25
0
        private i9Message Security_PersonnelGroupTaskGet(i9Message requestMessage)
        {
            i9Message response = new i9Message();
            SQLAccess da = new SQLAccess();
            string i9SysPersonnelID = requestMessage.MsgBody;


            string SQL1 = @"
                            SELECT sgm.ModuleName 
                            FROM i9SecurityGroupPersonnel sgp
	                            INNER JOIN i9SecurityGroup sg ON  sgp.i9SecurityGroupID = sg.i9SecurityGroupID
	                            LEFT OUTER JOIN i9SecurityGroupModule sgm ON  sgm.SecurityGroupName = sg.SecurityGroupName
	                            LEFT OUTER JOIN i9Agency a on a.i9AgencyID = sgp.i9AgencyID
	                            INNER JOIN i9SysPersonnel per on per.i9SysPersonnelID = sgp.i9SysPersonnelID
                            WHERE per.i9SysPersonnelID = @i9SysPersonnelID
                            GROUP BY sgm.ModuleName	
                            ORDER BY sgm.ModuleName
                            ";

            SQL1 = SQL1.Replace("@i9SysPersonnelID", SQLUtility.SQLString(i9SysPersonnelID));

            string SQL2 = @"    SELECT * FROM i9SecurityGroupTask WHERE 1=2";

            SQL2 = SQL2.Replace("@i9SysPersonnelID", SQLUtility.SQLString(i9SysPersonnelID));

            string SQL = SQL1 + " " + Environment.NewLine + " " + SQL2;

            Dictionary<string, string> tableMapping = new Dictionary<string, string>() 
            {
                {"Table",  "ModuleName"},
                {"Table1", "TaskName"},
            };

            DataSet ds = da.GetDataSet(SQL, tableMapping);
            response.MsgBodyDataSet = ds;

            return response;
        }
示例#26
0
        /// <summary>
        /// GetDynamicEntryAdmin
        /// </summary>
        /// <param name="mMessage"></param>
        /// <returns></returns>
        private i9Message GetDynamicEntryAdmin(i9Message mMessage)
        {
            SQLAccess da = new SQLAccess();
            i9Message response = new i9Message();

            string SQLLogin = "******" + Environment.NewLine +
                              " SELECT * FROM i9DynamicEntryConfig " + Environment.NewLine +
                              " select * from i9DynamicEntryRule " + Environment.NewLine;

            Dictionary<string, string> tableMapping = new Dictionary<string, string>() 
            {
                {"Table", "i9DynamicEntry"},
                {"Table1", "i9DynamicEntryConfig"},
                {"Table2", "i9DynamicEntryRule"},
            };

            response.MsgBodyDataSet = da.GetDataSet(SQLLogin, tableMapping);
            response.ErrorStatus.IsError = false;

            return response;
        }
示例#27
0
 public static bool CancelMessage(i9Message MobileMsg)
 {
     return(CancelMessage_V1(MobileMsg));
 }
示例#28
0
        private i9Message PersonnelGetList(i9Message requestMessage)
        {
            i9Message response = new i9Message();
            SQLAccess da = new SQLAccess();
            string SQL = " Select LastName +', ' + FirstName + ' - ' + BadgeNumber as DisplayName, * FROM i9SysPersonnel order by DisplayName " + Environment.NewLine +
                         " Select * from i9Agency order by AgencyName ";

            Dictionary<string, string> tableMapping = new Dictionary<string, string>() 
            {
                {"Table", "i9SysPersonnel"},
                {"Table1", "i9Agency"},
            };

            DataSet ds = da.GetDataSet(SQL, tableMapping);
            response.MsgBodyDataSet = ds;

            return response;
        }
示例#29
0
        private void DeleteButton_Click(object sender, RoutedEventArgs e)
        {
            if (PersonnelListView.SelectedValue == null)
            {
                return;
            }

            DataRowView SelectedDrv = (DataRowView)PersonnelListView.SelectedItem;
            string PersonnelID = SelectedDrv["i9SysPersonnelID"].ToString();

            i9Message RequestMessage = new i9Message();
            RequestMessage.MsgBody = PersonnelID;
            RequestMessage.ToBizLayer = MobileMessageType.Admin;
            RequestMessage.ToBizLayerMsgType = AdminType.SysPer_PersonDelete;

            i9Message responseMsg = i9MessageManager.SendMessage(RequestMessage);
            if (responseMsg.ErrorStatus.IsError)
            {
                LogManager.Instance.LogMessage(responseMsg.ErrorStatus);
                MessageBox.Show("Unable to delete peronnel, please try again.", "Personnel", MessageBoxButton.OK, MessageBoxImage.Information);

                this.DataContext = null;
                return;
            }

            RefreshPersonnel();
        }
示例#30
0
        private void LoadPersonnelDetailData(string PersonnelID)
        {
            i9Message RequestMessage = new i9Message();
            RequestMessage.MsgBody = PersonnelID;
            RequestMessage.ToBizLayer = MobileMessageType.Admin;
            RequestMessage.ToBizLayerMsgType = AdminType.SysPer_PersonGet;

            i9Message responseMsg = i9MessageManager.SendMessage(RequestMessage);
            if (responseMsg.ErrorStatus.IsError)
            {
                LogManager.Instance.LogMessage(responseMsg.ErrorStatus);
                MessageBox.Show("Unable to get peronnel, please try again.", "Personnel", MessageBoxButton.OK, MessageBoxImage.Information);

                this.DataContext = null;
                return;
            }

            if (responseMsg.HasTables())
            {
                PersonnelDetailDS = responseMsg.MsgBodyDataSet;
                this.DataContext = PersonnelDetailDS.Tables["i9SysPersonnel"].DefaultView;
            }
            else
            {
                this.DataContext = null;
            }
        }
示例#31
0
        /// <summary>
        /// DynamicEntry_GetTableColumns
        /// </summary>
        /// <param name="mMessage"></param>
        /// <returns></returns>
        private i9Message DynamicEntry_GetTableColumns(i9Message mMessage)
        {
            SQLAccess da = new SQLAccess(); 
            i9Message response = new i9Message();
            string ModuleSection = mMessage.MsgBody.Split(new Char[] {','})[0];
            string TableName = mMessage.MsgBody.Split(new Char[] { ',' })[1];

            string sql = " EXEC TableSchema_Get '" + TableName + "' " + Environment.NewLine ;
                         //" SELECT * FROM i9DynamicEntryConfig where ModuleSection = '" + ModuleSection  + "' " + Environment.NewLine +
                         //" SELECT * FROM i9DynamicEntryRule der, i9DynamicEntryConfig dec WHERE der.i9DynanicEntryConfigID = dec.i9DynanicEntryConfigID AND dec.ModuleSection = '" + ModuleSection + "' " + Environment.NewLine;

            Dictionary<string, string> tableMapping = new Dictionary<string, string>() 
            {
                {"Table", "i9TableSchema"},      
                //{"Table1", "i9DynamicEntryConfig"},
                //{"Table2", "i9DynamicEntryRule"},
            };

            response.MsgBodyDataSet = da.GetDataSet(sql, tableMapping);
            response.ErrorStatus.IsError = false;

            return response;
        }
示例#32
0
        public string ProcessMobileMessage(string Message)
        {
            ServiceLogManager.LogThis(Message, LogEventType.InMessages, "", "");

            
  
            i9Message Response = new i9Message();
            
            try
            {
                i9Message RequestMessage = (i9Message)i9Message.XMLDeserializeMessage(typeof(i9Message), Message);

                if (RequestMessage.MessageFormatVersion != i9Message.MESSAGE_FORMAT_VERSION)
                {
                    throw new Exception("Your Invert911 Cloud app is out of sync with the Clould server.  Please upgrade to the latest i9Invert911 Clound App");
                }
                
                //Need to Log Inbound Message
                //ServiceLogManager.LogThis(Message, LogEventType.Info, RequestMessage.MessageSecurity.LoginPersonnelID, RequestMessage.MessageSecurity.AgencyID);

                //Security Check:
                if (HasSecurityRight(RequestMessage, ref Response) == false)
                    return Response.XMLSerializeMessage();

                //Module Message Switch.  Routes Messages
                switch (RequestMessage.ToBizLayer)
                {
                    case MobileMessageType.Admin:
                        Response = new AdminBLL().ProcessMobileMessage(RequestMessage);
                        break;
                    case MobileMessageType.Agency:
                        Response = new AgencyBLL().ProcessMobileMessage(RequestMessage);
                        break;
                    case MobileMessageType.Citation:
                        Response = new CitationBLL().ProcessMobileMessage(RequestMessage);
                        break;
                    case MobileMessageType.Common:
                        Response = new CommonBLL().ProcessMobileMessage(RequestMessage);
                        break;
                    case MobileMessageType.FieldContact:
                        Response = new FieldContactBLL().ProcessMobileMessage(RequestMessage);
                        break;
                    case MobileMessageType.Incident:
                        Response = new LawIncidentBLL().ProcessMobileMessage(RequestMessage);
                        break;
                    case MobileMessageType.SyncCache:
                        Response = new SyncBLL().ProcessMobileMessage(RequestMessage);
                        break;
                    case MobileMessageType.Security:
                        Response = new SecurityBLL().ProcessMobileMessage(RequestMessage);
                        break;
                    default:
                        ServiceLogManager.LogThis("Unkown message type in the Message Manager BLL:  " + RequestMessage.ToBizLayerMsgType, LogEventType.Info, "", "");
                        Response.ErrorStatus.SetError(true, "Message Type is unknown", new Exception());
                        break;
                }
            }
            catch (Exception ex)
            {
                ServiceLogManager.LogThis("Error", LogEventType.Error, ex, "", "");
                Response.ErrorStatus.IsError = true;
                Response.ErrorStatus.ErrorMsg = "Error processing server message: ";
                Response.ErrorStatus.ErrorTrace = ex.StackTrace;
                Response.ErrorStatus.ErrorException = ex.Message;
            }

            //Response Message In string format
            string ResponseMessageText = Response.XMLSerializeMessage();

            //Log Outbound Message 
            ServiceLogManager.LogThis(ResponseMessageText, LogEventType.OutMessages, "", "");

            //
            return ResponseMessageText;
        }
示例#33
0
        private static i9Message SendMessageAsync(i9Message MobileMsg)
        {
            i9Message ReturnMessage = new i9Message();

            try
            {
                //Security Information to the Message.
                MobileMsg.MessageSecurity.MachineName = Environment.MachineName;
                MobileMsg.MessageSecurity.MachineUserName = Environment.UserName;
                MobileMsg.MessageSecurity.IPAddress = "???";
                MobileMsg.MessageSecurity.LoginPersonnelID = ""; // SettingManager.Instance.LoginPersonnelID;
                MobileMsg.MessageSecurity.AgencyID = "";         // SettingManager.Instance.AgencyID;

                string TextMsg = MobileMsg.XMLSerializeMessage();
                string ReturnXMLMessage = "";

                Ii9MessageManager oIi9MessageManager = new InvertService.BusinessLib.i9MessageManagerBLL();
                ReturnXMLMessage = oIi9MessageManager.ProcessMobileMessage(TextMsg);

                ReturnMessage = (i9Message)i9Message.XMLDeserializeMessage(typeof(i9Message), ReturnXMLMessage);
            }
            catch (Exception ex)
            {
                ReturnMessage.ErrorStatus.IsError = true;
                ReturnMessage.ErrorStatus.ErrorMsg = "Error: " + ex.GetBaseException().Message + Environment.NewLine + "  StackTrace:  " + ex.GetBaseException().StackTrace;
                //LogManager.Instance.LogMessage("Error in the MessageManager.SendMessage", ex);
                ServiceLogManager.LogThis("", LogEventType.Error, ex, "", "");
            }

            return ReturnMessage;
        }
示例#34
0
        public static i9Message SendMessage(i9Message MobileMsg)
        {
            i9Message ReturnMessage = new i9Message();

            try
            {
                //RespomseMsg = SendMessage_V1(MobileMsg);
                ReturnMessage = SendMessageAsync(MobileMsg);

            }
            catch (Exception ex)
            {
                ServiceLogManager.LogThis("", LogEventType.Error, ex, "", "");
                ReturnMessage.ErrorStatus.IsError = true;
                ReturnMessage.ErrorStatus.ErrorMsg = "Error: " + ex.GetBaseException().Message + Environment.NewLine + "  StackTrace:  " + ex.GetBaseException().StackTrace;
            }

            return ReturnMessage;
        }
示例#35
0
        private i9Message SaveDynamicEntryAdmin(i9Message mRequestMessage)
        {
            SQLAccess da = new SQLAccess();
            i9Message response = new i9Message();

            da.SaveDataTable(mRequestMessage.MsgBodyDataSet.Tables["i9DynamicEntryConfig"]);

            return response;
        }
示例#36
0
 private bool HasSecurityRight(i9Message RequestMessage, ref i9Message ResponseMessage)
 {
     //Need to Check the 
     return true;
 }
示例#37
0
        public i9Message Login(i9Message RequestMessage)
        {
            i9Message response = new i9Message();

            LoginMessage oLoginMessage = (LoginMessage)i9Message.XMLDeserializeMessage(typeof(LoginMessage), RequestMessage.MsgBody);
            SQLAccess da = new SQLAccess();

            string SQLLogin = "******" + SQLUtility.SQLString(oLoginMessage.UserName) + " and Password = "******"i9SysPersonnel");

            if (dt.Rows.Count <= 0)
            {
                //Just send back an empty table

                return response;
            }

            string i9SysPersonnelID = dt.Rows[0]["i9SysPersonnelID"].ToString();

            //Give an activision code to the login user
            string UpdateSql = "UPDATE i9SysPersonnel SET ActivationGuid = '" + Guid.NewGuid() + "' WHERE i9SysPersonnelID = " + SQLUtility.SQLString(i9SysPersonnelID);
            if (da.ExecuteSQL(UpdateSql) <= 0)
            {
                //Nothing was updated.  
            }

            //SyncModuleManagerToDB();


            Dictionary<string, string> tableMapping = new Dictionary<string, string>() 
            {
                {"Table", "i9SysPersonnel"},
                {"Table1", "xxSecurityGroupTask"},
                {"Table2", "xxSecurityGroupModule"},
            };

            string SQL = "SELECT * FROM i9SysPersonnel WHERE i9SysPersonnelID = @i9SysPersonnelID";

            SQL = SQL + Environment.NewLine + @"
                    SELECT sgt.TaskName, sp.BadgeNumber
                    FROM i9SecurityGroup sg
                            inner join i9SecurityGroupTask sgt
                            on sgt.SecurityGroupName = sg.SecurityGroupName	
                            inner join i9SecurityGroupPersonnel sgp 
                            on sgp.i9SecurityGroupID = sg.i9SecurityGroupID
                            inner join i9SysPersonnel sp
                            on sp.i9SysPersonnelID = sgp.i9SysPersonnelID
                    WHERE sp.i9SysPersonnelID = @i9SysPersonnelID
                    Group by TaskName, BadgeNumber                        
                    order by BadgeNumber, TaskName 
                    ";

                SQL = SQL + Environment.NewLine +  @"
                    SELECT sgm.ModuleName, sp.BadgeNumber
                    FROM i9SecurityGroup sg
                            inner join i9SecurityGroupModule sgm
                            on sgm.SecurityGroupName = sg.SecurityGroupName	
                            inner join i9SecurityGroupPersonnel sgp 
                            on sgp.i9SecurityGroupID = sg.i9SecurityGroupID
                            inner join i9SysPersonnel sp
                            on sp.i9SysPersonnelID = sgp.i9SysPersonnelID
                    WHERE sp.i9SysPersonnelID = @i9SysPersonnelID
                    Group by ModuleName, BadgeNumber                        
                    order by BadgeNumber, ModuleName     
                    ";

                SQL = SQL.Replace("@i9SysPersonnelID", SQLUtility.SQLString(i9SysPersonnelID) );

                response.MsgBodyDataSet = response.MsgBodyDataSet = da.GetDataSet(SQL, tableMapping);
                response.ErrorStatus.IsError = false;


            return response;
        }
示例#38
0
 public i9Message ProcessMobileMessage(i9Message mMessage)
 {
     i9Message response = new i9Message();
     response.ErrorStatus.SetError(true, "un-processed message", new Exception());
     return response;
 }
示例#39
0
        private i9Message CreateUser(i9Message requestMessage)
        {
            i9Message response = new i9Message();

            string CodeSetName = requestMessage.MsgBody;
            CreateUserMessage oCreateUserMessage = (CreateUserMessage)i9Message.XMLDeserializeMessage(typeof(CreateUserMessage), requestMessage.MsgBody);

            SQLAccess da = new SQLAccess();
            string SQL = " Select * FROM i9SysPersonnel WHERE Email = " + SQLUtility.SQLString(oCreateUserMessage.Email) + " ";

            Dictionary<string, string> tableMapping = new Dictionary<string, string>() 
            {
                {"Table", "i9SysPersonnel"}
            };

            DataSet ds = da.GetDataSet(SQL, tableMapping);
            if (ds.Tables["i9SysPersonnel"].Rows.Count > 0)
            {
                response.ErrorStatus.ErrorMsg = "Email already exists in system";
                response.ErrorStatus.IsError = true;
                return response;
            }
            else
            {
                DataRow dr = ds.Tables["i9SysPersonnel"].NewRow();
                
                dr["FirstName"] = oCreateUserMessage.FirstName;
                dr["LastName"] = oCreateUserMessage.LastName;
                
                dr["DateTimeInserted"] = DateTime.Now;
                dr["DateTimeUpdated"] = DateTime.Now;
                    
                dr["Password"] = oCreateUserMessage.Password;
                dr["Email"] = oCreateUserMessage.Email;
                dr["BadgeNumber"] = oCreateUserMessage.Email;
                dr["i9SysPersonnelID"] = Guid.NewGuid();
                dr["ActivationGuid"] = Guid.NewGuid();
                dr["Enabled"] = 1;
                dr["DemoUser"] = 1;
                dr["OfficerORI"] = "";
                dr["Officer"] = oCreateUserMessage.FirstName + ", " + oCreateUserMessage.LastName;

                if (oCreateUserMessage.i9AgencyID == Guid.Empty)
                {
                    dr["i9AgencyID"] = "53A05F38-FC9C-4260-B939-CB1F3998C4D4";
                }
                else
                {
                    dr["i9AgencyID"] = oCreateUserMessage.i9AgencyID;
                }

                ds.Tables["i9SysPersonnel"].Rows.Add(dr);

                da.SaveDataTable(ds.Tables["i9SysPersonnel"]);

                //===============================================================
                //  Send Email Confirmation
                //===============================================================
                //string EmailMessage = "";
                //string EmailSubject = "Invert911 Activation Confirmation";
                //string EmailFrom = "*****@*****.**";
                //string EmailTo = oCreateUserMessage.Email;

                //EmailUtility.SendEmail(EmailTo,EmailFrom,EmailSubject, EmailMessage);

            }

            response.ErrorStatus.IsError = false;
            return response;
        }