Esempio n. 1
0
        public void CheckInNoUnit()
        {
            Nicknames nickname = new Nicknames()
            {
                NickName = AlphaNumericStringGenerator.GetString(10),
                Sid      = AlphaNumericStringGenerator.GetStudentIDString()
            };

            using (helpdesksystemContext context = new helpdesksystemContext())
            {
                context.Nicknames.Add(nickname);
                context.SaveChanges();
            }

            CheckInRequest request = new CheckInRequest()
            {
                SID = nickname.Sid
            };

            CheckInFacade facade = new CheckInFacade();

            CheckInResponse response = facade.CheckIn(request);

            Assert.AreEqual(HttpStatusCode.BadRequest, response.Status);
        }
Esempio n. 2
0
        public void CheckInNewStudentNoSID()
        {
            Unit unit = new Unit()
            {
                Code      = AlphaNumericStringGenerator.GetString(8),
                IsDeleted = false,
                Name      = AlphaNumericStringGenerator.GetString(10),
            };

            using (helpdesksystemContext context = new helpdesksystemContext())
            {
                context.Unit.Add(unit);
                context.SaveChanges();
            }

            CheckInRequest request = new CheckInRequest()
            {
                UnitID   = unit.UnitId,
                Nickname = AlphaNumericStringGenerator.GetString(10)
            };

            CheckInFacade facade = new CheckInFacade();

            CheckInResponse response = facade.CheckIn(request);

            Assert.AreEqual(HttpStatusCode.BadRequest, response.Status);
        }
Esempio n. 3
0
        public IActionResult CheckOut([FromBody] CheckOutRequest request, [FromRoute] int id)
        {
            try
            {
                var facade   = new CheckInFacade();
                var response = facade.CheckOut(request, id);

                switch (response.Status)
                {
                case HttpStatusCode.OK:
                    return(Ok(response));

                case HttpStatusCode.BadRequest:
                    return(BadRequest(BuildBadRequestMessage(response)));

                case HttpStatusCode.NotFound:
                    return(NotFound());

                case HttpStatusCode.InternalServerError:
                    return(StatusCode(StatusCodes.Status500InternalServerError));
                }
                s_logger.Fatal("This code should be unreachable, unknown result has occured.");
            }
            catch (Exception ex)
            {
                s_logger.Error(ex, "Unable to check out.");
            }
            return(StatusCode(StatusCodes.Status500InternalServerError));
        }
Esempio n. 4
0
 public TestEntityFactory()
 {
     HelpdeskFacade = new HelpdeskFacade();
     UnitsFacade    = new UnitsFacade();
     TopicsFacade   = new TopicsFacade();
     QueueFacade    = new QueueFacade();
     CheckInFacade  = new CheckInFacade();
     StudentFacade  = new StudentFacade();
 }
Esempio n. 5
0
        public void CheckOutForced()
        {
            Unit unit = new Unit()
            {
                Code      = AlphaNumericStringGenerator.GetString(8),
                IsDeleted = false,
                Name      = AlphaNumericStringGenerator.GetString(10),
            };

            using (helpdesksystemContext context = new helpdesksystemContext())
            {
                context.Unit.Add(unit);
                context.SaveChanges();
            }

            CheckInRequest request = new CheckInRequest()
            {
                UnitID   = unit.UnitId,
                Nickname = AlphaNumericStringGenerator.GetString(10),
                SID      = AlphaNumericStringGenerator.GetStudentIDString()
            };

            CheckInFacade facade = new CheckInFacade();

            CheckInResponse response = facade.CheckIn(request);

            Assert.AreEqual(HttpStatusCode.OK, response.Status);
            Assert.IsTrue(response.CheckInID > 0);

            CheckOutRequest coRequest = new CheckOutRequest()
            {
                ForcedCheckout = true
            };

            CheckOutResponse coResponse = facade.CheckOut(coRequest, response.CheckInID);

            Assert.AreEqual(HttpStatusCode.OK, coResponse.Status);
            Assert.IsTrue(coResponse.Result);

            using (helpdesksystemContext context = new helpdesksystemContext())
            {
                Checkinhistory checkOut = context.Checkinhistory.FirstOrDefault(co => co.CheckInId == response.CheckInID);

                Assert.IsNotNull(checkOut);

                var baseTime = DateTime.Now.AddMinutes(-1);
                var addTime  = checkOut.CheckoutTime;
                var timeDiff = baseTime.CompareTo(addTime);
                Assert.IsTrue(timeDiff == -1);

                Assert.AreEqual(coRequest.ForcedCheckout, checkOut.ForcedCheckout);
            }
        }
