public SessionTO Add(SessionTO session) { if (session is null) { throw new ArgumentNullException(nameof(session)); } if (session.Id != 0) { return(session); } if (session.Course.IsArchived) { throw new ArgumentException("Course can not be archived"); } var entity = session.ToEF(); entity.Course = registrationContext.Courses.FirstOrDefault(x => x.Id == session.Course.Id); entity.UserSessions = new List <UserSessionEF>(); entity = registrationContext.Sessions.Add(entity).Entity; UpdateUserSessions(session, entity); return(entity.ToTransfertObject()); }
public void Should_Have_One_UserSessions() { #region TOInitialization UserTO student = new UserTO() { Id = 1, Name = "Jacky Fringant", Email = "*****@*****.**", Role = UserRole.Attendee, }; UserTO teacher = new UserTO() { Id = 2, Name = "Johnny Begood", Email = "*****@*****.**", Role = UserRole.Teacher }; CourseTO sql = new CourseTO() { Id = 1, Name = "SQL" }; SessionTO sessionTO = new SessionTO() { Id = 1, Teacher = teacher, Course = sql, SessionDays = new List <SessionDayTO>() { new SessionDayTO() { Id = 1, Date = new DateTime(2020, 2, 3), PresenceType = SessionPresenceType.MorningAfternoon }, new SessionDayTO() { Id = 2, Date = new DateTime(2020, 2, 4), PresenceType = SessionPresenceType.MorningAfternoon }, new SessionDayTO() { Id = 3, Date = new DateTime(2020, 2, 5), PresenceType = SessionPresenceType.MorningAfternoon } }, Attendees = new List <UserTO>() { student, } }; #endregion TOInitialization SessionEF sessionConverted = sessionTO.ToEF(); }
public SessionTO Add(SessionTO Entity) { if (Entity is null) { throw new ArgumentNullException(nameof(Entity)); } if (Entity.Id != 0) { return(Entity); } var sessionEF = Entity.ToEF(); sessionEF.Course = registrationContext.Courses.First(x => x.Id == Entity.Course.Id); registrationContext.Sessions.Add(sessionEF); return(sessionEF.ToTransfertObject()); // => registrationContext.Add(Entity.ToEF()).Entity.ToTransfertObject(); }
public void Should_Have_One_UserSessions() { #region TOInitialization UserTO student = new UserTO() { Id = 1, Name = "Jacky Fringant", Email = "*****@*****.**", IsActivated = true, Role = UserRole.Attendee, }; UserTO teacher = new UserTO() { Id = 2, Name = "Johnny Begood", Email = "*****@*****.**", IsActivated = true, Role = UserRole.Teacher }; CourseTO sql = new CourseTO() { Id = 1, Name = "SQL" }; SessionTO sessionTO = new SessionTO() { Id = 1, Teacher = teacher, Course = sql, SessionDays = new List <SessionDayTO>() { new SessionDayTO() { Id = 1, Date = new DateTime(2020, 2, 3), PresenceType = SessionPresenceType.MorningAfternoon }, new SessionDayTO() { Id = 2, Date = new DateTime(2020, 2, 4), PresenceType = SessionPresenceType.MorningAfternoon }, new SessionDayTO() { Id = 3, Date = new DateTime(2020, 2, 5), PresenceType = SessionPresenceType.MorningAfternoon } }, Attendees = new List <UserTO>() { student, } }; #endregion TOInitialization #region EFInitialization UserEF studentEF = new UserEF() { Id = 1, Name = "Jacky Fringant", Email = "*****@*****.**", IsActivated = true, Role = UserRole.Attendee, }; UserEF teacherEF = new UserEF() { Id = 2, Name = "Johnny Begood", Email = "*****@*****.**", IsActivated = true, Role = UserRole.Teacher }; CourseEF sqlEF = new CourseEF() { Id = 1, Name = "SQL" }; SessionEF sessionEF = new SessionEF() { Id = 1, Course = sqlEF, Dates = new List <SessionDayEF>() { new SessionDayEF { Id = 1, Date = new DateTime(2020, 01, 20), PresenceType = SessionPresenceType.MorningOnly }, new SessionDayEF { Id = 2, Date = new DateTime(2020, 01, 21), PresenceType = SessionPresenceType.MorningOnly }, new SessionDayEF { Id = 3, Date = new DateTime(2020, 01, 22), PresenceType = SessionPresenceType.MorningOnly }, } }; List <UserSessionEF> userSessions = new List <UserSessionEF>() { new UserSessionEF { SessionId = sessionEF.Id, UserId = studentEF.Id }, new UserSessionEF { SessionId = sessionEF.Id, UserId = studentEF.Id }, }; sessionEF.UserSessions = userSessions; #endregion EFInitialization SessionEF sessionConverted = sessionTO.ToEF(); Assert.AreEqual(sessionEF.UserSessions.Count, sessionConverted.UserSessions.Count); }