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

                if (paramHandler.LabelId != null && paramHandler.LabelId.Length > 0)
                {
                    var categories = mCategoryDao.FindCategory(true, paramHandler.LabelId);

                    var cacheEntryOptions = new MemoryCacheEntryOptions();
                    mMemoryCache.Set(cacheKey,
                                     new CategoryListParam()
                    {
                        CategoryList = categories.ToArray()
                    },
                                     cacheEntryOptions);
                }
                else
                {
                    mLogger.Warn("カテゴリ一覧の取得ソースを指定してください。");
                    return;
                }

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

                switch (paramHandler.ModelType)
                {
                case "Content":
                    this.mLogger.Debug("データモデルタイプをContentとして処理を実行します");
                    var dao_content = new ContentDao();
                    var content     = (Content)paramHandler.Value;
                    dao_content.Update(content);
                    if (paramHandler.UpdateNotificationFlag)
                    {
                        mIntentManager.AddIntent(ServiceType.Workflow, "ACT_RESINVALIDATE_CONTENT", new ResInvalidateContentParameter {
                            ContentId = content.Id
                        });
                    }
                    break;

                default:
                    this.mLogger.Warn($"不明なオペレーション({@paramHandler.ModelType})のため実行しませんでした。");
                    break;
                }
                this.mLogger.Debug("OUT");
            }
            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");
            }
Example #4
0
        public void Handle(IpcMessage param)
        {
            Console.WriteLine("[PixstockIntentHandler][Handle] - IN " + param);

            // IPCメッセージから、PixstockのIntentメッセージを取り出す処理
            var message = JsonConvert.DeserializeObject <IntentMessage>(param.Body.ToString());

            Console.WriteLine("   ServiceType=" + message.ServiceType);
            mIntentManager.AddIntent(message.ServiceType, message.MessageName, message.Parameter);
        }
            public override void Handle(object param)
            {
                ServerMessageServiceParam serviceParam = (ServerMessageServiceParam)param;
                var category = mCategoryDao.LoadCategory(long.Parse(serviceParam.Data.ToString()), 0, CategoryDao.MAXLIMIT);

                mMemoryCache.Set("ResponseCategoryContent", new CategoryDetailResponse {
                    Category = category,
                    Content  = category.LinkContentList.ToArray()
                });

                mIntentManager.AddIntent(ServiceType.Workflow, "RESPONSE_GETCATEGORYCONTENT", null);
            }
        public void Handle(IpcMessage param)
        {
            mLogger.Debug("[Handle(IpcMessage)] - IN " + param);

            try {
                // IPCメッセージから、PixstockのIntentメッセージを取り出す処理
                var message = JsonConvert.DeserializeObject <IntentMessage> (param.Body.ToString());
                mIntentManager.AddIntent(message.ServiceType, message.MessageName, message.Parameter);
            } catch (Exception expr) {
                mLogger.Error(expr, "[Handle(IpcMessage)] Faile Deserialize");
            }
        }
