コード例 #1
0
ファイル: RiderMessage.cs プロジェクト: Cycli/Cycli
        public static RiderMessage[] GetMessages(string userId,string raceId)
        {
            List<RiderMessage> messages = new List<RiderMessage>();
              SQLiteDatabase db = new SQLiteDatabase();
              string sql = "select m.RaceId, u.userid,u.username, m.message, m.SendTime " +
                    "from cycli_rider_messages m, cycli_riders u " +
                    "where m.SenderId = u.UserId and " +
                    "m.RaceId = @r " +
                      "order by m.SendTime";

              DataTable dt = db.GetDataTable(sql,"@r",raceId, "@t", "fromTime");
              db.Close();
              foreach (DataRow dr in dt.Rows)
              {
            RiderMessage message = new RiderMessage();
            message.SenderId = (string)dr["userid"];
            message.Sender = (string)dr["username"];
            message.RaceId = (string)dr["RaceId"];
            message.Message = (string)dr["Message"];
            message.SendTime = (long)(int)dr["SendTime"];
            messages.Add(message);
              }

              return messages.ToArray();
        }
コード例 #2
0
ファイル: RiderMessage.cs プロジェクト: Cycli/Cycli
        public static void SendMessage(string userId, string raceId, string message)
        {
            UserRider sender = UserRider.Load(userId);
              Race race = Race.Load(raceId);

              RiderMessage rm = new RiderMessage
              {
            Sender = sender.UserName,
            SenderId = userId,
            RaceId = raceId,
            Message = message,
            SendTime = Utilities.DbTime.ToDbSecs(DateTime.UtcNow)
              };
              // Save to db
              rm.Save();
              RiderMessage[] rms = new RiderMessage[] { rm };
              CycliManager.Instance.SendRiderMessages(race, rms);
        }
コード例 #3
0
ファイル: CycliManager.cs プロジェクト: Cycli/Cycli
        public void SendRiderMessages(Race race, RiderMessage[] rms)
        {
            try
              {
            _ConnectionProcessLock.EnterReadLock();
            // Is the user connection
            foreach (Race.Participant p in race.UserParticipants)
            {
              string connectionId;

              if (_connections.TryGetValue(p.UserId, out connectionId))
              {
            Context.Clients.Client(connectionId).receiveMessages(rms);
              }
            }
              }
              finally
              {
            _ConnectionProcessLock.ExitReadLock();
              }
        }