Пример #1
0
        public async Task <SpeakerVm> AddSpeakerAsync(SpeakerVm speaker)
        {
            speaker.EnsureIsValid();

            var original = await _speakerProvider.GetSpeakerOrDefaultAsync(speaker.Id).ConfigureAwait(false);

            if (original != null)
            {
                throw new FormatException($"Данный {nameof(speaker.Id)} \"{speaker.Id}\" уже занят");
            }

            var entity = new Speaker {
                Id = speaker.Id
            }.Extend(speaker);
            var res = await _speakerProvider.SaveSpeakerAsync(entity).ConfigureAwait(false);

            return(res.ToVm(res.GetLastUpdateDate(_settings)));
        }
Пример #2
0
        public async Task StoreSpeakerAvatarAsync(string speakerId, UploadImageInfo imageInfo, Stream imageStream)
        {
            var speaker = await _speakerProvider.GetSpeakerOrDefaultAsync(speakerId).ConfigureAwait(false);

            var imageId = await SaveImageDataAsync(imageInfo, imageStream);

            if (imageInfo.ImageSize == ImageSize.Full)
            {
                speaker.AvatarId = imageId;
            }
            else
            {
                speaker.AvatarSmallId = imageId;
            }

            await _speakerProvider.SaveSpeakerAsync(speaker);

            await _unitOfWork.SaveChangesAsync();
        }