public async Task <bool> AddMeetingAsync(NewMeeting newMeeting) { bool createAction = false; bool createAgenda = false; bool createAttendance = false; using (var transaction = _context.Database.BeginTransaction()) { try { int meetingId = await CreateMeeting(newMeeting); createAgenda = await CreateAgenda(newMeeting, meetingId); createAction = await CreateAction(newMeeting, meetingId); createAttendance = await CreateMeetingAttendance(newMeeting, meetingId); transaction.Commit(); } catch (Exception) { // TODO: Handle failure } } return((createAction && createAgenda && createAttendance) == true); }
private async Task <int> CreateMeeting(NewMeeting newMeeting) { var entity = new Meeting { Title = newMeeting.Title, Location = newMeeting.Location, Note = newMeeting.Note, DateTime = newMeeting.DateTime }; _context.Meetings.Add(entity); var result = await _context.SaveChangesAsync(); return(entity.MeetingId); }
private async Task <bool> CreateMeetingAttendance(NewMeeting newMeeting, int meetingId) { foreach (Attendance s in newMeeting.Attendance) { var entity = new MeetingAttendance { MeetingId = meetingId, UserId = s.UserId }; _context.MeetingAttendances.Add(entity); } var saveResult = await _context.SaveChangesAsync(); return(saveResult != 0); }
private async Task <bool> CreateAction(NewMeeting newMeeting, int meetingId) { foreach (NewAction s in newMeeting.Action) { var entity = new Models.Action { Description = s.Description, MeetingId = meetingId }; _context.Actions.Add(entity); } var saveResult = await _context.SaveChangesAsync(); return(saveResult != 0); }
public async Task <IActionResult> CreateAsync([FromBody] NewMeeting newMeeting) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var successful = await _meetingService.AddMeetingAsync(newMeeting); if (!successful) { return(BadRequest(new { error = "Could not add item." })); } return(Ok(successful)); }