public ActionResult <bool> CheckIn(int sessionId, int attendeeId) { var checkInArgs = new CheckInTO { SessionId = sessionId, AttendeeId = attendeeId, CheckInTime = DateTime.Now }; try { if (iASAttendeeRole.CheckIn(checkInArgs)) { return(Ok(true)); } else { return(BadRequest()); } } catch (Exception ex) { _logger.LogError(ex.Message); return(StatusCode(500)); } }
public CheckInTO Add(CheckInTO transfertObject) { if (transfertObject is null) { throw new ArgumentNullException(nameof(transfertObject)); } var table = this.CheckInTable(); if (table is null) { throw new ArgumentNullException(nameof(table)); } transfertObject.Id = Guid.NewGuid(); var entity = transfertObject.ToTableEntity(); TableOperation insert = TableOperation.Insert(entity); try { table.ExecuteAsync(insert); return(entity.ToTransfertObject()); } catch (Exception e) { throw; } }
public void CheckIn_True_CorrectInputs() { var checkInRepositoryMOCK = new Mock <ICheckInRepository>(); checkInRepositoryMOCK.Setup(homer => homer.Add(It.IsAny <CheckInTO>())).Returns(new CheckInTO { Id = Guid.NewGuid() }); var RegistrationServicesMOCK = new Mock <IRSAssistantRole>(); RegistrationServicesMOCK.Setup(marge => marge.GetUsersBySession(It.IsAny <int>())) .Returns(new List <UserTO> { new UserTO { Id = 1 } , new UserTO { Id = 2 } , new UserTO { Id = 3 } , new UserTO { Id = 4 } }); RegistrationServicesMOCK.Setup(marge => marge.GetSessionById(It.IsAny <int>())) .Returns(new SessionTO { Id = 12, SessionDays = new List <SessionDayTO> { new SessionDayTO { Id = 1, Date = DateTime.Now, PresenceType = SessionPresenceType.OnceADay } } }); var checkInArgs = new CheckInTO { SessionId = 2, AttendeeId = 3, CheckInTime = DateTime.Now }; var eleve = new ASAttendeeRole(checkInRepositoryMOCK.Object, RegistrationServicesMOCK.Object); var valueToAssert = eleve.CheckIn(checkInArgs); Assert.IsTrue(valueToAssert); }
public static CheckInEntity ToTableEntity(this CheckInTO transfertObject) { if (transfertObject is null) { throw new ArgumentNullException(nameof(transfertObject)); } return(new CheckInEntity { RowKey = transfertObject.Id.ToString(), PartitionKey = transfertObject.SessionId.ToString(), AttendeeId = transfertObject.AttendeeId.ToString(), CheckInTime = transfertObject.CheckInTime }); }
public void CheckIn_Throws_DataTimeNowNotInFormation() { var checkInRepositoryMOCK = new Mock <ICheckInRepository>(); checkInRepositoryMOCK.Setup(homer => homer.Add(It.IsAny <CheckInTO>())).Returns(new CheckInTO { Id = Guid.NewGuid() }); var RegistrationServicesMOCK = new Mock <IRSAssistantRole>(); RegistrationServicesMOCK.Setup(marge => marge.GetUsersBySession(It.IsAny <int>())) .Returns(new List <UserTO> { new UserTO { Id = 1 } , new UserTO { Id = 2 } , new UserTO { Id = 3 } , new UserTO { Id = 4 } }); RegistrationServicesMOCK.Setup(marge => marge.GetSessionById(It.IsAny <int>())) .Returns(new SessionTO { Id = 12, SessionDays = new List <SessionDayTO> { new SessionDayTO { Id = 1, Date = DateTime.Now.AddDays(2), PresenceType = SessionPresenceType.MorningAfternoon } } }); var eleve = new ASAttendeeRole(checkInRepositoryMOCK.Object, RegistrationServicesMOCK.Object); var checkInArgs = new CheckInTO { SessionId = 9999999, AttendeeId = 3, CheckInTime = DateTime.Now }; Assert.ThrowsException <Exception>(() => eleve.CheckIn(checkInArgs)); }
public void CheckIn_True_CorrectInputs_WithAzureRepositoryK() { var checkInRepository = new CheckInRepository(new AzureStorageCredentials()); var RegistrationServicesMOCK = new Mock <IRSAssistantRole>(); RegistrationServicesMOCK.Setup(marge => marge.GetUsersBySession(It.IsAny <int>())) .Returns(new List <UserTO> { new UserTO { Id = 1 } , new UserTO { Id = 2 } , new UserTO { Id = 3 } , new UserTO { Id = 4 } }); RegistrationServicesMOCK.Setup(marge => marge.GetSessionById(It.IsAny <int>())) .Returns(new SessionTO { Id = 999999999, SessionDays = new List <SessionDayTO> { new SessionDayTO { Id = 1, Date = DateTime.Now, PresenceType = SessionPresenceType.OnceADay } } }); var checkInArgs = new CheckInTO { SessionId = 999999999, AttendeeId = 3, CheckInTime = DateTime.Now }; var eleve = new ASAttendeeRole(checkInRepository, RegistrationServicesMOCK.Object); var valueToAssert = eleve.CheckIn(checkInArgs); Assert.IsTrue(valueToAssert); }
public void CheckInTable_ReturnTableInstance_WhenAddIsCalledWithValidCheckIn() { var checkInArgs = new CheckInTO { SessionId = 999999999, AttendeeId = 333333333, CheckInTime = DateTime.Now }; ICheckInRepository repo = new CheckInRepository(new AzureStorageCredentials()); var addCheckIn = repo.Add(checkInArgs); Assert.IsNotNull(addCheckIn); Assert.AreNotEqual(Guid.Empty, addCheckIn.Id); Assert.AreEqual(checkInArgs.AttendeeId, addCheckIn.AttendeeId); Assert.IsTrue(addCheckIn.CheckInTime.IsSameDate(checkInArgs.CheckInTime)); Assert.AreEqual(checkInArgs.SessionId, addCheckIn.SessionId); }
public void GetAttendeeCheckIns_ReturnCheckInList_WhenAValidAttendeeIdIsProvided() { var checkInArgs = new CheckInTO { SessionId = 999999999, AttendeeId = 333333333, CheckInTime = DateTime.Now }; ICheckInRepository repo = new CheckInRepository(new AzureStorageCredentials()); //Inserting at list one... for test sake var addCheckIn = repo.Add(checkInArgs); var checkInList = repo.GetAttendeeCheckIns(checkInArgs.AttendeeId); Assert.IsNotNull(checkInList); Assert.IsTrue(checkInList.Count >= 1); }
public void CheckIn_Throws_AttendeeNotInFormation() { var checkInRepositoryMOCK = new Mock <ICheckInRepository>(); checkInRepositoryMOCK.Setup(homer => homer.Add(It.IsAny <CheckInTO>())).Returns(new CheckInTO { Id = Guid.NewGuid() }); var RegistrationServicesMOCK = new Mock <IRSAssistantRole>(); RegistrationServicesMOCK.Setup(marge => marge.GetUsersBySession(It.IsAny <int>())) .Returns(new List <UserTO> { new UserTO { Id = 1 } , new UserTO { Id = 2 } , new UserTO { Id = 3 } , new UserTO { Id = 4 } }); var eleve = new ASAttendeeRole(checkInRepositoryMOCK.Object, RegistrationServicesMOCK.Object); var checkInArgs = new CheckInTO { SessionId = 9999999, AttendeeId = 53, CheckInTime = DateTime.Now }; Assert.ThrowsException <Exception>(() => eleve.CheckIn(checkInArgs)); }
public bool CheckIn(CheckInTO checkInArgs) { if (checkInArgs is null) { throw new ArgumentNullException(nameof(checkInArgs)); } if (!userServices.GetUsersBySession(checkInArgs.SessionId).Any(x => x.Id == checkInArgs.AttendeeId)) { throw new Exception("Attendee do not exist in formation"); } if (!userServices.GetSessionById(checkInArgs.SessionId).SessionDays.Any(x => x.Date.IsSameDate(DateTime.Now))) { throw new Exception("This session is not held today."); } if (!checkInArgs.CheckInTime.IsSameDate(DateTime.Now)) { throw new Exception("Attendee is not allowed to check-in other day than the current one."); } try { checkInArgs.CheckInTime = DateTime.Now; var added = checkInRepository.Add(checkInArgs); if (added.Id == Guid.Empty) { return(false); } } catch (Exception) { throw; } return(true); }
public static CheckInTO ToTransfertObject(this CheckInEntity entity) { if (entity is null) { throw new ArgumentNullException(nameof(entity)); } Guid LocalId; if (!Guid.TryParse(entity.RowKey, out LocalId)) { LocalId = Guid.Empty; } var TO = new CheckInTO { Id = LocalId, SessionId = int.Parse(entity.PartitionKey), AttendeeId = int.Parse(entity.AttendeeId), CheckInTime = entity.CheckInTime }; return(TO); }
public bool Remove(CheckInTO entity) { throw new NotImplementedException(); }
public CheckInTO Update(CheckInTO Entity) { throw new NotImplementedException(); }