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> /// This method is used to add an item to a queue /// </summary> /// <param name="request">The information of the queue item</param> /// <returns>Response which indicates success or failure</returns> public AddToQueueResponse AddToQueue(AddToQueueRequest request) { AddToQueueResponse response = new AddToQueueResponse(); try { response = (AddToQueueResponse)request.CheckValidation(response); if (response.Status == HttpStatusCode.BadRequest) { return(response); } StudentFacade studentFacade = new StudentFacade(); if (!request.StudentID.HasValue) { var addResponse = studentFacade.AddStudentNickname(new AddStudentRequest() { Nickname = request.Nickname, SID = request.SID }); if (addResponse.Status != HttpStatusCode.OK) { response.Status = addResponse.Status; response.StatusMessages = addResponse.StatusMessages; return(response); } request.StudentID = addResponse.StudentID; } QueueDataLayer dataLayer = new QueueDataLayer(); int itemId = dataLayer.AddToQueue(request); response.ItemId = itemId; response.Status = HttpStatusCode.OK; } catch (NotFoundException ex) { s_logger.Warn(ex, "Unable to add queue item"); response.Status = HttpStatusCode.NotFound; response.StatusMessages.Add(new StatusMessage(HttpStatusCode.NotFound, "Unable to add queue item")); } catch (Exception ex) { s_logger.Error(ex, "Unable to add queue item"); response.Status = HttpStatusCode.InternalServerError; response.StatusMessages.Add(new StatusMessage(HttpStatusCode.InternalServerError, "Unable to add queue item")); } return(response); }
/// <summary> /// Add item to queue. /// Please note that you can only add item that enabled for Queue, for more information see https://msdn.microsoft.com/en-us/library/gg328459(v=crm.7).aspx#BKMK_Enabling /// <para> /// For more information look at https://msdn.microsoft.com/en-us/library/microsoft.crm.sdk.messages.addtoqueuerequest(v=crm.7).aspx /// </para> /// </summary> /// <param name="targetLogicalName">Queue enabled entity logical name</param> /// <param name="targetId">Queue enabled entity Id</param> /// <param name="queueId">Destination <c>Queue</c> Id</param> /// <returns>Created record Id (<see cref="Guid"/>)</returns> public Guid AddToQueue(string targetLogicalName, Guid targetId, Guid queueId) { ExceptionThrow.IfGuidEmpty(queueId, "queueId"); ExceptionThrow.IfGuidEmpty(targetId, "targetId"); ExceptionThrow.IfNullOrEmpty(targetLogicalName, "targetLogicalName"); AddToQueueRequest request = new AddToQueueRequest() { DestinationQueueId = queueId, Target = new EntityReference(targetLogicalName.ToLower(), targetId) }; AddToQueueResponse serviceResponse = (AddToQueueResponse)this.OrganizationService.Execute(request); return(serviceResponse.QueueItemId); }
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> /// Method to assign the records in Queue /// </summary> public void AssignRecordsToQueues() { Random rdn = new Random(0); AddToQueueRequest req = new AddToQueueRequest(); int queueCount = queueIds.Count; if (queueCount <= 0) { throw new NullReferenceException("No queues are available to assign records."); } for (int j = 0; j < caseIds.Count; j++) { req.Target = new EntityReference("incident", caseIds[j]); req.DestinationQueueId = queueIds[rdn.Next(queueCount) % queueCount]; AddToQueueResponse resp = (AddToQueueResponse)CRM.CreateSampleData.ConnectionToServer._service.Execute(req); Console.Write("."); } Console.WriteLine("Assigned cases to queues"); }
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); } }
public TestDataQueue(AddToQueueRequest request, AddToQueueResponse response) { Request = request; Response = response; }