コード例 #1
0
        public void TestSubscriberForUpdate()
        {
            SubscribeManager.Register <EntityPersistentSubject>(new EntitySubscriber());

            using (var db = new DbContext())
            {
                var order = db.Orders.FirstOrDefault();
                order.ShipName = "1";
                db.Orders.Update(order);
            }
        }
コード例 #2
0
        public void TestSubscriberForUpdateLinq()
        {
            SubscribeManager.Register <EntityPersistentSubject>(new EntitySubscriber());

            using (var db = new DbContext())
            {
                db.Orders.Update(new Orders {
                    ShipName = "1"
                }, s => s.ShipName == "1");
            }
        }
コード例 #3
0
        public ActionResult AddSubscribe(string ccid)
        {
            var cci = Convert.ToInt32(ccid);
            Comic_chapterManager cm = new Comic_chapterManager();
            var c  = cm.FindByid(cci);
            var ui = Convert.ToInt32(Session["User_id"].ToString());
            SubscribeManager sm = new SubscribeManager();

            sm.AddSubscribe(cci, ui);
            return(RedirectToAction("Detail", "Comic", new { cid = c.Comic_id }));
        }
コード例 #4
0
        private void Unsubscribe(string[] channels, string[] channelGroups)
        {
            if ((channels == null || channels.Length == 0) && (channelGroups == null || channelGroups.Length == 0))
            {
                throw new ArgumentException("Either Channel Or Channel Group or Both should be provided.");
            }

            string channel      = (channels != null) ? string.Join(",", channels.OrderBy(x => x).ToArray()) : "";
            string channelGroup = (channelGroups != null) ? string.Join(",", channelGroups.OrderBy(x => x).ToArray()) : "";

            LoggingMethod.WriteToLog(string.Format("DateTime {0}, requested unsubscribe for channel(s)={1}", DateTime.Now.ToString(), channel), config.LogVerbosity);
            Task.Factory.StartNew(() =>
            {
                SubscribeManager manager = new SubscribeManager(config, jsonLibrary, unit);
                manager.MultiChannelUnSubscribeInit <T>(PNOperationType.PNUnsubscribeOperation, channel, channelGroup);
            }, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default);
        }
コード例 #5
0
        private void Subscribe(string[] channels, string[] channelGroups)
        {
            if ((channels == null || channels.Length == 0) && (channelGroups == null || channelGroups.Length == 0))
            {
                throw new ArgumentException("Either Channel Or Channel Group or Both should be provided.");
            }

            string channel      = (channels != null) ? string.Join(",", channels.OrderBy(x => x).ToArray()) : "";
            string channelGroup = (channelGroups != null) ? string.Join(",", channelGroups.OrderBy(x => x).ToArray()) : "";

            PNPlatform.Print(config, pubnubLog);

            LoggingMethod.WriteToLog(pubnubLog, string.Format("DateTime {0}, requested subscribe for channel(s)={1} and channel group(s)={2}", DateTime.Now.ToString(CultureInfo.InvariantCulture), channel, channelGroup), config.LogVerbosity);

            string[] arrayChannel      = new string[] { };
            string[] arrayChannelGroup = new string[] { };

            if (!string.IsNullOrEmpty(channel) && channel.Trim().Length > 0)
            {
                arrayChannel = channel.Trim().Split(',');
            }

            if (!string.IsNullOrEmpty(channelGroup) && channelGroup.Trim().Length > 0)
            {
                arrayChannelGroup = channelGroup.Trim().Split(',');
            }

            Dictionary <string, string> initialSubscribeUrlParams = new Dictionary <string, string>();

            if (this.subscribeTimetoken >= 0)
            {
                initialSubscribeUrlParams.Add("tt", this.subscribeTimetoken.ToString());
            }
            if (!string.IsNullOrEmpty(config.FilterExpression) && config.FilterExpression.Trim().Length > 0)
            {
                initialSubscribeUrlParams.Add("filter-expr", new UriUtil().EncodeUriComponent(config.FilterExpression, PNOperationType.PNSubscribeOperation, false, false, false));
            }


            Task.Factory.StartNew(() =>
            {
                manager = new SubscribeManager(config, jsonLibrary, unit, pubnubLog, pubnubTelemetryMgr);
                manager.CurrentPubnubInstance(PubnubInstance);
                manager.MultiChannelSubscribeInit <T>(PNOperationType.PNSubscribeOperation, channels, channelGroups, initialSubscribeUrlParams);
            }, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default);
        }
