public async Task <bool> DeleteIssueDetailAttachmentsAsync(User user, DeleteIssueDetailAttachmentFormModel issueDetailAttachmentForm)
        {
            try
            {
                var IssueDetail = await _context.IssueDetails.Include(x => x.IssueDetailAttachments).FirstOrDefaultAsync(x => x.Id == issueDetailAttachmentForm.IssueDetailId);

                if (IssueDetail is null)
                {
                    throw new ExperienceManagementGlobalException(IssueServiceErrors.IssueDetailNotFoundError);
                }

                var issueDetailAttachment = IssueDetail.IssueDetailAttachments.FirstOrDefault(x => x.FileId == issueDetailAttachmentForm.FileId);
                if (issueDetailAttachment is null)
                {
                    throw new ExperienceManagementGlobalException(IssueServiceErrors.IssueDetailAttachmentNotFoundError);
                }

                _context.IssueDetailAttachments.Remove(issueDetailAttachment);

                var file = _context.FileAddresses.FirstOrDefault(x => x.FileId == issueDetailAttachmentForm.FileId);
                if (file != null)
                {
                    _context.FileAddresses.Remove(file);
                }

                await _context.SaveChangesAsync();

                return(true);
            }
            catch (Exception ex)
            {
                throw new ExperienceManagementGlobalException(IssueServiceErrors.DeleteIssueDetailAttachmentsError, ex);
            }
        }
예제 #2
0
        public async Task <IActionResult> DeleteIssueDetailAttachment([FromBody] DeleteIssueDetailAttachmentFormModel issueDetailAttachmentForm)
        {
            var resp = await _issueService.DeleteIssueDetailAttachmentsAsync(HttpContext.GetUser(), issueDetailAttachmentForm);

            return(Ok(GetRequestResult(resp)));
        }