コード例 #1
0
        public async Task <IActionResult> ValidateChapterDetailDelete(string id)
        {
            if (string.IsNullOrEmpty(id))
            {
                return(StatusCode((int)HttpStatusCode.BadRequest));
            }

            AikaChapterDetail detail = await _chapterDetailDbAccess.GetChapterDetailById(id);

            ChapterDetailDeleteValidationResult validationResult = new ChapterDetailDeleteValidationResult();

            validationResult.CanBeDeleted = true;

            if ((detail.Finish != null && detail.Finish.Count > 0) || (detail.Detail != null && detail.Detail.Count > 0) ||
                (detail.Quest != null && detail.Quest.Count > 0) || (detail.AllDone != null && detail.AllDone.Count > 0))
            {
                bool isDetailView = string.IsNullOrEmpty(detail.ChapterId);
                bool canBeDeleted = false;
                if (isDetailView)
                {
                    canBeDeleted = await _chapterDetailDbAccess.DetailUsedInNodesCount(id, string.Empty) > 1;
                }

                if (!canBeDeleted)
                {
                    validationResult.CanBeDeleted = false;
                    validationResult.ErrorMessage = isDetailView ? _localizer["CanNotDeleteNonEmptyChapterDetail"].Value : _localizer["CanNotDeleteNonEmptyChapter"].Value;
                }
            }

            return(Ok(validationResult));
        }