public register_travel ToDataObj()
        {
            var userLogic = new UserLogic();

            var obj = new register_travel
            {
                tra_loc_id = StationId,
                usr_det_id = userLogic.GetUserIdByCardNo(CardId),
                reg_tra_timestamp = TimeStamp,
                reg_dat_typ_id = Type
            };

            return obj;
        }
        public static void ReadCallback(IAsyncResult ar)
        {
            var state = (StateObject)ar.AsyncState;
            var handler = state.WorkSocket;

            var bytesRead = handler.EndReceive(ar);

            if (bytesRead <= 0) return;

            using (var stream = new MemoryStream(state.Buffer))
            {
                stream.Position = 0;

                var jsonString = new StreamReader(stream).ReadToEnd();
                var dateTime = ConvertJsonStringToDateTime(jsonString);

                var obj = JsonHelper.DeserializeJson<DataStream>(jsonString, true);
                obj.TimeStamp = dateTime;

                try
                {
                    var userLogic = new UserLogic();
                    var balance = userLogic.GetBalanceByUserId(userLogic.GetUserIdByCardNo(obj.CardId));

                    if (balance >= 20)
                    {
                        new RegisterLogic().InsertTravel(obj);
                        SendStatus(handler, "OK");
                    }
                    else
                    {
                        SendStatus(handler, "FAIL");
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Uh oh, spaghettios: " + ex);
                }
            }
        }