Esempio n. 6
0
        public void CheckOutNoCheckInItem()
        {
            CheckInFacade facade = new CheckInFacade();

            CheckOutRequest request = new CheckOutRequest()
            {
                ForcedCheckout = false
            };

            CheckOutResponse coResponse = facade.CheckOut(request, -1);

            Assert.AreEqual(HttpStatusCode.NotFound, coResponse.Status);
        }
Esempio n. 7
0
        public void CheckInExistingStudent()
        {
            Unit unit = new Unit()
            {
                Code      = AlphaNumericStringGenerator.GetString(8),
                IsDeleted = false,
                Name      = AlphaNumericStringGenerator.GetString(10),
            };

            Nicknames nickname = new Nicknames()
            {
                NickName = AlphaNumericStringGenerator.GetString(10),
                Sid      = AlphaNumericStringGenerator.GetStudentIDString()
            };

            using (helpdesksystemContext context = new helpdesksystemContext())
            {
                context.Unit.Add(unit);
                context.Nicknames.Add(nickname);
                context.SaveChanges();
            }

            CheckInRequest request = new CheckInRequest()
            {
                UnitID    = unit.UnitId,
                StudentID = nickname.StudentId
            };

            CheckInFacade facade = new CheckInFacade();

            CheckInResponse response = facade.CheckIn(request);

            Assert.AreEqual(HttpStatusCode.OK, response.Status);
            Assert.IsTrue(response.CheckInID > 0);

            using (helpdesksystemContext context = new helpdesksystemContext())
            {
                Checkinhistory checkInHistory = context.Checkinhistory.FirstOrDefault(cih => cih.CheckInId == response.CheckInID);

                var baseTime = DateTime.Now.AddMinutes(-1);
                var addTime  = checkInHistory.CheckInTime;
                Assert.AreEqual(request.UnitID, checkInHistory.UnitId);
                var timeDiff = baseTime.CompareTo(addTime);
                Assert.IsTrue(timeDiff == -1);
                Assert.AreEqual(request.StudentID, checkInHistory.StudentId);
            }
        }
Esempio n. 8
0
        public TestDataCheckIn AddCheckIn(int?studentID = null, string nickname = "", string sID = "", int?unitID = null)
        {
            var request = new CheckInRequest();

            if (studentID != null)
            {
                request.StudentID = studentID;
            }
            if (nickname != null)
            {
                if (nickname == "" && PopulateEmptyStrings)
                {
                    request.Nickname = AlphaNumericStringGenerator.GetString(20);
                }
                else
                {
                    request.Nickname = nickname;
                }
            }
            if (sID != null)
            {
                if (sID == "" && PopulateEmptyStrings)
                {
                    request.SID = AlphaNumericStringGenerator.GetStudentIDString();
                }
                else
                {
                    request.SID = sID;
                }
            }
            if (unitID != null)
            {
                request.UnitID = (int)unitID;
            }

            var response = CheckInFacade.CheckIn(request);

            TestDataCheckIn data = new TestDataCheckIn(request, response);

            return(data);
        }
Esempio n. 9
0
        public void GetCheckinsTwoCheckedOut()
        {
            var checkIn  = new Checkinhistory();
            var checkIn2 = new Checkinhistory();
            var checkIn3 = new Checkinhistory();

            var helpdesk = new Helpdesksettings()
            {
                Name       = AlphaNumericStringGenerator.GetString(8),
                HasCheckIn = true,
                IsDeleted  = false
            };

            var unit = new Unit()
            {
                Code      = AlphaNumericStringGenerator.GetString(6),
                Name      = AlphaNumericStringGenerator.GetString(8),
                IsDeleted = false
            };

            using (helpdesksystemContext context = new helpdesksystemContext())
            {
                context.Helpdesksettings.Add(helpdesk);
                context.Unit.Add(unit);

                context.SaveChanges();

                context.Helpdeskunit.Add(new Helpdeskunit()
                {
                    HelpdeskId = helpdesk.HelpdeskId,
                    UnitId     = unit.UnitId
                });

                var student = new Nicknames()
                {
                    NickName = AlphaNumericStringGenerator.GetString(8),
                    Sid      = AlphaNumericStringGenerator.GetStudentIDString()
                };

                var student2 = new Nicknames()
                {
                    NickName = AlphaNumericStringGenerator.GetString(8),
                    Sid      = AlphaNumericStringGenerator.GetStudentIDString()
                };

                var student3 = new Nicknames()
                {
                    NickName = AlphaNumericStringGenerator.GetString(8),
                    Sid      = AlphaNumericStringGenerator.GetStudentIDString()
                };

                context.Nicknames.Add(student);
                context.Nicknames.Add(student2);
                context.Nicknames.Add(student3);

                context.SaveChanges();

                checkIn = new Checkinhistory()
                {
                    UnitId      = unit.UnitId,
                    StudentId   = student.StudentId,
                    CheckInTime = DateTime.Now,
                };

                context.Checkinhistory.Add(checkIn);

                checkIn2 = new Checkinhistory()
                {
                    UnitId      = unit.UnitId,
                    StudentId   = student2.StudentId,
                    CheckInTime = DateTime.Now,
                };

                checkIn3 = new Checkinhistory()
                {
                    UnitId      = unit.UnitId,
                    StudentId   = student3.StudentId,
                    CheckInTime = DateTime.Now,
                };
                context.Checkinhistory.Add(checkIn);
                context.Checkinhistory.Add(checkIn2);
                context.Checkinhistory.Add(checkIn3);

                context.SaveChanges();
            }

            var facade   = new CheckInFacade();
            var response = facade.GetCheckInsByHelpdeskId(helpdesk.HelpdeskId);

            Assert.AreEqual(HttpStatusCode.OK, response.Status);
            Assert.IsTrue(response.CheckIns.Count == 3);

            using (helpdesksystemContext context = new helpdesksystemContext())
            {
                checkIn.CheckoutTime    = DateTime.Now;
                checkIn3.ForcedCheckout = true;
                context.Update(checkIn);
                context.Update(checkIn3);
                context.SaveChanges();
            }

            response = facade.GetCheckInsByHelpdeskId(helpdesk.HelpdeskId);

            Assert.AreEqual(HttpStatusCode.OK, response.Status);
            Assert.IsTrue(response.CheckIns.Count == 1);
        }
