Beispiel #1
0
 private void SendWithReconnect(Queue <byte> SendData, bool DoReconnect)
 {
     try
     {
         if (SystemSocket != null)
         {
             Send(SystemSocket, Encoding.ASCII.GetString(SendData.ToArray()));
             if (sendDone.WaitOne(SocketTimeoutMS))
             {
                 DataOut?.Invoke(this, SendData);
             }
         }
     }
     catch
     {
         if (DoReconnect)
         {
             AttemptReconnect();
             SendWithReconnect(SendData, false);
         }
         else
         {
             ConnectionChanged?.Invoke(this);
         }
     }
 }
Beispiel #2
0
        private void LoadFly(List <PlaybackInfo> listOfPlay)
        {
            if (File.Exists("FlyHxModel.bin"))
            {
                using (BinaryReader br = new BinaryReader(File.Open("FlyHxModel.bin", FileMode.Open, FileAccess.Read)))
                {
                    var    lenght = br.BaseStream.Length;
                    double pos    = 0;
                    Console.WriteLine("");
                    while (br.BaseStream.Position != br.BaseStream.Length)
                    {
                        DataOut         dataOut = new DataOut();
                        KinematicsState kState  = new KinematicsState();

                        var dOutByte = br.ReadBytes(Marshal.SizeOf(dataOut));
                        var ksByte   = br.ReadBytes(Marshal.SizeOf(kState));

                        ConvertHelper.ByteToObject(dOutByte, dataOut);
                        kState = (KinematicsState)ConvertHelper.ByteToObject(ksByte, kState, typeof(KinematicsState));

                        listOfPlay.Add(new PlaybackInfo()
                        {
                            DataOut = dataOut, KinematicsState = kState
                        });
                        pos += 838;
                        decimal percent = (decimal)Math.Round(((pos / lenght) * 100.0), 2);
                        PrintProgress((int)percent, _processLoad, _finishLoad);
                    }
                }
            }
        }
Beispiel #3
0
        public FdmManager()
        {
            _config = Config.Instance();
            uint   version       = 0;
            uint   release       = 0;
            uint   releaseDay    = 0;
            uint   releaseMonth  = 0;
            uint   releaseYear   = 0;
            IntPtr pversion      = GetIntPtr(version);
            IntPtr prelease      = GetIntPtr(release);
            IntPtr preleaseDay   = GetIntPtr(releaseDay);
            IntPtr preleaseMonth = GetIntPtr(releaseMonth);
            IntPtr preleaseYear  = GetIntPtr(releaseYear);

            GetDllVersion(pversion, prelease, preleaseDay, preleaseMonth, preleaseYear);
            version      = (uint)Marshal.ReadInt32(pversion);
            release      = (uint)Marshal.ReadInt32(prelease);
            releaseDay   = (uint)Marshal.ReadInt32(preleaseDay);
            releaseMonth = (uint)Marshal.ReadInt32(preleaseMonth);
            releaseYear  = (uint)Marshal.ReadInt32(preleaseYear);

            _udpHelper      = new UdpHelper();
            _startPosition  = new StartPosition();
            _controlElement = new ControlElement();
            _svvo           = new Svvo();
            _dataOut        = new DataOut();
            fCSCmds         = new FCSCmds();

            InitThread();
            StartThread();
        }
        public IHttpActionResult PhanLoaiHoSoMuon(string Tungay, string Denngay)
        {
            DateTime From = new DateTime();
            DateTime To   = new DateTime();

            if (!string.IsNullOrEmpty(Tungay))
            {
                From = DateTime.ParseExact(Tungay, "dd/MM/yyyy",
                                           System.Globalization.CultureInfo.InvariantCulture);
            }
            if (!string.IsNullOrEmpty(Denngay))
            {
                To = DateTime.ParseExact(Denngay, "dd/MM/yyyy",
                                         System.Globalization.CultureInfo.InvariantCulture);
            }

            List <DataOut> ls = new List <DataOut>();

            var pmhs = from hsm in db.tblHosomuons
                       join pm in db.tblPhieumuonhosoes
                       on hsm.PhieuID equals pm.id
                       join dt in db.tblDoiTuong_HoSo
                       on hsm.DoituonghosoID equals dt.Id
                       join dm in db.tblDanhmucs on dt.MaLoaiHoSo equals dm.Ma

                       where dm.Maloai == "LHS" &&
                       (pm.Ngaydangky >= From || string.IsNullOrEmpty(Tungay)) &&
                       (pm.Ngaydangky <= To || string.IsNullOrEmpty(Denngay))
                       select hsm;

            DataOut dt1 = new DataOut();

            dt1.name  = "Mượn";
            dt1.value = pmhs.Where(t => t.Tinhtrang == 2).Count();
            ls.Add(dt1);


            DataOut dt3 = new DataOut();

            dt3.name  = "Di chuyển";
            dt3.value = pmhs.Where(t => t.Tinhtrang == 5).Count();
            ls.Add(dt3);


            DataOut dt4 = new DataOut();

            dt4.name  = "Hủy di chuyển";
            dt4.value = pmhs.Where(t => t.Tinhtrang == 8).Count();
            ls.Add(dt4);


            DataOut dt5 = new DataOut();

            dt5.name  = "Sao lục";
            dt5.value = pmhs.Where(t => t.Tinhtrang == 7).Count();
            ls.Add(dt5);

            return(Ok(ls));
        }