コード例 #6
0
        private void Subscribe(string[] channels, string[] channelGroups, Dictionary <string, object> externalQueryParam)
        {
            if ((channels == null || channels.Length == 0) && (channelGroups == null || channelGroups.Length == 0))
            {
                throw new ArgumentException("Either Channel Or Channel Group or Both should be provided.");
            }

            string channel      = (channels != null) ? string.Join(",", channels.OrderBy(x => x).ToArray()) : "";
            string channelGroup = (channelGroups != null) ? string.Join(",", channelGroups.OrderBy(x => x).ToArray()) : "";

            PNPlatform.Print(config, pubnubLog);

            LoggingMethod.WriteToLog(pubnubLog, string.Format("DateTime {0}, requested subscribe for channel(s)={1} and channel group(s)={2}", DateTime.Now.ToString(CultureInfo.InvariantCulture), channel, channelGroup), config.LogVerbosity);

            Dictionary <string, string> initialSubscribeUrlParams = new Dictionary <string, string>();

            if (this.subscribeTimetoken >= 0)
            {
                initialSubscribeUrlParams.Add("tt", this.subscribeTimetoken.ToString());
            }
            if (!string.IsNullOrEmpty(config.FilterExpression) && config.FilterExpression.Trim().Length > 0)
            {
                initialSubscribeUrlParams.Add("filter-expr", UriUtil.EncodeUriComponent(false, config.FilterExpression, PNOperationType.PNSubscribeOperation, false, false, false));
            }

#if NETFX_CORE || WINDOWS_UWP || UAP || NETSTANDARD
            Task.Factory.StartNew(() =>
            {
                manager = new SubscribeManager(config, jsonLibrary, unit, pubnubLog, pubnubTelemetryMgr, PubnubInstance);
                manager.CurrentPubnubInstance(PubnubInstance);
                manager.MultiChannelSubscribeInit <T>(PNOperationType.PNSubscribeOperation, channels, channelGroups, initialSubscribeUrlParams, externalQueryParam);
            }, CancellationToken.None, TaskCreationOptions.PreferFairness, TaskScheduler.Default).ConfigureAwait(false);
#else
            new Thread(() =>
            {
                manager = new SubscribeManager(config, jsonLibrary, unit, pubnubLog, pubnubTelemetryMgr, PubnubInstance);
                manager.CurrentPubnubInstance(PubnubInstance);
                manager.MultiChannelSubscribeInit <T>(PNOperationType.PNSubscribeOperation, channels, channelGroups, initialSubscribeUrlParams, externalQueryParam);
            })
            {
                IsBackground = true
            }.Start();
#endif
        }
コード例 #7
0
        public AgilorResponseData poll(dynamic obj)
        {
            AgilorResponseData response = new AgilorResponseData();

            if (!checkACIObject())
            {
                response.responseMessage = "Get All Device Names And Status ERROR: ACI IS NULL, Server Need Be Restart!";
                response.responseCode    = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_AGILOR_ACI_IS_NULL;
                return(response);
            }

            try
            {
                string subscriberGuid = obj.guid.ToObject <string>();
                if (DateTime.Now.Subtract(SubscribeManager.subscribers[subscriberGuid].lastPollTime).Duration().TotalSeconds > SubscribeManager.subscribers[subscriberGuid].timeout)
                {
                    // 订阅过期
                    response.responseMessage = "Sorry, Your Subscribe Is Timeout!";
                    response.responseCode    = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_SUBSCRIBE_TIMEOUT_ERROR;
                    return(response);
                }

                bool isRefresh = obj.isRefresh.ToObject <bool>();
                //response.responseBody = SubscribeManager.getSubscribeTargetsValue(subscriberGuid, isRefresh);
                var result = SubscribeManager.getSubscribeTargetsValue(subscriberGuid, isRefresh);
                response.responseBody = new Dictionary <string, object>
                {
                    { "SubscribeTargetValues", result },
                    { "Timeout", SubscribeManager.subscribers[subscriberGuid].timeout }
                };

                response.responseMessage = "Get Subscribe Targets Value Success! Targets Count:" + result.Count.ToString();
                response.responseCode    = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_NORMAL;
            }
            catch (Exception ex)
            {
                response.responseMessage = ex.ToString();
                response.responseCode    = (int)AgilorResponseData.RESPONSE_CODE.RESPONSE_UNKNOWN_ERROR;
            }

            return(response);
        }