Example #7
0
        /// <summary>
        /// ナビゲーションリストを元にプレビュー画面を表示している場合の、
        /// プレビュー画面の情報をビューに送信します。
        /// </summary>
        /// <param name="intentManager"></param>
        /// <param name="memoryCache"></param>
        /// <param name="totalNum">ナビゲーションリスト内の総項目数</param>
        /// <param name="currentPos">ナビゲーションリスト内での現在の位置</param>
        internal static void ExecuteInvalidatePreviewInfo(
            IIntentManager intentManager,
            IMemoryCache memoryCache,
            long totalNum,
            long currentPos)
        {
            var cacheEntryOptions = new MemoryCacheEntryOptions()
                                    .SetSlidingExpiration(TimeSpan.FromSeconds(30));

            memoryCache.Set("PreviewInfo",
                            new PreviewInfo(totalNum, currentPos),
                            cacheEntryOptions);
            intentManager.AddIntent(ServiceType.FrontendIpc, "UpdateProp", "PreviewInfo");
        }
            public override void Handle(object param)
            {
                ServerMessageServiceParam serviceParam = (ServerMessageServiceParam)param;

                var handlerParam = JsonConvert.DeserializeObject <GetCategoryParam> (serviceParam.Data.ToString());

                var category = mCategoryDao.LoadCategory(handlerParam.CategoryId, handlerParam.OffsetSubCategory, handlerParam.LimitOffsetSubCategory);

                mMemoryCache.Set("ResponseCategory", new CategoryDetailResponse {
                    Category    = category,
                    SubCategory = category.LinkSubCategoryList.ToArray(),
                    Content     = category.LinkContentList.ToArray()
                });

                //this.mLogger.LogDebug(LoggingEvents.Undefine, "[Execute] Register RESPONSE_GETCATEGORY");
                mIntentManager.AddIntent(ServiceType.Workflow, "RESPONSE_GETCATEGORY", null);
            }
            public override void Handle(object param)
            {
                mLogger.Debug("IN - {@Param}", param);
                ServerMessageServiceParam paramObj = (ServerMessageServiceParam)param;
                var paramHandler = paramObj.Data as HandlerParameter;
                var content      = mContentDao.LoadContent(paramHandler.ContentId);

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

                mMemoryCache.Set(CACHE_KEY,
                                 content.PreviewFileUrl,
                                 cacheEntryOptions);

                mIntentManager.AddIntent(ServiceType.FrontendIpc, "UpdateProp", CACHE_KEY);
                mLogger.Debug("OUT");
            }
            public override void Handle(object param)
            {
                mLogger.Debug("IN - {@Param}", param);
                ServerMessageServiceParam paramObj = (ServerMessageServiceParam)param;
                var paramHandler = paramObj.Data as HandlerParameter;
                var dao_cat      = new CategoryDao();
                var category     = dao_cat.LoadCategory(categoryId: paramHandler.CategoryId, offsetContent: paramHandler.PageNo);

                var cacheEntryOptions = new MemoryCacheEntryOptions();

                mMemoryCache.Set(cacheKey,
                                 new ContentListParam()
                {
                    Category = category, ContentList = category.LinkContentList.ToArray()
                },
                                 cacheEntryOptions);

                mIntentManager.AddIntent(ServiceType.Workflow, "ACT_RESINVALIDATE_CONTENTLIST");
                mLogger.Debug("OUT");
            }
Example #11
0
            public override void Handle(object param)
            {
                mLogger.Debug("IN - {@Param}", param);
                ServerMessageServiceParam paramObj = (ServerMessageServiceParam)param;
                var paramHandler = paramObj.Data as HandlerParameter;

                if (paramHandler.CategoryId.HasValue)
                {
                    // カテゴリから関連するコンテント一覧を作成する場合
                    var category = mCategoryDao.LoadCategory(categoryId: paramHandler.CategoryId.Value, offsetContent: paramHandler.PageNo);

                    var cacheEntryOptions = new MemoryCacheEntryOptions();
                    mMemoryCache.Set(cacheKey,
                                     new ContentListParam()
                    {
                        Category = category, ContentList = category.LinkContentList.ToArray()
                    },
                                     cacheEntryOptions);
                }
                else if (paramHandler.LabelId.HasValue)
                {
                    // ラベルから関連するコンテント一覧を生成する場合
                    var label             = mLabelDao.LoadLabel(paramHandler.LabelId.Value);
                    var cacheEntryOptions = new MemoryCacheEntryOptions();
                    mMemoryCache.Set(cacheKey,
                                     new ContentListParam()
                    {
                        ContentList = label.LinkContentList.ToArray()
                    },
                                     cacheEntryOptions);
                }
                else
                {
                    mLogger.Warn("コンテント一覧の取得ソースを指定してください。");
                    return;
                }

                mIntentManager.AddIntent(ServiceType.Workflow, "ACT_RESINVALIDATE_CONTENTLIST");
                mLogger.Debug("OUT");
            }
Example #12
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");
            }