Beispiel #5
0
 public FdmManager()
 {
     _udpHelper      = new UdpHelper();
     _startPosition  = new StartPosition();
     _controlElement = new ControlElement();
     _svvo           = new Svvo();
     _dataOut        = new DataOut();
     InitThread();
     StartThread();
 }
Beispiel #6
0
        public void RecordData(DataOut dataOut, KinematicsState kinematicsState)
        {
            if (!_fs.CanWrite)
            {
                return;
            }

            _bw.Write(ConvertHelper.ObjectToByte(dataOut));
            _bw.Write(ConvertHelper.ObjectToByte(kinematicsState));
        }
        private void init_Serial_Com()
        {
            serial = new SerialPort();
            data   = new DataOut();
            ports  = SerialPort.GetPortNames();
            Comm_Port_Names.DataContext = ports;
            tb_info.Text = ports.Length + " " + "Com Ports found";

            if (ports.Length == 0)
            {
                Comm_Port_Names.IsEnabled = false;
            }
        }
        public IHttpActionResult PhanLoaiPhieu(string Tungay, string Denngay)
        {
            DateTime From = new DateTime();
            DateTime To   = new DateTime();

            if (!string.IsNullOrEmpty(Tungay))
            {
                From = DateTime.ParseExact(Tungay, "dd/MM/yyyy",
                                           System.Globalization.CultureInfo.InvariantCulture);
            }
            if (!string.IsNullOrEmpty(Denngay))
            {
                To = DateTime.ParseExact(Denngay, "dd/MM/yyyy",
                                         System.Globalization.CultureInfo.InvariantCulture);
            }

            List <DataOut> ls = new List <DataOut>();

            var pmhs = db.tblPhieumuonhosoes.Where(t =>
                                                   (t.Ngaydangky >= From || string.IsNullOrEmpty(Tungay)) &&
                                                   (t.Ngaydangky <= To || string.IsNullOrEmpty(Denngay))
                                                   ).AsNoTracking();

            DataOut dt1 = new DataOut();

            dt1.name  = "Mượn";
            dt1.value = pmhs.Where(t => t.trangthai == 1 || t.trangthai == 2).Count();
            ls.Add(dt1);


            DataOut dt3 = new DataOut();

            dt3.name  = "Di chuyển";
            dt3.value = pmhs.Where(t => t.trangthai == 4 || t.trangthai == 5).Count();
            ls.Add(dt3);


            DataOut dt5 = new DataOut();

            dt5.name  = "Sao lục";
            dt5.value = pmhs.Where(t => t.trangthai == 6 || t.trangthai == 7).Count();
            ls.Add(dt5);



            return(Ok(ls));
        }
        public IHttpActionResult PhanLoaiHoSo()
        {
            List <DataOut> ls  = new List <DataOut>();
            var            lhs = db.tblDanhmucs.Where(t => t.Maloai == "LHS").AsNoTracking();

            foreach (var item in lhs)
            {
                var hs = db.tblDoiTuong_HoSo.Where(t => t.MaLoaiHoSo == item.Ma).AsNoTracking().Count();
                if (hs > 0)
                {
                    DataOut loaihs = new DataOut();
                    loaihs.name     = item.Viettat;
                    loaihs.value    = hs;
                    loaihs.fullname = item.Ten;
                    ls.Add(loaihs);
                }
            }
            return(Ok(ls));
        }