コード例 #8
0
        public IActionResult hasSubscribed([FromForm] SubscribeDTO s)
        {
            SubscribeManager subscribeManager = new SubscribeManager();
            var flag = subscribeManager.hasSubscribed(s);

            if (flag == true)
            {
                return(Ok(new JsonCreate()
                {
                    message = Utils.ConstMessage.GET_SUCCESS, data = true
                }));
            }
            else
            {
                return(Ok(new JsonCreate()
                {
                    message = Utils.ConstMessage.GET_SUCCESS, data = false
                }));
            }
        }
コード例 #9
0
        public IActionResult getSubscribe(String id)
        {
            SubscribeManager subscribeManager = new SubscribeManager();
            var flag = subscribeManager.getSubscribeDTOs(id);

            if (flag != null && flag.Count != 0)
            {
                return(Ok(new JsonCreate()
                {
                    message = Utils.ConstMessage.GET_SUCCESS, data = flag
                }));
            }
            else
            {
                return(Ok(new JsonCreate()
                {
                    message = Utils.ConstMessage.NOT_FOUND, data = flag
                }));
            }
        }
コード例 #10
0
        public IActionResult insertSubsribe([FromForm] SubscribeDTO subscribeDTO)
        {
            SubscribeManager subscribeManager = new SubscribeManager();
            bool             flag             = subscribeManager.insertSubsribe(subscribeDTO);

            if (flag == true)
            {
                return(Ok(new JsonCreate()
                {
                    message = Utils.ConstMessage.INSERT_SUCCESS, data = true
                }));
            }
            else
            {
                return(Ok(new JsonCreate()
                {
                    message = Utils.ConstMessage.CONFILICT, data = false
                }));
            }
        }
コード例 #11
0
        public IActionResult deleteSubscribe([FromForm] SubscribeDTO s)
        {
            SubscribeManager subscribeManager = new SubscribeManager();
            var flag = subscribeManager.deleteSubscribe(s);

            if (flag == true)
            {
                return(Ok(new JsonCreate()
                {
                    message = Utils.ConstMessage.UPDATE_SUCCESS, data = true
                }));
            }
            else
            {
                return(Ok(new JsonCreate()
                {
                    message = Utils.ConstMessage.UPDATE_FAIL, data = false
                }));
            }
        }
コード例 #12
0
        public void TestSubscriberForBatch()
        {
            SubscribeManager.Register <EntityPersistentSubject>(new EntitySubscriber());

            using (var db = new DbContext())
            {
                var list = new List <Depts>();

                for (var i = 0; i < 3; i++)
                {
                    var d = Depts.New();
                    d.DeptID   = i + 50;
                    d.DeptName = "a" + i;
                    list.Add(d);
                }

                list[1].DeptCode = "test";

                db.Depts.Batch(list, (u, s) => u.Update(s));
            }
        }
コード例 #13
0
        private void UnsubscribeAll()
        {
#if NETFX_CORE || WINDOWS_UWP || UAP || NETSTANDARD
            Task.Factory.StartNew(() =>
            {
                SubscribeManager manager = new SubscribeManager(config, jsonLibrary, unit, pubnubLog, pubnubTelemetryMgr, PubnubInstance);
                manager.CurrentPubnubInstance(PubnubInstance);
                manager.MultiChannelUnSubscribeAll <T>(PNOperationType.PNUnsubscribeOperation, this.queryParam);
            }, CancellationToken.None, TaskCreationOptions.PreferFairness, TaskScheduler.Default).ConfigureAwait(false);
#else
            new Thread(() =>
            {
                SubscribeManager manager = new SubscribeManager(config, jsonLibrary, unit, pubnubLog, pubnubTelemetryMgr, PubnubInstance);
                manager.CurrentPubnubInstance(PubnubInstance);
                manager.MultiChannelUnSubscribeAll <T>(PNOperationType.PNUnsubscribeOperation, this.queryParam);
            })
            {
                IsBackground = true
            }.Start();
#endif
        }
コード例 #14
0
 public static void RaiseEvent(IEnumerable <IEntity> entities, EntityPersistentOperater operType, EntityPersistentEventType eventType)
 {
     SubscribeManager.Publish <EntityPersistentSubject>(IsQueue(eventType), new EntitiesArgs(entities, operType, eventType));
 }
