/// <summary>
        /// Used to convert database checkin object to a DTO
        /// </summary>
        /// <param name="checkIn">The check in to be converted</param>
        /// <returns>The dto version of the check in</returns>
        public CheckInDTO DAO2DTO(Checkinhistory checkIn)
        {
            CheckInDTO dto = new CheckInDTO()
            {
                CheckInId = checkIn.CheckInId,
                Nickname  = checkIn.Student.NickName,
                UnitId    = checkIn.UnitId,
                StudentId = checkIn.StudentId.Value
            };

            return(dto);
        }
Esempio n. 2
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. 3
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);
            }
        }
        /// <summary>
        /// Checks a check in item out of the database
        /// </summary>
        /// <param name="id">CheckInID of the check in item to be checked out</param>
        /// <returns>A boolean indicating success or failure</returns>
        public bool CheckOut(CheckOutRequest request, int id)
        {
            using (helpdesksystemContext context = new helpdesksystemContext())
            {
                Checkinhistory checkOut = context.Checkinhistory.FirstOrDefault(co => co.CheckInId == id);

                if (checkOut == null)
                {
                    return(false);
                }

                checkOut.CheckoutTime   = DateTime.Now;
                checkOut.ForcedCheckout = request.ForcedCheckout;

                context.SaveChanges();
            }
            return(true);
        }
Esempio n. 5
0
        /// <summary>
        /// Used to add a queue item to the database
        /// </summary>
        /// <param name="request">The request with the information to be added</param>
        /// <returns>The id of the queue item or null if not successful</returns>
        public int AddToQueue(AddToQueueRequest request)
        {
            int?id = null;

            using (helpdesksystemContext context = new helpdesksystemContext())
            {
                Queueitem item = new Queueitem()
                {
                    StudentId   = request.StudentID.Value,
                    TimeAdded   = DateTime.Now,
                    TopicId     = request.TopicID,
                    Description = request.Description,
                };

                context.Queueitem.Add(item);
                context.SaveChanges();

                id = item.ItemId;

                if (request.CheckInID.HasValue)
                {
                    Checkinhistory checkinhistory = context.Checkinhistory.FirstOrDefault(ci => ci.CheckInId == request.CheckInID.Value);

                    if (checkinhistory == null)
                    {
                        throw new NotFoundException($"Unable to find queue item with id [{request.CheckInID.Value}]");
                    }

                    Checkinqueueitem checkinqueueitem = new Checkinqueueitem()
                    {
                        CheckInId   = request.CheckInID.Value,
                        QueueItemId = item.ItemId,
                    };

                    context.Checkinqueueitem.Add(checkinqueueitem);
                }

                context.SaveChanges();
            }

            return(id.Value);
        }
        /// <summary>
        /// Checks a new item into the database
        /// </summary>
        /// <param name="request">Request containing the unit id of the check in item</param>
        /// <returns>The id of the new check in item</returns>
        public int CheckIn(CheckInRequest request)
        {
            int id = 0;

            using (helpdesksystemContext context = new helpdesksystemContext())
            {
                Checkinhistory checkIn = new Checkinhistory()
                {
                    UnitId      = request.UnitID,
                    CheckInTime = DateTime.Now,
                    StudentId   = request.StudentID
                };

                context.Checkinhistory.Add(checkIn);
                context.SaveChanges();

                id = checkIn.CheckInId;
            }
            return(id);
        }
Esempio n. 7
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. 8
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);
            }
        }
        public void JoinQueueCheckInOldStudent()
        {
            Helpdesksettings helpdesk = new Helpdesksettings()
            {
                HasQueue   = true,
                HasCheckIn = true,
                IsDeleted  = false,
                Name       = AlphaNumericStringGenerator.GetString(10),
            };

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

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

            Checkinhistory checkin = new Checkinhistory()
            {
                CheckInTime = DateTime.Now,
            };

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

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

                checkin.StudentId = nickname.StudentId;
                checkin.UnitId    = unit.UnitId;

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

                context.Helpdeskunit.Add(helpdeskunit);

                checkin.UnitId = unit.UnitId;
                context.Checkinhistory.Add(checkin);

                context.SaveChanges();

                topic.UnitId = unit.UnitId;
                context.Topic.Add(topic);
                context.SaveChanges();
            }

            AddToQueueRequest request = new AddToQueueRequest()
            {
                StudentID   = nickname.StudentId,
                TopicID     = topic.TopicId,
                CheckInID   = checkin.CheckInId,
                Description = "JoinQueueCheckInOldStudent Test"
            };

            QueueFacade facade = new QueueFacade();

            AddToQueueResponse response = facade.AddToQueue(request);

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

            using (helpdesksystemContext context = new helpdesksystemContext())
            {
                Queueitem queueitem = context.Queueitem.FirstOrDefault(qi => qi.ItemId == response.ItemId);

                var baseTime = DateTime.Now.AddMinutes(-1);
                var addTime  = queueitem.TimeAdded;
                Assert.AreEqual(request.TopicID, queueitem.TopicId);
                var timeDiff = baseTime.CompareTo(addTime);
                Assert.IsTrue(timeDiff == -1);

                Checkinqueueitem checkinqueueitem = context.Checkinqueueitem.FirstOrDefault(cqi => cqi.CheckInId == checkin.CheckInId && cqi.QueueItemId == queueitem.ItemId);
                Assert.IsNotNull(checkinqueueitem);
            }
        }