Esempio n. 10
0
        public void CheckOutWithQueueItems()
        {
            Unit unit = new Unit()
            {
                Code      = AlphaNumericStringGenerator.GetString(8),
                IsDeleted = false,
                Name      = AlphaNumericStringGenerator.GetString(10),
            };

            Topic topic = new Topic()
            {
                Name      = AlphaNumericStringGenerator.GetString(10),
                IsDeleted = false
            };

            using (helpdesksystemContext context = new helpdesksystemContext())
            {
                context.Unit.Add(unit);
                topic.UnitId = unit.UnitId;
                context.Topic.Add(topic);
                context.SaveChanges();
            }

            CheckInRequest request = new CheckInRequest()
            {
                UnitID   = unit.UnitId,
                Nickname = AlphaNumericStringGenerator.GetString(10),
                SID      = AlphaNumericStringGenerator.GetStudentIDString()
            };

            CheckInFacade facade = new CheckInFacade();

            CheckInResponse response = facade.CheckIn(request);

            Assert.AreEqual(HttpStatusCode.OK, response.Status);
            Assert.IsTrue(response.CheckInID > 0);

            Queueitem queueitem = new Queueitem()
            {
                StudentId   = response.StudentID,
                TopicId     = topic.TopicId,
                Description = "Check In Unit Test",
                TimeAdded   = DateTime.Now
            };



            using (helpdesksystemContext context = new helpdesksystemContext())
            {
                context.Queueitem.Add(queueitem);

                Checkinqueueitem checkinqueueitem = new Checkinqueueitem()
                {
                    CheckInId   = response.CheckInID,
                    QueueItemId = queueitem.ItemId
                };
                context.Checkinqueueitem.Add(checkinqueueitem);

                context.SaveChanges();
            }

            CheckOutRequest coRequest = new CheckOutRequest()
            {
                ForcedCheckout = false
            };

            CheckOutResponse coResponse = facade.CheckOut(coRequest, response.CheckInID);

            Assert.AreEqual(HttpStatusCode.OK, coResponse.Status);
            Assert.IsTrue(coResponse.Result);

            using (helpdesksystemContext context = new helpdesksystemContext())
            {
                Checkinhistory checkOut = context.Checkinhistory.FirstOrDefault(co => co.CheckInId == response.CheckInID);
                Queueitem      item     = context.Queueitem.FirstOrDefault(qi => qi.ItemId == queueitem.ItemId);

                Assert.IsNotNull(checkOut);

                var baseTime = DateTime.Now.AddMinutes(-1);
                var addTime  = checkOut.CheckoutTime;
                var timeDiff = baseTime.CompareTo(addTime);
                Assert.IsTrue(timeDiff == -1);

                Assert.AreEqual(coRequest.ForcedCheckout, checkOut.ForcedCheckout);

                Assert.IsNotNull(item);

                var baseQueueTime   = DateTime.Now.AddMinutes(-1);
                var removeQueueTime = item.TimeRemoved;
                var queueTimeDiff   = baseQueueTime.CompareTo(removeQueueTime);
                Assert.IsTrue(queueTimeDiff == -1);
            }
        }