Exemple #1
0
        /// <summary>
        /// Transfer MessageEntity object.
        /// </summary>
        /// <param name="transferMsg">the MessageEntity.</param>
        public void Call(ITransferMessage transferMsg)
        {
            var messageEntity = transferMsg as MessageEntity;

            #region records the logcontent entity

            var logger = loggerPoolFactory.GetLoggerPool(messageEntity.ServiceType.ServiceType);

            logger.Log(messageEntity.User, new LogContentEntity()
            {
                Class   = messageEntity.ClassName,
                Method  = messageEntity.MethodName,
                Message = messageEntity.MsgContent,
                Level   = messageEntity.LogLevel
            });

            #endregion

            //notify the clients
            Observers.CommonCallbackAction(messageEntity.ServiceType, (clientCallback) =>
            {
                clientCallback.Notify(messageEntity);
            });
        }
        /// <summary>
        /// Transfer ProgressInfoMessage object.
        /// </summary>
        /// <param name="transferMsg">the ProgressInfoMessage.</param>
        public void Call(ITransferMessage transferMsg)
        {
            var msg           = transferMsg as ProgressInfoMessage;
            var serviceType   = msg.ServiceType;
            var total         = msg.Total;
            var totalType     = msg.TotalType;
            var sellerAccount = msg.User;
            var value         = msg.Value;

            switch (msg.CallbackMethodName)
            {
            case "SendTaskProgressTotal":
                progressInfoManager.SetTotal(serviceType, total, totalType);

                Observers.CommonCallbackAction(serviceType, (clientCallback) =>
                {
                    clientCallback.NotifyTaskProgressTotal(new ProgressSummary(0, total, totalType));
                });
                break;

            case "SendTaskProgressItemTotal":
                progressInfoManager.SetItemTotal(serviceType, sellerAccount, total);

                Observers.CommonCallbackAction(serviceType, (clientCallback) =>
                {
                    clientCallback.NotifyTaskProgressItemTotal(sellerAccount, total);
                });
                break;

            case "SendTaskProgressIncrease":
                progressInfoManager.SetItemValue(serviceType, sellerAccount, value);

                var progressInfoItem = progressInfoManager.GetUserProgressInfo(serviceType, sellerAccount);

                Observers.CommonCallbackAction(serviceType, (clientCallback) =>
                {
                    clientCallback.NotifyTaskProgressItemValueAndTotal(sellerAccount, new ProgressItem(progressInfoItem.Value, progressInfoItem.Total));
                });
                break;

            case "ForceFinish":
                progressInfoManager.SetItemValueFinish(serviceType, sellerAccount);

                Observers.CommonCallbackAction(serviceType, (clientCallback) =>
                {
                    clientCallback.NotifyTaskProgressForceFinish(sellerAccount);
                });

                break;

            case "FinishAll":
                progressInfoManager.Clear(serviceType);

                Observers.CommonCallbackAction(serviceType, (clientCallback) =>
                {
                    clientCallback.NotifyTaskProgressFinishAll();
                });
                break;

            default:
                break;
            }
        }