public async Task CreateOrUpdateEventAttendees(params UpdateAttendeesModel[] models) { using (var unitOfWork = await DataConnectionFactory.CreateUnitOfWork()) { foreach (var model in models) { var attendees = (await unitOfWork.DiaryEventAttendees.GetByEvent(model.EventId)).ToArray(); foreach (var attendee in model.Attendees) { var existingAttendee = attendees.FirstOrDefault(a => a.PersonId == attendee.PersonId); if (existingAttendee != null) { existingAttendee.Required = attendee.Required; existingAttendee.CanEdit = attendee.CanEdit; existingAttendee.Attended = attendee.Attended; existingAttendee.ResponseId = attendee.ResponseId; await unitOfWork.DiaryEventAttendees.Update(existingAttendee); } else { var newAttendee = new DiaryEventAttendee { EventId = model.EventId, PersonId = attendee.PersonId, Required = attendee.Required, CanEdit = attendee.CanEdit, ResponseId = attendee.ResponseId, Attended = attendee.Attended }; unitOfWork.DiaryEventAttendees.Create(newAttendee); } } } await unitOfWork.SaveChangesAsync(); } }
private void LoadFromModel(DiaryEventAttendee model) { EventId = model.EventId; PersonId = model.PersonId; ResponseId = model.ResponseId; Required = model.Required; Attended = model.Attended; CanEdit = model.CanEdit; if (model.Event != null) { Event = new DiaryEventModel(model.Event); } if (model.Person != null) { Person = new PersonModel(model.Person); } if (model.Response != null) { Response = new DiaryEventAttendeeResponseModel(model.Response); } }
public DiaryEventAttendeeModel(DiaryEventAttendee model) : base(model) { LoadFromModel(model); }