コード例 #15
0
 public SubscribeController()
 {
     _manager             = new SubscribeManager(Repository, UnitOfWork);
     _sendQuestionManager = new SendQuestionManager(new NHibernateRepository <UserQuestion>(UnitOfWork), UnitOfWork);
     _questionManager     = new QuestionManager(new NHibernateRepository <Question>(UnitOfWork), UnitOfWork);
 }
コード例 #16
0
        public void Initialize()
        {
            _mockRepository = new Mock <IRepository <Question> >();
            _mockUnitOfWork = new Mock <IUnitOfWork>();
            _manager        = new QuestionManager(_mockRepository.Object, _mockUnitOfWork.Object);


            var unitOfWorkAlternative = new Mock <IUnitOfWork>();

            _mockAlternative    = new Mock <IRepository <Alternative> >();
            _alternativeManager = new AlternativeManager(_mockAlternative.Object, unitOfWorkAlternative.Object);

            var unitOfWorkSendQuestion = new Mock <IUnitOfWork>();

            _mockUserQuestion    = new Mock <IRepository <UserQuestion> >();
            _sendQuestionManager = new SendQuestionManager(_mockUserQuestion.Object, unitOfWorkSendQuestion.Object);

            _mockSubscribe = new Mock <IRepository <Subscription> >();
            var unitOfWorkSubscribe = new Mock <IUnitOfWork>();

            _subscribeManager = new SubscribeManager(_mockSubscribe.Object, _mockUnitOfWork.Object);

            _teacher = new User()
            {
                Id = 1, IsTeacher = true, Name = "Professor"
            };
            _course = new Course()
            {
                Description = "Testes",
                Name        = "Matematica",
                Id          = 1,
                Created     = new DateTime(2016, 01, 01),
                Teacher     = _teacher
            };

            _question = new Question
            {
                Id          = 1,
                Course      = _course,
                Description = "Quanto é 1 + 1"
            };

            _alternatives = new List <Alternative>();
            for (int i = 0; i < 10; i++)
            {
                _alternatives.Add(new Alternative()
                {
                    Question    = _question,
                    Description = " teste numero " + 1,
                    IsCorrect   = false,
                    Order       = i
                });
            }

            _alternatives.Add(new Alternative()
            {
                Question    = _question,
                Description = " teste numero " + _alternatives.Count,
                IsCorrect   = true,
                Order       = _alternatives.Count
            });
        }
コード例 #17
0
 public ChannelController(ChannelManager channel, UserManager <User> userManager, SubscribeManager sub)
 {
     _userManager  = userManager;
     _channel      = channel;
     _subscription = sub;
 }
コード例 #18
0
 public void AddSubscribe <T>(ISubscriber subscriber) where T : ISubject
 {
     SubscribeManager.Register <T>(subscriber);
 }
コード例 #19
0
 public static void RaiseEvent(object[] arguments, EntityPersistentEventType eventType)
 {
     SubscribeManager.Publish <EntityPersistentSubject>(arguments, eventType);
 }
コード例 #20
0
 public void AddSubscribeManager(SubscribeManager sm)
 {
     subscribeManagers.Add(sm);
 }
コード例 #21
0
 // サブスクライバをセットする関数
 public void SetSubscriber(SubscribeManager sm)
 {
     Subscribers.Add(sm);
 }
コード例 #22
0
 public static void RaiseEvent(IEntity entity, EntityPersistentEventType eventType)
 {
     SubscribeManager.Publish <EntityPersistentSubject>(entity, eventType);
 }
コード例 #23
0
 public static void RaiseEvent <TEntity>(EntityPersistentEventType eventType)
 {
     SubscribeManager.Publish <EntityPersistentSubject>(IsQueue(eventType), new EntityEventTypeArgs(typeof(TEntity), eventType));
 }
コード例 #24
0
 public GrpcServerService(DiscordSocketClient client, SubscribeManager subscribeManager)
 {
     _client           = client;
     _subscribeManager = subscribeManager;
 }
コード例 #25
0
 public static void RaiseEvent(IEntity entity, EntityPersistentEventType eventType)
 {
     SubscribeManager.Publish <EntityPersistentSubject>(IsQueue(eventType), new EntityEventArgs(entity, eventType));
 }
コード例 #26
0
ファイル: SubModule.cs プロジェクト: Zexuz/Steam-Betting
 public SubModule(SubscribeManager subscribeManager)
 {
     _subscribeManager = subscribeManager;
 }