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));
            }
        }
Esempio n. 2
0
        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;
            }
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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
            });
        }
Esempio n. 5
0
        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));
        }
Esempio n. 6
0
        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);
        }
Esempio n. 9
0
        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);
        }
Esempio n. 11
0
        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);
        }
Esempio n. 12
0
 public bool Remove(CheckInTO entity)
 {
     throw new NotImplementedException();
 }
Esempio n. 13
0
 public CheckInTO Update(CheckInTO Entity)
 {
     throw new NotImplementedException();
 }