private async Task <Result <Guid> > PrepareCase(UserItemClientDto userItem)
        {
            Result <CallClientDto> callInfoResult = await _callManagementServiceClient.GetCallById(userItem.ItemId);

            if (callInfoResult.IsFailure)
            {
                _logger.Error($"ProcessCall. {callInfoResult.ErrorMessage}");
                return(Result.Failure(callInfoResult.ErrorCode, callInfoResult.ErrorMessage));
            }

            var caseFolderIdResult = callInfoResult.Value.Line.CaseFolderId;

            if (!userItem.CreateCaseCard)
            {
                if (caseFolderIdResult.HasValue)
                {
                    return(Result.Success(caseFolderIdResult.Value));
                }

                var newEmptyCaseFolder = new CaseFolder();
                await _caseFolderRepository.Add(newEmptyCaseFolder);

                return(Result.Success(newEmptyCaseFolder.Id));
            }

            var caseType = await _caseTypeRepository.GetById(userItem.CaseTypeId);

            if (caseFolderIdResult.HasValue)
            {
                var caseFolder = await _caseFolderRepository.GetById(caseFolderIdResult.Value);

                caseFolder.AddCaseCard(caseType, userItem.UserId);
                return(Result.Success(caseFolderIdResult.Value));
            }

            var newCaseFolder = new CaseFolder();

            newCaseFolder.AddCaseCard(caseType, userItem.UserId);
            await _caseFolderRepository.Add(newCaseFolder);

            return(Result.Success(newCaseFolder.Id));
        }
        // ReSharper disable once InconsistentNaming
        public async void Get_Case_ShouldExists()
        {
            //arrange
            _unitOfWork.Begin();

            var caseType   = _caseTypeRepository.GetFirst();
            var userId     = Guid.NewGuid();
            var caseFolder = new CaseFolder();

            caseFolder.AddCaseCard(caseType, userId);

            await _caseFolderRepository.Add(caseFolder);

            await _unitOfWork.CommitAsync();

            //action
            SetCurrentUserId(userId);

            demoResult <CaseDto> caseCardResult = await _caseController.GetCase(caseFolder.Id);

            //Assert
            caseCardResult.Result.ShouldBeOfType <demoOkResult <CaseDto> >();
        }