/// <summary> /// This method is used to update an existing item in the queue /// </summary> /// <param name="id">ID of the queue item to be updated</param> /// <param name="request">Request that contains the new queue item information</param> /// <returns>Response which indicates success or failure</returns> public UpdateQueueItemResponse UpdateQueueItem(int id, UpdateQueueItemRequest request) { UpdateQueueItemResponse response = new UpdateQueueItemResponse(); try { response = (UpdateQueueItemResponse)request.CheckValidation(response); if (response.Status == HttpStatusCode.BadRequest) { return(response); } QueueDataLayer dataLayer = new QueueDataLayer(); response.Result = dataLayer.UpdateQueueItem(id, request); response.Status = HttpStatusCode.OK; } catch (NotFoundException ex) { s_logger.Warn(ex, "Unable to update queue item"); response.Status = HttpStatusCode.NotFound; response.StatusMessages.Add(new StatusMessage(HttpStatusCode.NotFound, "Unable to update queue item")); } catch (Exception ex) { s_logger.Error(ex, "Unable to update queue item"); response.Status = HttpStatusCode.InternalServerError; response.StatusMessages.Add(new StatusMessage(HttpStatusCode.InternalServerError, "Unable to update queue item")); } return(response); }
public void UpdateQueueItem() { // Fill empty string parameters "" with auto-generated string. testEntityFactory.PopulateEmptyStrings = true; // Add test helpdesk. TestDataHelpdesk helpdeskData = testEntityFactory.AddHelpdesk(); // Check that helpdesk was created successfully. Assert.AreEqual(HttpStatusCode.OK, helpdeskData.Response.Status); Assert.IsTrue(helpdeskData.Response.HelpdeskID > 0); // Create a unit. ID provided is 0, which will indicates creation of new helpdesk. List <string> topics = new List <string>(new string[] { "Layouts", "Lifecycle" }); TestDataUnit unitData = testEntityFactory.AddUpdateUnit(0, helpdeskData.Response.HelpdeskID, "", "", false, topics); // Check that unit was created successfully. Assert.AreEqual(HttpStatusCode.OK, unitData.Response.Status); Assert.IsTrue(unitData.Response.UnitID > 0); // Get topics for the unit that was just created. TopicsFacade topicsFacade = new TopicsFacade(); GetTopicsByUnitIDResponse topicResponse = topicsFacade.GetTopicsByUnitID(unitData.Response.UnitID); // Check that there are two units in the response (Layouts, Lifecycle). Assert.IsTrue(topicResponse.Topics.Count() == 3); // Add test queue item, pass in topic [0]. TestDataQueue queueData = testEntityFactory.AddQueueItem(null, topicResponse.Topics[0].TopicId); // Check that queue item was created successfully. Assert.AreEqual(HttpStatusCode.OK, queueData.Response.Status); // Create request to alter queue item. var queueUpdateRequest = new UpdateQueueItemRequest { TopicID = topicResponse.Topics[0].TopicId, Description = "UpdateQueueItem Test" }; // Update the queue item UpdateQueueItemResponse updateQueueResponse = testEntityFactory.QueueFacade.UpdateQueueItem(queueData.Response.ItemId, queueUpdateRequest); // Check that queue item was updated successfully. Assert.AreEqual(HttpStatusCode.OK, updateQueueResponse.Status); // Do another request to change to another topic queueUpdateRequest = new UpdateQueueItemRequest { TopicID = topicResponse.Topics[1].TopicId, Description = "UpdateQueueItem Test 2" }; // Update the queue item again updateQueueResponse = testEntityFactory.QueueFacade.UpdateQueueItem(queueData.Response.ItemId, queueUpdateRequest); // Check that queue item was updated successfully. Assert.AreEqual(HttpStatusCode.OK, updateQueueResponse.Status); }