Beispiel #10
0
        public virtual void Shutdown(IEvolutionState state)
        {
            // prevent me from hitting this multiple times
            lock (_shutDownLock)
            {
                if (ShuttingDown)
                {
                    return;
                }

                ShuttingDown = true;
            }

            // don't want to miss any of these so we'll wrap them individually
            try
            {
                // BRS: TODO : Not sure if shutdown status was intended here?
                DataOut.Write((byte)SlaveEvaluationType.Shutdown);
            }
            catch (Exception) { } // exception, not IOException, because JZLib throws some array exceptions
            try { DataOut.Flush(); }
            catch (Exception) { }
            try { DataOut.Close(); }
            catch (Exception) { }
            try { DataIn.Close(); }
            catch (Exception) { }
            try { EvalSocket.Close(); }
            catch (IOException) { }

            State.Output.SystemMessage(ToString() + " Slave is shutting down....");
            SlaveMonitor.UnregisterSlave(this); // unregister me BEFORE I reschedule my jobs
            RescheduleJobs(State);
            lock (_jobs)
            {
                // notify my threads now that I've closed stuff in case they're still waiting
                SlaveMonitor.NotifyMonitor(_jobs);
                Reader.Interrupt(); // not important right now but...
                Writer.Interrupt(); // very important that we be INSIDE the jobs synchronization here so the writer doesn't try to wait on the monitor again.
            }
            State.Output.SystemMessage(ToString() + " Slave exits....");
        }
Beispiel #11
0
 /// <summary>
 /// Platform-specific subclasses can call this to trigger the DataOut event
 /// </summary>
 /// <param name="DataBytes">Data sent</param>
 protected void TriggerDataOut(Queue <byte> DataBytes)
 {
     DataOut?.Invoke(this, DataBytes);
 }
Beispiel #12
0
 public byte[] GetByte(DataOut dataOut)
 {
     return(ConvertHelper.ObjectToByte(dataOut));
 }
Beispiel #13
0
        public virtual bool WriteLoop()
        {
            IJob job;

            try
            {
                lock (_jobs)
                {
                    // check for an unsent job
                    if ((job = OldestUnsentJob()) == null)
                    // automatically marks as sent
                    {
                        // failed -- wait and drop out of the loop and come in again
                        Debug("" + ThreadClass.Current().Name + "Waiting for a job to send");
                        SlaveMonitor.WaitOnMonitor(_jobs);
                    }
                }
                if (job != null)
                // we got a job inside our synchronized wait
                {
                    // send the job
                    Debug("" + ThreadClass.Current().Name + "Sending Job");
                    if (job.Type == SlaveEvaluationType.Simple)
                    {
                        // Tell the server we're evaluating a SimpleProblemForm
                        DataOut.Write((byte)SlaveEvaluationType.Simple);
                    }
                    else
                    {
                        // Tell the server we're evaluating a IGroupedProblem
                        DataOut.Write((byte)SlaveEvaluationType.Grouped);

                        // Tell the server whether to count victories only or not.
                        DataOut.Write(job.CountVictoriesOnly);
                    }

                    // transmit number of individuals
                    DataOut.Write(job.Inds.Length);

                    // Transmit the subpops to the slave
                    foreach (var t in job.Subpops)
                    {
                        DataOut.Write(t);
                    }

                    Debug("Starting to transmit individuals");

                    // Transmit the individuals to the server for evaluation...
                    for (var i = 0; i < job.Inds.Length; i++)
                    {
                        job.Inds[i].WriteIndividual(State, DataOut);
                        DataOut.Write(job.UpdateFitness[i]);
                    }
                    DataOut.Flush();
                }
            }
            catch (Exception)
            {
                Shutdown(State); return(false);
            }
            return(true);
        }
