Example #1
0
        /// <summary>
        /// ユーザのKptの登録を完了する
        /// </summary>
        /// <param name="boardId">ボードID</param>
        /// <param name="userName">ユーザ名</param>
        /// <param name="type">Kpt種別</param>
        /// <param name="kptList">Kptリスト</param>
        public async Task CommitKptListByUserAsync(int boardId, string userName, KptType type, List <Kpt> kptList)
        {
            // Kpt リストを登録する
            await this.AddKptListAsync(boardId, type, kptList);

            // ユーザステータスを更新する
            switch (type)
            {
            case KptType.Keep:
                await UpsertUserAsync(boardId, userName, UserStatusEnum.KeepDone);

                break;

            case KptType.Problem:
                await UpsertUserAsync(boardId, userName, UserStatusEnum.ProblemDone);

                break;

            case KptType.Try:
                await UpsertUserAsync(boardId, userName, UserStatusEnum.TryDone);

                break;

            default:
                break;
            }
        }
Example #2
0
        /// <summary>
        /// ボードのKptの登録を締め切る
        /// </summary>
        /// <param name="boardId">ボードID</param>
        /// <param name="userName">ユーザ名</param>
        /// <param name="type">Kpt種別</param>
        /// <param name="kptList">Kptリスト</param>
        public async Task CloseCommitKptListAsync(int boardId, string boardName, KptType type)
        {
            var boardEntity = this.GetBoardEntity(boardId);

            // ボードのステータスを更新する
            switch (type)
            {
            case KptType.Keep:
                await UpdateBoardAsync(boardId, boardName, true, boardEntity.IsProblemDone, boardEntity.IsTryDone);

                break;

            case KptType.Problem:
                await UpdateBoardAsync(boardId, boardName, boardEntity.IsKeepDone, true, boardEntity.IsTryDone);

                break;

            case KptType.Try:
                await UpdateBoardAsync(boardId, boardName, boardEntity.IsKeepDone, boardEntity.IsProblemDone, true);

                break;

            default:
                break;
            }
        }
Example #3
0
 public KptEntity(int boardId, KptType type, string userName, string title, string comment)
 {
     PartitionKey  = string.Format("{0}_{1}", boardId.ToString(), Enum.GetName(typeof(KptType), type));
     RowKey        = userName + "_" + title;
     this.UserName = userName;
     this.Title    = title;
     this.Comment  = comment;
 }
Example #4
0
        /// <summary>
        /// Kptを追加する
        /// </summary>
        /// <param name="boardId">ボードID</param>
        /// <param name="type">Kpt種別</param>
        /// <param name="kptList">Kptのリスト</param>
        public async Task AddKptListAsync(int boardId, KptType type, List <Kpt> kptList)
        {
            CloudTable table = this.Client.GetTableReference(TblKpt);

            foreach (var kptItem in kptList)
            {
                var            emp      = new KptEntity(boardId, type, kptItem.UserName, kptItem.Title, kptItem.Comment);
                TableOperation insertOp = TableOperation.InsertOrReplace(emp);
                await table.ExecuteAsync(insertOp);
            }
        }
Example #5
0
        /// <summary>
        /// Kptを削除する
        /// </summary>
        /// <param name="boardId">ボードID</param>
        /// <param name="type">Kpt種別</param>
        /// <param name="kptItem">削除アイテム</param>
        public async Task DelKptAsync(int boardId, KptType type, Kpt kptItem)
        {
            CloudTable table = this.Client.GetTableReference(TblKpt);

            var emp = new KptEntity(boardId, type, kptItem.UserName, kptItem.Title, kptItem.Comment)
            {
                ETag = "*"
            };
            TableOperation deleteOp = TableOperation.Delete(emp);
            await table.ExecuteAsync(deleteOp);
        }
Example #6
0
        /// <summary>
        /// Kptテーブルの内容をクリアする
        /// </summary>
        /// <param name="type">Kpt種別</param>
        public async Task ClearKptTableAsync(int boardId, KptType type)
        {
            CloudTable             table             = this.Client.GetTableReference(TblKpt);
            TableQuery <KptEntity> getQuery          = new TableQuery <KptEntity>().Where(TableQuery.GenerateFilterCondition(PartitonKey, QueryComparisons.Equal, this.GetKptTableKey(boardId, type)));
            TableContinuationToken continuationToken = null;
            var items = new List <KptEntity>(table.ExecuteQuerySegmentedAsync <KptEntity>(getQuery, continuationToken).Result);

            foreach (var item in items)
            {
                TableOperation deleteOperation = TableOperation.Delete(item);
                await table.ExecuteAsync(deleteOperation);
            }
        }
Example #7
0
        /// <summary>
        /// Kptリストを取得する
        /// </summary>
        /// <param name="boardId">ボードID</param>
        /// <param name="type">Kptの種別</param>
        /// <returns>Kptリスト</returns>
        public List <Kpt> GetKptList(int boardId, KptType type)
        {
            CloudTable             table             = this.Client.GetTableReference(TblKpt);
            TableQuery <KptEntity> query             = new TableQuery <KptEntity>().Where(TableQuery.GenerateFilterCondition(PartitonKey, QueryComparisons.Equal, this.GetKptTableKey(boardId, type)));
            TableContinuationToken continuationToken = null;
            var items  = new List <KptEntity>(table.ExecuteQuerySegmentedAsync <KptEntity>(query, continuationToken).Result);
            var result = new List <Kpt>();

            foreach (var item in items)
            {
                var kpt = new Kpt()
                {
                    Type     = type,
                    UserName = item.UserName,
                    Title    = item.Title,
                    Comment  = item.Comment
                };
                result.Add(kpt);
            }
            return(result);
        }
Example #8
0
 /// <summary>
 /// KptテーブルKeyを取得する
 /// </summary>
 /// <param name="boardId">ボードID</param>
 /// <param name="type">Kpt種別</param>
 /// <returns></returns>
 private string GetKptTableKey(int boardId, KptType type)
 {
     return(string.Format("{0}_{1}", boardId.ToString(), Enum.GetName(typeof(KptType), type)));
 }