private void UpdateUserSessions(SessionTO session, SessionEF entity) { entity.UserSessions.Clear(); registrationContext.RemoveRange(registrationContext.UserSessions.Where(x => x.SessionId == session.Id)); foreach (var user in session.Attendees) { var userSession = new UserSessionEF() { Session = entity, SessionId = entity.Id, User = registrationContext.Users.FirstOrDefault(x => x.Id == user.Id), UserId = user.Id }; registrationContext.UserSessions.Add(userSession); } if (session.Teacher != null) { var teacherSession = new UserSessionEF() { Session = entity, SessionId = entity.Id, User = registrationContext.Users.FirstOrDefault(x => x.Id == session.Teacher.Id), UserId = session.Teacher.Id }; entity.UserSessions.Add(teacherSession); } }
public static SessionEF ToEF(this SessionTO session) { if (session is null) { throw new ArgumentNullException(nameof(session)); } var result = new SessionEF() { Id = session.Id, Course = session.Course.ToEF(), Dates = session.SessionDays?.Select(x => x.ToEF()).ToList() }; if (session.Attendees == null) { return(result); } result.UserSessions = new List <UserSessionEF>(); foreach (var user in session.Attendees) { var userSession = new UserSessionEF() { SessionId = session.Id, Session = result, UserId = user.Id, User = user.ToEF() }; result.UserSessions.Add(userSession); } var teacherEF = new UserSessionEF() { SessionId = session.Id, Session = result, UserId = session.Teacher.Id, User = session.Teacher.ToEF() }; result.UserSessions.Add(teacherEF); //foreach (UserSessionEF item in result.UserSessions) //{ // item.User.UserSessions.Add(item); //} return(result); }