public void JoinInvalidCheckNotFound()
        {
            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),
            };

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

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

                context.Helpdeskunit.Add(helpdeskunit);

                context.SaveChanges();

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

            AddToQueueRequest request = new AddToQueueRequest()
            {
                TopicID     = topic.TopicId,
                Nickname    = AlphaNumericStringGenerator.GetString(10),
                SID         = AlphaNumericStringGenerator.GetStudentIDString(),
                CheckInID   = -100,
                Description = "JoinInvalidCheckNotFound Test"
            };

            QueueFacade facade = new QueueFacade();

            AddToQueueResponse response = facade.AddToQueue(request);

            Assert.AreEqual(HttpStatusCode.NotFound, response.Status);
        }
        /// <summary>
        /// Used to convert a helpdesk DTO to DAO
        /// </summary>
        /// <param name="helpdeskDTO">The DTO to be converted</param>
        /// <returns>The resulting DAO</returns>
        public Helpdesksettings DTO2DAO(HelpdeskDTO helpdeskDTO)
        {
            Helpdesksettings helpdesk = new Helpdesksettings()
            {
                HelpdeskId = helpdeskDTO.HelpdeskID,
                Name       = helpdeskDTO.Name,
                HasCheckIn = helpdeskDTO.HasCheckIn,
                HasQueue   = helpdeskDTO.HasQueue,
                IsDeleted  = helpdeskDTO.IsDisabled
            };

            return(helpdesk);
        }
        /// <summary>
        /// Used to convert a helpdesk DAO to DTO
        /// </summary>
        /// <param name="helpdesk">The DAO to be converted</param>
        /// <returns>The resulting DTO</returns>
        public HelpdeskDTO DAO2DTO(Helpdesksettings helpdesk)
        {
            HelpdeskDTO helpdeskDTO = new HelpdeskDTO()
            {
                HelpdeskID = helpdesk.HelpdeskId,
                Name       = helpdesk.Name,
                HasCheckIn = helpdesk.HasCheckIn,
                HasQueue   = helpdesk.HasQueue,
                IsDisabled = helpdesk.IsDeleted
            };

            return(helpdeskDTO);
        }
        public void JoinQueueInvalidTopicFail()
        {
            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),
            };

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

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

                context.Helpdeskunit.Add(helpdeskunit);

                context.SaveChanges();
            }

            AddToQueueRequest request = new AddToQueueRequest()
            {
                Nickname = AlphaNumericStringGenerator.GetString(10),
                SID      = AlphaNumericStringGenerator.GetStudentIDString(),
                TopicID  = 0
            };

            QueueFacade facade = new QueueFacade();

            AddToQueueResponse response = facade.AddToQueue(request);

            Assert.AreEqual(HttpStatusCode.BadRequest, response.Status);
        }
        /// <summary>
        /// This method is used to add a new helpdesk to the database
        /// </summary>
        /// <param name="request">The information of the helpdesk</param>
        /// <returns>The id of the helpdesk that was added</returns>
        public int?AddHelpdesk(AddHelpdeskRequest request)
        {
            int?helpdeskId = null;

            Helpdesksettings helpdesk = new Helpdesksettings();

            helpdesk.Name       = request.Name;
            helpdesk.HasCheckIn = request.HasCheckIn;
            helpdesk.HasQueue   = request.HasQueue;

            using (helpdesksystemContext context = new helpdesksystemContext())
            {
                context.Add(helpdesk);
                context.SaveChanges();
                helpdeskId = helpdesk.HelpdeskId;
            }

            return(helpdeskId);
        }
        public void GetQueueItemsByHelpdeskIDNoItems()
        {
            Helpdesksettings helpdesk = new Helpdesksettings()
            {
                HasQueue   = true,
                HasCheckIn = false,
                IsDeleted  = false,
                Name       = AlphaNumericStringGenerator.GetString(10),
            };

            using (helpdesksystemContext context = new helpdesksystemContext())
            {
                context.Helpdesksettings.Add(helpdesk);
                context.SaveChanges();
            }

            QueueFacade facade = new QueueFacade();

            GetQueueItemsByHelpdeskIDResponse testResponse = facade.GetQueueItemsByHelpdeskID(helpdesk.HelpdeskId);

            Assert.AreEqual(HttpStatusCode.NotFound, testResponse.Status);
        }
        /// <summary>
        /// This method is used to update the relevent helpdesk
        /// </summary>
        /// <param name="id">The id of the helpdesk to be updated</param>
        /// <param name="request">The information to update the helpdesk</param>
        /// <returns>Result the indicates whether or not the update was successful</returns>
        public bool UpdateHelpdesk(int id, UpdateHelpdeskRequest request)
        {
            bool result = false;

            using (helpdesksystemContext context = new helpdesksystemContext())
            {
                Helpdesksettings helpdesk = context.Helpdesksettings.FirstOrDefault(p => p.HelpdeskId == id);

                if (helpdesk == null)
                {
                    throw new NotFoundException($"Helpdesk with id [{id}] not found.");
                }

                helpdesk.Name       = request.Name;
                helpdesk.HasCheckIn = request.HasCheckIn;
                helpdesk.HasQueue   = request.HasQueue;

                context.SaveChanges();
                result = true;
            }

            return(result);
        }
Ejemplo n.º 8
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);
        }
        public void GetQueueItemsByHelpdeskID()
        {
            Helpdesksettings helpdesk = new Helpdesksettings()
            {
                HasQueue   = true,
                HasCheckIn = false,
                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),
            };

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

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

                context.Helpdeskunit.Add(helpdeskunit);
                context.SaveChanges();

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

            AddToQueueRequest request = new AddToQueueRequest()
            {
                Nickname    = AlphaNumericStringGenerator.GetString(10),
                SID         = AlphaNumericStringGenerator.GetStudentIDString(),
                TopicID     = topic.TopicId,
                Description = "GetQueueItemsByHelpdeskID Test"
            };

            QueueFacade facade = new QueueFacade();

            AddToQueueResponse response = facade.AddToQueue(request);

            Assert.AreEqual(HttpStatusCode.OK, response.Status);

            GetQueueItemsByHelpdeskIDResponse testResponse = facade.GetQueueItemsByHelpdeskID(helpdesk.HelpdeskId);

            Assert.AreEqual(HttpStatusCode.OK, testResponse.Status);
            var itemIds = testResponse.QueueItems.Select(i => i.ItemId).ToList();

            Assert.IsTrue(itemIds.Contains(response.ItemId));
        }
        public void JoinQueueNoCheckInNewStudent()
        {
            Helpdesksettings helpdesk = new Helpdesksettings()
            {
                HasQueue   = true,
                HasCheckIn = false,
                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),
            };

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

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

                context.SaveChanges();

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

            AddToQueueRequest request = new AddToQueueRequest()
            {
                Nickname    = AlphaNumericStringGenerator.GetString(10),
                SID         = AlphaNumericStringGenerator.GetStudentIDString(),
                TopicID     = topic.TopicId,
                Description = "JoinQueueNoCheckInNewStudent 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);

                Nicknames nicknames = context.Nicknames.FirstOrDefault(n => n.StudentId == queueitem.StudentId);

                Assert.AreEqual(request.Nickname, nicknames.NickName);
                Assert.AreEqual(request.SID, nicknames.Sid);
            }
        }