예제 #1
0
        /// <summary>
        /// 指定した既存学習履歴IDとタグを関連付ける。
        /// 既存の関連付け状況に関わらず、指定されたタグのみが紐づいている状況にする(他の紐づけはすべて削除する)
        /// </summary>
        /// <remarks>
        /// 親無しになるタグのチェックは行わない。
        /// </remarks>
        /// <param name="trainingHistoryId">学習履歴ID</param>
        /// <param name="inputTags">関連付けるタグ</param>
        public async Task EditTrainingHistoryTagsAsync(long trainingHistoryId, IEnumerable <string> inputTags)
        {
            //まずは既存のタグをすべて削除
            tagRepository.DeleteAllTrainingHistoryTag(trainingHistoryId);

            foreach (var inputTag in inputTags.Distinct())
            {
                if (string.IsNullOrEmpty(inputTag) == false)
                {
                    //タグを付与する。既存タグは削除済みなので、重複チェックはしない。
                    await tagRepository.AddTrainingHistoryTagAsync(trainingHistoryId, inputTag, false);
                }
            }
        }