public void UpdateTimespanNoName() { HelpdeskFacade helpdeskFacade = new HelpdeskFacade(); AddTimeSpanRequest addTimeSpanRequest = new AddTimeSpanRequest() { HelpdeskId = 1, StartDate = DateTime.Today, EndDate = DateTime.Today.AddYears(1), Name = AlphaNumericStringGenerator.GetString(10) }; AddTimeSpanResponse addTimeSpanResponse = helpdeskFacade.AddTimeSpan(addTimeSpanRequest); Assert.AreEqual(HttpStatusCode.OK, addTimeSpanResponse.Status); UpdateTimeSpanRequest updateTimespanRequest = new UpdateTimeSpanRequest() { StartDate = new DateTime(2019, 01, 01), EndDate = new DateTime(2019, 06, 01), }; UpdateTimeSpanResponse updateTimespanResponse = helpdeskFacade.UpdateTimeSpan(addTimeSpanResponse.SpanId, updateTimespanRequest); Assert.AreEqual(HttpStatusCode.BadRequest, updateTimespanResponse.Status); }
public IActionResult GetActiveHelpdesks() { try { var facade = new HelpdeskFacade(); var response = facade.GetActiveHelpdesks(); switch (response.Status) { case HttpStatusCode.OK: return(Ok(response)); case HttpStatusCode.BadRequest: return(BadRequest(BuildBadRequestMessage(response))); case HttpStatusCode.InternalServerError: return(StatusCode(StatusCodes.Status500InternalServerError)); case HttpStatusCode.NotFound: return(NotFound()); } s_logger.Fatal("This code should be unreachable, unknown result has occured."); } catch (Exception ex) { s_logger.Error(ex, "Unable to get active helpdesks."); } return(StatusCode(StatusCodes.Status500InternalServerError)); }
public TestDataTimeSpan AddTimeSpan(int?helpdeskID = null, string name = "", DateTime?startDate = null, DateTime?endDate = null) { var request = new AddTimeSpanRequest(); if (helpdeskID != null) { request.HelpdeskId = (int)helpdeskID; } if (name == "" && PopulateEmptyStrings) { request.Name = AlphaNumericStringGenerator.GetString(10); } else { request.Name = name; } if (startDate == null) { request.StartDate = DateTime.Now; } if (endDate == null) { request.EndDate = DateTime.Now; request.EndDate.AddDays(1); } var response = HelpdeskFacade.AddTimeSpan(request); TestDataTimeSpan data = new TestDataTimeSpan(request, response); return(data); }
public IActionResult DeleteTimeSpan([FromRoute] int id) { if (!IsAuthorized()) { return(Unauthorized()); } try { var facade = new HelpdeskFacade(); var response = facade.DeleteTimeSpan(id); switch (response.Status) { case HttpStatusCode.OK: return(Ok(response)); case HttpStatusCode.BadRequest: return(BadRequest(BuildBadRequestMessage(response))); case HttpStatusCode.InternalServerError: return(StatusCode(StatusCodes.Status500InternalServerError)); case HttpStatusCode.NotFound: return(NotFound()); } s_logger.Fatal("This code should be unreachable, unknown result has occured."); } catch (Exception ex) { s_logger.Error(ex, "Unable to delete timespan."); } return(StatusCode(StatusCodes.Status500InternalServerError)); }
public void DeleteTimespan() { HelpdeskFacade helpdeskFacade = new HelpdeskFacade(); AddTimeSpanRequest addTimeSpanRequest = new AddTimeSpanRequest() { HelpdeskId = 1, Name = AlphaNumericStringGenerator.GetString(10), StartDate = DateTime.Today, EndDate = DateTime.Today.AddYears(1) }; AddTimeSpanResponse addTimeSpanResponse = helpdeskFacade.AddTimeSpan(addTimeSpanRequest); Assert.AreEqual(HttpStatusCode.OK, addTimeSpanResponse.Status); DeleteTimeSpanResponse deleteResponse = helpdeskFacade.DeleteTimeSpan(addTimeSpanResponse.SpanId); Assert.AreEqual(HttpStatusCode.OK, deleteResponse.Status); GetTimeSpanResponse response = helpdeskFacade.GetTimeSpan(addTimeSpanResponse.SpanId); Assert.AreEqual(HttpStatusCode.NotFound, response.Status); using (helpdesksystemContext context = new helpdesksystemContext()) { var timespan = context.Timespans.FirstOrDefault(ts => ts.SpanId == addTimeSpanResponse.SpanId); Assert.IsNull(timespan); } }
public void GetActiveHelpdesks() { var factory = new TestEntityFactory(); var hd1 = factory.AddHelpdesk(AlphaNumericStringGenerator.GetString(10)); var hd2 = factory.AddHelpdesk(AlphaNumericStringGenerator.GetString(10)); using (helpdesksystemContext context = new helpdesksystemContext()) { var helpdesk = context.Helpdesksettings.FirstOrDefault(hd => hd.HelpdeskId == hd2.Response.HelpdeskID); helpdesk.IsDeleted = true; context.SaveChanges(); } var facade = new HelpdeskFacade(); var response = facade.GetActiveHelpdesks(); Assert.AreEqual(HttpStatusCode.OK, response.Status); Assert.IsTrue(response.Helpdesks.Count > 0); List <int> helpdeskIds = response.Helpdesks.Select(hd => hd.HelpdeskID).ToList(); Assert.IsTrue(helpdeskIds.Contains(hd1.Response.HelpdeskID)); Assert.IsTrue(!helpdeskIds.Contains(hd2.Response.HelpdeskID)); }
public void GetDatabaseExport() { HelpdeskFacade helpdeskFacade = new HelpdeskFacade(); var response = helpdeskFacade.ExportDatabase(); Assert.AreEqual(HttpStatusCode.OK, response.Status); }
public IActionResult GetFullDatabaseBackup() { if (!IsAuthorized()) { return(Unauthorized()); } try { var facade = new HelpdeskFacade(); var response = facade.ExportDatabaseManual(); var contentType = "application/zip"; Response.ContentType = contentType; switch (response.Status) { case HttpStatusCode.OK: return(new FileContentResult(response.File, contentType) { FileDownloadName = Path.GetFileName(response.Path), }); case HttpStatusCode.InternalServerError: return(StatusCode(StatusCodes.Status500InternalServerError)); } s_logger.Fatal("This code should be unreachable, unknown result has occured."); } catch (Exception ex) { s_logger.Error(ex, "Unable to export database timespan."); } return(StatusCode(StatusCodes.Status500InternalServerError)); }
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); }
public IActionResult ClearHelpdesk([FromRoute] int id) { if (!IsAuthorized()) { return(Unauthorized()); } try { var facade = new HelpdeskFacade(); var response = facade.ForceCheckoutQueueRemove(id); switch (response.Status) { case HttpStatusCode.OK: return(Ok(response)); case HttpStatusCode.InternalServerError: return(StatusCode(StatusCodes.Status500InternalServerError)); } s_logger.Fatal("This code should be unreachable, unknown result has occured."); } catch (Exception ex) { s_logger.Error(ex, "Unable to clear helpdesk queue and/or check ins."); } return(StatusCode(StatusCodes.Status500InternalServerError)); }
public void GetTimespanNotFound() { HelpdeskFacade helpdeskFacade = new HelpdeskFacade(); GetTimeSpanResponse getTimespanResponse = helpdeskFacade.GetTimeSpan(-1); Assert.AreEqual(HttpStatusCode.NotFound, getTimespanResponse.Status); }
public void DeleteTimespanNotFound() { HelpdeskFacade helpdeskFacade = new HelpdeskFacade(); DeleteTimeSpanResponse deleteResponse = helpdeskFacade.DeleteTimeSpan(-1); Assert.AreEqual(HttpStatusCode.OK, deleteResponse.Status); }
public void GetHelpdeskNotFound() { var facade = new HelpdeskFacade(); var response = facade.GetHelpdesk(-1); Assert.AreEqual(HttpStatusCode.NotFound, response.Status); Assert.IsNull(response.Helpdesk); }
public TestEntityFactory() { HelpdeskFacade = new HelpdeskFacade(); UnitsFacade = new UnitsFacade(); TopicsFacade = new TopicsFacade(); QueueFacade = new QueueFacade(); CheckInFacade = new CheckInFacade(); StudentFacade = new StudentFacade(); }
public void GetHelpdesks() { var factory = new TestEntityFactory(); var data = factory.AddHelpdesk(AlphaNumericStringGenerator.GetString(10)); var facade = new HelpdeskFacade(); var response = facade.GetHelpdesks(); Assert.AreEqual(HttpStatusCode.OK, response.Status); Assert.IsTrue(response.Helpdesks.Count > 0); }
public void GetHelpdeskSuccess() { var factory = new TestEntityFactory(); var data = factory.AddHelpdesk(AlphaNumericStringGenerator.GetString(10)); var facade = new HelpdeskFacade(); var response = facade.GetHelpdesk(data.Response.HelpdeskID); Assert.AreEqual(HttpStatusCode.OK, response.Status); Assert.IsNotNull(response.Helpdesk); }
public void AddHelpdeskNoName() { var request = new AddHelpdeskRequest() { HasCheckIn = false, HasQueue = true }; var facade = new HelpdeskFacade(); var response = facade.AddHelpdesk(request); Assert.AreEqual(HttpStatusCode.BadRequest, response.Status); }
public void UpdateNotFoundHelpdesk() { var facade = new HelpdeskFacade(); var updateRequest = new UpdateHelpdeskRequest() { HasCheckIn = true, HasQueue = true, Name = AlphaNumericStringGenerator.GetString(10) }; var updateResponse = facade.UpdateHelpdesk(-1, updateRequest); Assert.AreEqual(HttpStatusCode.NotFound, updateResponse.Status); }
public void UpdateTimespanNotFound() { HelpdeskFacade helpdeskFacade = new HelpdeskFacade(); UpdateTimeSpanRequest updateTimespanRequest = new UpdateTimeSpanRequest() { Name = AlphaNumericStringGenerator.GetString(10), StartDate = new DateTime(2019, 08, 01), EndDate = new DateTime(2019, 11, 01) }; UpdateTimeSpanResponse updateTimespanResponse = helpdeskFacade.UpdateTimeSpan(-1, updateTimespanRequest); Assert.AreEqual(HttpStatusCode.NotFound, updateTimespanResponse.Status); }
public Task Execute(IJobExecutionContext context) { try { var facade = new HelpdeskFacade(); if (facade.ExportDatabase().Status != HttpStatusCode.OK) { s_logger.Error("Unable to export database."); } } catch (Exception ex) { s_logger.Error(ex, "Unable to export database."); } return(Task.CompletedTask); }
public void AddTimespanStartDatePredatesSystem() { HelpdeskFacade helpdeskFacade = new HelpdeskFacade(); AddTimeSpanRequest addTimeSpanRequest = new AddTimeSpanRequest(); addTimeSpanRequest.HelpdeskId = 1; addTimeSpanRequest.Name = AlphaNumericStringGenerator.GetString(10); DateTime startDate = new DateTime(2018, 1, 1, 0, 0, 0); DateTime endDate = DateTime.Today; addTimeSpanRequest.StartDate = startDate; addTimeSpanRequest.EndDate = endDate; AddTimeSpanResponse addTimeSpanResponse = helpdeskFacade.AddTimeSpan(addTimeSpanRequest); Assert.AreEqual(HttpStatusCode.BadRequest, addTimeSpanResponse.Status); }
public void UpdateHelpdesk() { var request = new AddHelpdeskRequest() { HasCheckIn = false, HasQueue = true, Name = AlphaNumericStringGenerator.GetString(10) }; var facade = new HelpdeskFacade(); var response = facade.AddHelpdesk(request); Assert.AreEqual(HttpStatusCode.OK, response.Status); Assert.IsTrue(response.HelpdeskID > 0); using (helpdesksystemContext context = new helpdesksystemContext()) { var helpdesk = context.Helpdesksettings.FirstOrDefault(p => p.HelpdeskId == response.HelpdeskID); Assert.IsNotNull(helpdesk); } var updateRequest = new UpdateHelpdeskRequest() { HasCheckIn = true, HasQueue = true, Name = AlphaNumericStringGenerator.GetString(10) }; var updateResponse = facade.UpdateHelpdesk(response.HelpdeskID, updateRequest); Assert.AreEqual(HttpStatusCode.OK, response.Status); using (helpdesksystemContext context = new helpdesksystemContext()) { var helpdesk = context.Helpdesksettings.FirstOrDefault(p => p.HelpdeskId == response.HelpdeskID); Assert.IsNotNull(helpdesk); Assert.AreEqual(updateRequest.HasCheckIn, helpdesk.HasCheckIn); Assert.AreEqual(updateRequest.HasQueue, helpdesk.HasQueue); Assert.AreEqual(updateRequest.Name, helpdesk.Name); } }
public void AddTimespanEndBeforeStart() { HelpdeskFacade helpdeskFacade = new HelpdeskFacade(); DateTime startDate = DateTime.Today; DateTime endDate = startDate.AddYears(-1); AddTimeSpanRequest addTimeSpanRequest = new AddTimeSpanRequest { HelpdeskId = 1, Name = AlphaNumericStringGenerator.GetString(10), StartDate = startDate, EndDate = endDate }; AddTimeSpanResponse addTimeSpanResponse = helpdeskFacade.AddTimeSpan(addTimeSpanRequest); Assert.AreEqual(HttpStatusCode.BadRequest, addTimeSpanResponse.Status); }
public void GetTimespanFound() { AddHelpdeskRequest addHelpdeskRequest = new AddHelpdeskRequest { HasCheckIn = false, HasQueue = true, Name = AlphaNumericStringGenerator.GetString(10) }; HelpdeskFacade helpdeskFacade = new HelpdeskFacade(); AddHelpdeskResponse addHelpdeskResponse = helpdeskFacade.AddHelpdesk(addHelpdeskRequest); Assert.AreEqual(HttpStatusCode.OK, addHelpdeskResponse.Status); AddTimeSpanRequest addTimeSpanRequest = new AddTimeSpanRequest { HelpdeskId = addHelpdeskResponse.HelpdeskID, Name = AlphaNumericStringGenerator.GetString(10), StartDate = DateTime.Today, EndDate = DateTime.Today.AddYears(1) }; AddTimeSpanResponse addTimeSpanResponse = helpdeskFacade.AddTimeSpan(addTimeSpanRequest); Assert.AreEqual(HttpStatusCode.OK, addTimeSpanResponse.Status); GetTimeSpanResponse getTimespanResponse = helpdeskFacade.GetTimeSpan(addTimeSpanResponse.SpanId); Assert.AreEqual(HttpStatusCode.OK, getTimespanResponse.Status); Assert.AreEqual(addTimeSpanRequest.Name, getTimespanResponse.Timespan.Name); using (helpdesksystemContext context = new helpdesksystemContext()) { var timespan = context.Timespans.FirstOrDefault(t => t.SpanId == addTimeSpanResponse.SpanId); Assert.IsNotNull(timespan); Assert.AreEqual(addHelpdeskResponse.HelpdeskID, timespan.HelpdeskId); Assert.AreEqual(addTimeSpanRequest.Name, timespan.Name); } }
public IActionResult AddHelpdesk([FromRoute] int id, [FromBody] UpdateHelpdeskRequest request) { if (!IsAuthorized()) { return(Unauthorized()); } if (request == null) { return(BadRequest()); } try { var facade = new HelpdeskFacade(); var response = facade.UpdateHelpdesk(id, request); switch (response.Status) { case HttpStatusCode.OK: return(Ok(response)); case HttpStatusCode.BadRequest: return(BadRequest(BuildBadRequestMessage(response))); case HttpStatusCode.InternalServerError: return(StatusCode(StatusCodes.Status500InternalServerError)); case HttpStatusCode.NotFound: return(NotFound()); } s_logger.Fatal("This code should be unreachable, unknown result has occured."); } catch (Exception ex) { s_logger.Error(ex, "Unable to update helpdesk."); } return(StatusCode(StatusCodes.Status500InternalServerError)); }
/// <summary> /// Adds a test helpdesk in the database. /// </summary> /// <param name="name">Name of the Helpdesk (auto-generates if not provided, or empty string is provided).</param> /// <param name="hasCheckin">Determines if the helpdesk utilises the check-in/check-out functionality.</param> /// <param name="hasQueue">Determines if the helpdesk utilises the queue functionality.</param> /// <returns></returns> public TestDataHelpdesk AddHelpdesk(string name = "", bool?hasCheckin = true, bool?hasQueue = true) { var request = new AddHelpdeskRequest(); if (name == "" && PopulateEmptyStrings) { request.Name = AlphaNumericStringGenerator.GetString(10); } else { request.Name = name; } request.Name = string.IsNullOrEmpty(name) && PopulateEmptyStrings?AlphaNumericStringGenerator.GetString(10) : name; request.HasCheckIn = (bool)hasCheckin; request.HasQueue = (bool)hasQueue; var response = HelpdeskFacade.AddHelpdesk(request); TestDataHelpdesk data = new TestDataHelpdesk(request, response); return(data); }