public async Task <MeetupVm> AddMeetupAsync(MeetupVm meetup) { meetup.EnsureIsValid(); var original = await _meetupProvider.GetMeetupOrDefaultExtendedAsync(meetup.Id).ConfigureAwait(false); if (original != null) { throw new FormatException($"Данный {nameof(meetup.Id)} \"{meetup.Id}\" уже занят"); } var venue = await _venueProvider.GetVenueOrDefaultAsync(meetup.VenueId); var community = await _communityProvider.GetCommunityOrDefaultAsync(meetup.CommunityId); var entity = new Meetup { ExportId = meetup.Id, Venue = venue, Friends = new List <FriendAtMeetup>(), Sessions = new List <Session>(), Community = community, Name = meetup.Name }; foreach (var meetupFriendId in meetup.FriendIds) { var friend = await _friendProvider.GetFriendOrDefaultAsync(meetupFriendId); entity.Friends.Add(new FriendAtMeetup() { Friend = friend, Meetup = entity }); } foreach (var meetupSession in meetup.Sessions) { var talk = await _talkProvider.GetTalkOrDefaultAsync(meetupSession.TalkId); entity.Sessions.Add(new Session() { Talk = talk, Meetup = entity, StartTime = DateTime.Parse( meetupSession.StartTime, CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal), EndTime = DateTime.Parse( meetupSession.EndTime, CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal) }); } var res = await _meetupProvider.SaveMeetupAsync(entity).ConfigureAwait(false); return(res.ToVm()); }
public async Task <MeetupVm> UpdateMeetupAsync(MeetupVm meetup) { meetup.EnsureIsValid(); var original = await _meetupProvider.GetMeetupOrDefaultAsync(meetup.Id).ConfigureAwait(false); var res = await _meetupProvider.SaveMeetupAsync(original.Extend(meetup)).ConfigureAwait(false); return(res.ToVm()); }
public async Task <MeetupVm> UpdateMeetupAsync(MeetupVm meetup) { meetup.EnsureIsValid(); var original = await _meetupProvider.GetMeetupOrDefaultExtendedAsync(meetup.Id).ConfigureAwait(false); var venue = await _venueProvider.GetVenueOrDefaultAsync(meetup.VenueId); var community = await _communityProvider.GetCommunityOrDefaultAsync( Enum.GetName(typeof(Communities), meetup.CommunityId) ); original.Venue = venue; original.Community = community; original.Name = meetup.Name; original.Friends = new List <FriendAtMeetup>(); original.Sessions = new List <Session>(); foreach (var meetupFriendId in meetup.FriendIds) { var friend = await _friendProvider.GetFriendOrDefaultAsync(meetupFriendId.FriendId); original.Friends.Add(new FriendAtMeetup { Friend = friend, Meetup = original }); } foreach (var meetupSession in meetup.Sessions) { var talk = await _talkProvider.GetTalkOrDefaultAsync(meetupSession.TalkId); original.Sessions.Add(new Session { Talk = talk, Meetup = original, StartTime = DateTime.Parse( meetupSession.StartTime, CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal), EndTime = DateTime.Parse( meetupSession.EndTime, CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal) }); } return(original.ToVm()); }
public async Task <MeetupVm> AddMeetupAsync(MeetupVm meetup) { meetup.EnsureIsValid(); var original = await _meetupProvider.GetMeetupOrDefaultAsync(meetup.Id).ConfigureAwait(false); if (original != null) { throw new FormatException($"Данный {nameof(meetup.Id)} \"{meetup.Id}\" уже занят"); } var entity = new Meetup { Id = meetup.Id }.Extend(meetup); var res = await _meetupProvider.SaveMeetupAsync(entity).ConfigureAwait(false); return(res.ToVm()); }