예제 #1
0
        public CanvasBrushAction AddBrushAction(string aCanvasId, CanvasBrushAction aBrushData)
        {
            int transactionNumber;

            using (
                var redisConnection = new RedisConnection(_redisConfiguration.HostName, _redisConfiguration.Port,
                                                          password: _redisConfiguration.Password))
            {
                redisConnection.Open();
                var incTask = redisConnection.Hashes.Increment(0, string.Format("{0}{1}", TransactionPrefix, aCanvasId),
                                                               "transaction");
                transactionNumber = (int)incTask.Result;
            }

            aBrushData.Sequence = transactionNumber;
            var serializedData = JsonConvert.SerializeObject(aBrushData);

            using (
                var redisConnection = new RedisConnection(_redisConfiguration.HostName, _redisConfiguration.Port,
                                                          password: _redisConfiguration.Password))
            {
                redisConnection.Open();
                redisConnection.Lists.AddLast(0, string.Format("{0}{1}", ActionPrefix, aCanvasId), serializedData);
            }

            return(aBrushData);
        }
예제 #2
0
        public CanvasBrushAction AddBrushAction(string aCanvasId, CanvasBrushAction aBrushData)
        {
            if (!_canvasTransactions.ContainsKey(aCanvasId))
            {
                _canvasTransactions[aCanvasId] = 0;
            }

            var transactionNumber = /*_canvasTransactions[aCanvasId] =*/ _canvasTransactions[aCanvasId]++;

            if (!_canvasActions.ContainsKey(aCanvasId))
            {
                _canvasActions[aCanvasId] = new ConcurrentBag <CanvasBrushAction>();
            }

            aBrushData.Sequence = transactionNumber;
            _canvasActions[aCanvasId].Add(aBrushData);

            return(aBrushData);
        }
예제 #3
0
        public void SendDrawCommand(CanvasBrushAction brushData)
        {
            var canvasBrushAction = _canvasRoomService.AddBrushAction(GetCanvasIdFromQueryString(), brushData);

            Clients.Group(GetCanvasIdFromQueryString()).DrawCanvasBrushAction(canvasBrushAction);
        }
예제 #4
0
 public CanvasBrushAction AddBrushAction(string aCanvasId, CanvasBrushAction aBrushData)
 {
     return(_memStorage.AddBrushAction(aCanvasId, aBrushData));
 }