コード例 #1
0
        public async Task ProcessStreamItem(StreamSubmarket submarket)
        {
            StreamSubmarket currentSubmarket = null;
            bool            found            = _submarkets.TryGetValue(submarket.Id, out currentSubmarket);

            switch (submarket.Operation)
            {
            case StreamOperation.Insert:
            case StreamOperation.Update:
                if (!found || currentSubmarket.Compare(submarket) != 0)
                {
                    if (_persistenceLayer != null)
                    {
                        await _persistenceLayer.ProcessStreamItem(submarket);
                    }
                }
                _submarkets[submarket.Id] = submarket;
                break;

            case StreamOperation.Delete:
                if (found)
                {
                    if (_persistenceLayer != null)
                    {
                        await _persistenceLayer.ProcessStreamItem(submarket);
                    }
                    _submarkets.TryRemove(submarket.Id, out currentSubmarket);
                }
                break;

            default:
                break;
            }
        }
コード例 #2
0
        private async Task InsertSubmarket(StreamSubmarket submarket)
        {
            var CallSPCmd = new SqlCommand();

            await DoSqlCmd(CallSPCmd, () =>
            {
                var Id                = int.Parse(submarket.Id.Split('-')[1]);
                var MarketId          = int.Parse(submarket.MarketId.Split(':')[1]);
                CallSPCmd.CommandText = "exec InsertSubmarket @Id, @MarketId, @Name, @Timestamp";
                CallSPCmd.Parameters.Add("@Id", SqlDbType.Int).Value             = Id;
                CallSPCmd.Parameters.Add("@MarketId", SqlDbType.Int).Value       = MarketId;
                CallSPCmd.Parameters.Add("@Name", SqlDbType.NVarChar).Value      = submarket.Name;
                CallSPCmd.Parameters.Add("@Timestamp", SqlDbType.DateTime).Value = submarket.Date;
            });
        }
コード例 #3
0
 public virtual Task SubmarketUpdated(StreamSubmarket streamItem)
 {
     return(Task.CompletedTask);
 }
コード例 #4
0
 public override Task SubmarketUpdated(StreamSubmarket streamItem)
 {
     return(_dataLayer.ProcessStreamItem(streamItem));
 }