/// <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); } } }