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))); }
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(); }