Beispiel #14
0
        public void Balance_Simpay(long providerID, decimal balance)
        {
            Helpers.Connection.sConnectionStringDatabase = ConfigurationManager.ConnectionStrings["sConnectionString_SystemWarning"].ConnectionString;
            WarningLibrary.SystemWarning sw = new WarningLibrary.SystemWarning();

            //list chua KQ check Rules
            List <LOGSEND> result = sw.Balance_Simpay(providerID, balance);
            //dataset chua Logsend
            DataSet dsLogSend = new DataSet();
            //bien thong tin message
            Int64   intLOGSEND_AUTOID  = 0;
            Int64   intRULE_AUTOID     = 0;
            Int64   intACTION_AUTOID   = 0;
            Int64   intUSERSEND_AUTOID = 0;
            Boolean blExist            = false;

            //bien thoi gian
            DateTime dtNow;
            DateTime dtRULE_CREATEDATE;
            TimeSpan tsDiff;
            Int64    intDiff;
            //config dang Giay
            Int64 intInterval = Convert.ToInt64(ConfigurationManager.AppSettings["interval"]);

            //kiem tra trung message
            if (result.Count() > 0)
            {
                //kiem tra tung message
                foreach (LOGSEND log in result)
                {
                    dsLogSend.Clear();
                    Helpers.Connection.sConnectionStringDatabase = ConfigurationManager.ConnectionStrings["sConnectionString_SystemWarning"].ConnectionString;
                    dsLogSend = DataOut.SW_LOGSEND_Select_All();

                    //neu dsLogSend co message - set tung message trong Logsend
                    if (dsLogSend.Tables[0].Rows.Count > 0)
                    {
                        blExist = false;
                        //kiem tra ton tai message
                        for (int i = 0; i < dsLogSend.Tables[0].Rows.Count; i++)
                        {
                            //lay thong tin message
                            intLOGSEND_AUTOID  = Convert.ToInt64(dsLogSend.Tables[0].Rows[i][LOGSEND.COLUMN_LOGSEND_AUTOID].ToString().Trim());
                            intRULE_AUTOID     = Convert.ToInt64(dsLogSend.Tables[0].Rows[i][LOGSEND.COLUMN_RULE_AUTOID].ToString().Trim());
                            intACTION_AUTOID   = Convert.ToInt64(dsLogSend.Tables[0].Rows[i][LOGSEND.COLUMN_ACTION_AUTOID].ToString().Trim());
                            intUSERSEND_AUTOID = Convert.ToInt64(dsLogSend.Tables[0].Rows[i][LOGSEND.COLUMN_USERSEND_AUTOID].ToString().Trim());
                            //truong hop ton tai message (cung [RULE_AUTOID], [ACTION_AUTOID], [USERSEND_AUTOID])
                            if (log.RULE_AUTOID == intRULE_AUTOID && log.ACTION_AUTOID == intACTION_AUTOID && log.USERSEND_AUTOID == intUSERSEND_AUTOID)
                            {
                                blExist = true;
                                break;
                            }
                            else
                            {
                                blExist = false;
                            }
                        }
                        //truong hop ton tai message
                        if (blExist)
                        {
                            dtNow             = DateTime.Now;
                            dtRULE_CREATEDATE = Convert.ToDateTime(DataOut.SW_LOGSEND_SelectByID(intLOGSEND_AUTOID).Tables[0].Rows[0][LOGSEND.COLUMN_RULE_CREATEDATE].ToString().Trim());
                            tsDiff            = dtNow - dtRULE_CREATEDATE;
                            intDiff           = (tsDiff.Days * 24 * 60 * 60) + (tsDiff.Hours * 60 * 60) + (tsDiff.Minutes * 60) + tsDiff.Seconds;

                            //truong hop <= config
                            if (intDiff <= intInterval)
                            {
                                //cap nhat thoi gian message
                                //DataIn.SW_LOGSEND_UpdateByID(intLOGSEND_AUTOID);
                            }
                            else
                            {
                                //cap nhat thoi gian message
                                DataIn.SW_LOGSEND_UpdateByID(intLOGSEND_AUTOID);
                                //thuc hien gui
                                Balance_Simpay_Insert_Send(log, balance);
                            }
                        }
                        //truong hop khong ton tai message
                        else
                        {
                            //insert Logsend
                            DataIn.SW_LOGSEND_Insert(log);
                            //thuc hien gui
                            Balance_Simpay_Insert_Send(log, balance);
                        }
                    }
                    //neu dsLogSend khong co message - insert va gui luon
                    else
                    {
                        //insert Logsend
                        DataIn.SW_LOGSEND_Insert(log);
                        //thuc hien gui
                        Balance_Simpay_Insert_Send(log, balance);
                    }
                }
            }
        }
