public override void Handle(object param)
            {
                this.mLogger.Debug("IN - {@Param}", param);
                var paramObj     = (ServerMessageServiceParam)param;
                var paramHandler = paramObj.Data as HandlerParameter;

                // Guard
                if (string.IsNullOrEmpty(paramHandler.RegisterName))
                {
                    this.mLogger.Warn("保存先レジスタ名が未設定です。");
                    return;
                }

                var dao_content = new ContentDao();
                var content     = dao_content.LoadContent(paramHandler.ContentId);

                // 取得したURLをキャッシュに格納
                var cacheEntryOptions = new MemoryCacheEntryOptions()
                                        .SetSlidingExpiration(TimeSpan.FromSeconds(30));

                mMemoryCache.Set(paramHandler.RegisterName,
                                 content,
                                 cacheEntryOptions);

                var workflowParam = new ResInvalidateContentParameter()
                {
                    ContentId    = paramHandler.ContentId,
                    RegisterName = paramHandler.RegisterName
                };

                mIntentManager.AddIntent(ServiceType.Workflow, "ACT_RESINVALIDATE_CONTENT", workflowParam);
                mLogger.Debug("OUT");
            }
Esempio n. 2
0
            public override void Handle(object param)
            {
                this.mLogger.Debug("IN - {@Param}", param);
                var paramObj     = (ServerMessageServiceParam)param;
                var paramHandler = paramObj.Data as HandlerParameter;

                var dao_content = new ContentDao();
                var content     = dao_content.LoadContent(paramHandler.ContentId);

                if (content == null)
                {
                    // Guard
                    // TODO: 例外をスローする
                }

                // すべてのオペレーションを処理する
                // オペレーションを追加したい場合は、下記に実装してください。
                foreach (var op in paramHandler.Operations)
                {
                    switch (op.OperationName)
                    {
                    case "Read":
                        this.mLogger.Debug("Readオペレーションを実行します");
                        dao_content.UpdateRead(paramHandler.ContentId);
                        var workflowParam = new ResInvalidateContentParameter()
                        {
                            ContentId    = paramHandler.ContentId,
                            RegisterName = ""
                        };
                        mIntentManager.AddIntent(ServiceType.Workflow, "ACT_RESINVALIDATE_CONTENT", workflowParam);
                        break;

                    default:
                        this.mLogger.Warn($"不明なオペレーション({@op.OperationName})のため実行しませんでした。");
                        break;
                    }
                }
                this.mLogger.Debug("OUT");
            }