private async Task <SharedFileModelBussines <int> > CreateSharing(SharedFileModelApi <int> sharingModel, AccountModelBussines <int> acc)
        {
            var mappedSharedFile = AutoMapperConfig.Mapper.Map <SharedFileModelBussines <int> >(sharingModel);

            mappedSharedFile.AccountId = acc.Id;

            var res = await this._sharedFileRepository.CreateAsync(mappedSharedFile);

            return(res);
        }
        public async Task <ResponseModel <SharedFileModelApi <int> > > ShareFile(SharedFileModelApi <int> sharingModel)
        {
            var acc = await this._accountRepository.GetByEmailAsync(sharingModel.AccountEmail);

            var resp = new ResponseModel <SharedFileModelApi <int> >();

            if (acc == null)
            {
                resp.AddError(new Error($"This user not exists"));
                return(resp);
            }

            await this._redisCachingService.RemoveItemAsync(RedisCachingKeysUtil.GET_SHARED_FILES_BY_USER_ID + acc.Id);

            var file = await this._storedFileRepository.GetByIdAsync(sharingModel.StoredFileId);

            await NotifyAboutSharing(file.Title, acc.Id);

            resp.Item = AutoMapperConfig.Mapper.Map <SharedFileModelApi <int> >(await CreateSharing(sharingModel, acc));

            return(resp);
        }
        public async Task <IActionResult> ShareFile(SharedFileModelApi <int> model)
        {
            var res = await this._sharedFileService.ShareFile(model);

            return(Ok(res));
        }