Beispiel #15
0
        private void Balance_Simpay_Insert_Send(LOGSEND log, decimal balance)
        {
            //thoi gian he thong
            string strNow      = string.Format("{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now);
            string strNowTitle = string.Format("{0:yyyy-MM-dd}", DateTime.Now);

            //lay title Email la ruleName
            Helpers.Connection.sConnectionStringDatabase = ConfigurationManager.ConnectionStrings["sConnectionString_SystemWarning"].ConnectionString;
            string titleEmail = DataOut.SW_RULES_SelectByID(log.RULE_AUTOID).Tables[0].Rows[0][RULE.COLUMN_RULE_NAME].ToString().Trim();

            titleEmail += " " + strNowTitle;

            //lay noi dung gui la gia tri cua cac conditions
            string  strContentSend = null;
            DataSet dsContent      = new DataSet();

            dsContent = DataOut.SW_RULEDETAIL_BALANCESSIMPAY_All(log.RULE_AUTOID);

            for (int i = 0; i < dsContent.Tables[0].Rows.Count; i++)
            {
                //chi lay cac conditions da Active
                if (Convert.ToBoolean(dsContent.Tables[0].Rows[i][RULEDETAIL.COLUMN_RULEDETAIL_ISACTIVE].ToString().Trim()) == true)
                {
                    //truong hop condition "so du tai khoan"
                    if (Convert.ToInt64(dsContent.Tables[0].Rows[i][RULEDETAIL.COLUMN_CONDITION_AUTOID].ToString().Trim()) == 3)
                    {
                        strContentSend += (dsContent.Tables[0].Rows[i]["CONDITION_NAME"].ToString().Trim()) + ": " + balance.ToString("#,##0 VNĐ") + " " + (dsContent.Tables[0].Rows[i]["KEY_NOTE2"].ToString().Trim())
                                          + " " + Convert.ToDecimal(dsContent.Tables[0].Rows[i]["KEYVALUE"].ToString().Trim()).ToString("#,##0 VNĐ") + "; ";
                    }
                    //truong hop condition "nha cung cap"
                    else if (Convert.ToInt64(dsContent.Tables[0].Rows[i][RULEDETAIL.COLUMN_CONDITION_AUTOID].ToString().Trim()) == 2)
                    {
                        strContentSend += (dsContent.Tables[0].Rows[i]["CONDITION_NAME"].ToString().Trim()) + ": " + (dsContent.Tables[0].Rows[i]["KEYVALUE"].ToString().Trim()) + "; ";
                    }
                    //truong hop condition "thoi diem"
                    else if (Convert.ToInt64(dsContent.Tables[0].Rows[i][RULEDETAIL.COLUMN_CONDITION_AUTOID].ToString().Trim()) == 4)
                    {
                        //truong hop la ngay co dinh
                        if (Convert.ToInt64(dsContent.Tables[0].Rows[i][RULEDETAIL.COLUMN_RULEDETAIL_TYPE].ToString().Trim()) == 3)
                        {
                            strContentSend += (dsContent.Tables[0].Rows[i]["CONDITION_NAME"].ToString().Trim()) + ": " + (dsContent.Tables[0].Rows[i]["KEYVALUE"].ToString().Trim()) + "; ";
                        }
                        //truong hop chon thu
                        else
                        {
                            strContentSend += (dsContent.Tables[0].Rows[i]["CONDITION_NAME"].ToString().Trim()) + ": " + (dsContent.Tables[0].Rows[i]["CONDITIONDETAIL_VALUE"].ToString().Trim()) + "; ";
                        }
                    }
                }
            }


            //send message
            Helpers.Connection.sConnectionStringDatabase = ConfigurationManager.ConnectionStrings["sConnectionString_Crm"].ConnectionString;
            //SMS
            if (log.ACTION_AUTOID == 1)
            {
                //insert vao DB SMS
                Librarys.CRM.TRANSACTION trans = new Librarys.CRM.TRANSACTION();
                trans.RECEIVEACCOUNT = log.USERSEND_HANDPHONE;
                trans.FROMACCOUNT    = "";
                trans.LASTUPDATE     = DateTime.Now;
                trans.CODE           = 1;
                trans.STATUS         = 1;
                trans.VALUE          = Protect.RemoveVNString(strContentSend).Trim();
                trans.TRANSTYPECODE  = 4;
                trans.RECEIVEID      = DateTime.Now.Ticks.ToString();
                trans.COMSIMID       = 0;
                DataIn.CRM_TRANSACTION_InsertUpdate(trans);
            }
            //EMAIL
            else if (log.ACTION_AUTOID == 2)
            {
                //insert vao DB EMAIL
                Librarys.CRM.TRANSACTION trans = new Librarys.CRM.TRANSACTION();
                trans.RECEIVEACCOUNT = log.USERSEND_EMAIL;
                trans.FROMACCOUNT    = "*****@*****.**";
                trans.LASTUPDATE     = DateTime.Now;
                trans.CODE           = 1;
                trans.STATUS         = 1;
                trans.VALUE          = string.Format("{0}##{1}", titleEmail, strNow + "; " + strContentSend);
                trans.TRANSTYPECODE  = 10;
                trans.RECEIVEID      = "<" + Guid.NewGuid().ToString() + "@simpay.com.vn>";
                trans.COMSIMID       = 0;
                DataIn.CRM_TRANSACTION_InsertUpdate(trans);
            }
        }