public Task Execute(IJobExecutionContext context) { try { var facade = new HelpdeskFacade(); var helpdeskIds = facade.GetHelpdesks().Helpdesks.Select(h => h.HelpdeskID).ToList(); foreach (int id in helpdeskIds) { ForceCheckoutQueueRemoveResponse result = facade.ForceCheckoutQueueRemove(id); if (result.Status != HttpStatusCode.OK) { foreach (StatusMessage message in result.StatusMessages) { s_logger.Error(message); } } } } catch (Exception ex) { s_logger.Error(ex, "Unable to remove queue items and check-ins."); } return(Task.CompletedTask); }
/// <summary> /// Used to force-checkout users and remove queue items. /// Takes optional DateTime parameter. If not provided, data layer will use DateTime.Now. /// Used by DailyCleanupJob. /// </summary> /// <param name="dateTime"></param> /// <returns></returns> public ForceCheckoutQueueRemoveResponse ForceCheckoutQueueRemove(int id) { ForceCheckoutQueueRemoveResponse response = new ForceCheckoutQueueRemoveResponse(); try { HelpdeskDataLayer dataLayer = new HelpdeskDataLayer(); response.Result = dataLayer.ForceCheckoutQueueRemove(id); if (response.Result == true) { response.Status = HttpStatusCode.OK; } } catch (Exception ex) { s_logger.Error(ex, "Unable to force checkout and remove queue items for Helpdesk " + id); response.Status = HttpStatusCode.InternalServerError; response.StatusMessages.Add(new StatusMessage(HttpStatusCode.InternalServerError, "Unable to force checkout and remove queue items for Helpdesk " + id)); } return(response); }