コード例 #1
0
ファイル: TalkService.cs プロジェクト: tezjarl/Server
        public async Task <TalkVm> AddTalkAsync(TalkVm talk)
        {
            talk.EnsureIsValid();
            var original = await _talkProvider.GetTalkOrDefaultAsync(talk.Id).ConfigureAwait(false);

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

            var speakers =
                await _speakerProvider.GetSpeakersByIdsAsync(talk.SpeakerIds.Select(x => x.SpeakerId).ToList());

            var entity = new Talk {
                ExportId = talk.Id, Speakers = new List <SpeakerTalk>()
            }.Extend(talk);

            foreach (var speaker in speakers)
            {
                entity.Speakers.Add(new SpeakerTalk
                {
                    Speaker = speaker,
                    Talk    = entity
                });
            }


            var res = await _talkProvider.SaveTalkAsync(entity).ConfigureAwait(false);

            return(res.ToVm());
        }
コード例 #2
0
        public async Task <TalkVm> AddTalkAsync(TalkVm talk)
        {
            talk.EnsureIsValid();
            var original = await _talkProvider.GetTalkOrDefaultAsync(talk.Id).ConfigureAwait(false);

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

            var entity = new Talk {
                Id = talk.Id
            }.Extend(talk);
            var res = await _talkProvider.SaveTalkAsync(entity).ConfigureAwait(false);

            return(res.ToVm());
        }