Skip to content
This repository has been archived by the owner on Jan 17, 2024. It is now read-only.

Commit

Permalink
Merge pull request #129 from AppliedIS/feature-retrieveapplication
Browse files Browse the repository at this point in the history
add endpoint for retrieving applications
  • Loading branch information
MrMatt57 committed Nov 11, 2016
2 parents e311a2b + 28aaa36 commit 7c11409
Show file tree
Hide file tree
Showing 6 changed files with 53 additions and 6 deletions.
15 changes: 14 additions & 1 deletion DOL.WHD.Section14c.Api/Controllers/ApplicationController.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System.Net;
using System;
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;
using System.Web.Http;
Expand Down Expand Up @@ -46,6 +47,18 @@ public async Task<HttpResponseMessage> Submit([FromBody]ApplicationSubmission su
return Request.CreateResponse(HttpStatusCode.Created);
}

[HttpGet]
[AuthorizeClaims(ApplicationClaimTypes.ViewAllApplications)]
public HttpResponseMessage GetApplication(Guid id)
{
var application = _applicationService.GetApplicationById(id);
if (application != null)
{
return Request.CreateResponse(HttpStatusCode.OK, application);
}
return Request.CreateResponse(HttpStatusCode.NotFound);
}

[AllowAnonymous]
public HttpResponseMessage Options()
{
Expand Down
4 changes: 3 additions & 1 deletion DOL.WHD.Section14c.Business/IApplicationService.cs
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
using System.Threading.Tasks;
using System;
using System.Threading.Tasks;
using DOL.WHD.Section14c.Domain.Models.Submission;

namespace DOL.WHD.Section14c.Business
{
public interface IApplicationService
{
Task<int> SubmitApplicationAsync(ApplicationSubmission submission);
ApplicationSubmission GetApplicationById(Guid id);
ApplicationSubmission CleanupModel(ApplicationSubmission vm);
}
}
9 changes: 8 additions & 1 deletion DOL.WHD.Section14c.Business/Services/ApplicationService.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
using System.Threading.Tasks;
using System;
using System.Linq;
using System.Threading.Tasks;
using DOL.WHD.Section14c.DataAccess;
using DOL.WHD.Section14c.Domain.Models.Submission;

Expand All @@ -17,6 +19,11 @@ public Task<int> SubmitApplicationAsync(ApplicationSubmission submission)
return _applicationRepository.AddAsync(submission);
}

public ApplicationSubmission GetApplicationById(Guid id)
{
return _applicationRepository.Get().SingleOrDefault(x => x.Id == id);
}

public ApplicationSubmission CleanupModel(ApplicationSubmission vm)
{
var result = vm;
Expand Down
3 changes: 2 additions & 1 deletion DOL.WHD.Section14c.DataAccess/Migrations/Configuration.cs
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,7 @@ protected override void Seed(ApplicationDbContext context)
context.AddFeature(ApplicationClaimTypes.ModifyAccount, "Change Application Accounts");
context.AddFeature(ApplicationClaimTypes.SubmitApplication, "Submit Application");
context.AddFeature(ApplicationClaimTypes.GetRoles, "Get list of Application Roles");
context.AddFeature(ApplicationClaimTypes.ViewAllApplications, "View All Submitted Applications");

context.SaveChanges();

Expand All @@ -141,7 +142,7 @@ protected override void Seed(ApplicationDbContext context)
context.AddRoleFeature(Roles.SystemAdministrator, ApplicationClaimTypes.CreateAccount);
context.AddRoleFeature(Roles.SystemAdministrator, ApplicationClaimTypes.ModifyAccount);
context.AddRoleFeature(Roles.SystemAdministrator, ApplicationClaimTypes.GetRoles);

context.AddRoleFeature(Roles.SystemAdministrator, ApplicationClaimTypes.ViewAllApplications);
}

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@ public static class ApplicationClaimTypes
public const string ModifyAccount = ClaimPrefix + "UserManagement.ModifyAccount";
public const string GetRoles = ClaimPrefix + "UserManagement.GetRoles";

// Application Management
public const string ViewAllApplications = ClaimPrefix + "Application.ViewAll";

public const string Role = "http://schemas.microsoft.com/ws/2008/06/identity/claims/role";
}
}
25 changes: 23 additions & 2 deletions DOL.WHD.Section14c.Test/Business/ApplicationServiceTests.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using DOL.WHD.Section14c.Business;
using DOL.WHD.Section14c.Business.Services;
using DOL.WHD.Section14c.DataAccess;
Expand All @@ -11,11 +13,12 @@ namespace DOL.WHD.Section14c.Test.Business
[TestClass]
public class ApplicationServiceTests
{
private readonly Mock<IApplicationRepository> _mockRepo;
private readonly ApplicationService _applicationService;
public ApplicationServiceTests()
{
var mockRepo = new Mock<IApplicationRepository>();
_applicationService = new ApplicationService(mockRepo.Object);
_mockRepo = new Mock<IApplicationRepository>();
_applicationService = new ApplicationService(_mockRepo.Object);
}

[TestMethod]
Expand All @@ -24,6 +27,24 @@ public void ApplicationService_PublicProperties()
_applicationService.SubmitApplicationAsync(new ApplicationSubmission());
}

[TestMethod]
public void ApplicationService_ReturnsApplication()
{
// Arrange
var appId = Guid.NewGuid();
var applications = new List<ApplicationSubmission>()
{
new ApplicationSubmission {Id = appId}
};
_mockRepo.Setup(x => x.Get()).Returns(applications.AsQueryable());

// Act
var application = _applicationService.GetApplicationById(appId);

// Assert
Assert.AreEqual(applications[0], application);
}

[TestMethod]
public void ApplicationService_CleanupHourlyWageInfo()
{
Expand Down

0 comments on commit 7c11409

Please sign in to comment.