/// <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); }
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); } }
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); }
/// <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); }
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 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); } }