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 #164 from AppliedIS/feature-changestatus
Browse files Browse the repository at this point in the history
Feature changestatus
  • Loading branch information
jefferey committed Nov 22, 2016
2 parents c097945 + d90cffa commit d154a37
Show file tree
Hide file tree
Showing 16 changed files with 181 additions and 4 deletions.
35 changes: 35 additions & 0 deletions DOL.WHD.Section14c.Api/Controllers/StatusController.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
using System.Collections.Generic;
using System.Web.Http;
using DOL.WHD.Section14c.Business;
using DOL.WHD.Section14c.Domain.Models.Submission;

namespace DOL.WHD.Section14c.Api.Controllers
{
/// <summary>
/// Controller for managing application statuses
/// </summary>
[RoutePrefix("/api/status")]
public class StatusController : ApiController
{
private readonly IStatusService _statusService;

/// <summary>
/// Constructor to handle passed status service
/// </summary>
/// <param name="statusService"></param>
public StatusController(IStatusService statusService)
{
_statusService = statusService;
}

/// <summary>
/// Gets a list of statuses
/// </summary>
/// <returns></returns>
[HttpGet]
public IEnumerable<Status> GetStatuses()
{
return _statusService.GetAllStatuses();
}
}
}
1 change: 1 addition & 0 deletions DOL.WHD.Section14c.Api/DOL.WHD.Section14c.Api.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -246,6 +246,7 @@
<Compile Include="Controllers\AttachmentController.cs" />
<Compile Include="Controllers\ResponseController.cs" />
<Compile Include="Controllers\SaveController.cs" />
<Compile Include="Controllers\StatusController.cs" />
<Compile Include="Filters\AuthorizeClaims.cs" />
<Compile Include="Filters\AuthorizeHttps.cs" />
<Compile Include="Global.asax.cs">
Expand Down
2 changes: 2 additions & 0 deletions DOL.WHD.Section14c.Business/IStatusService.cs
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
using System;
using System.Collections.Generic;
using DOL.WHD.Section14c.Domain.Models.Submission;

namespace DOL.WHD.Section14c.Business
{
public interface IStatusService : IDisposable
{
IEnumerable<Status> GetAllStatuses();
Status GetStatus(int id);
}
}
8 changes: 7 additions & 1 deletion DOL.WHD.Section14c.Business/Services/StatusService.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System.Linq;
using System.Collections.Generic;
using System.Linq;
using DOL.WHD.Section14c.DataAccess;
using DOL.WHD.Section14c.Domain.Models.Submission;

Expand All @@ -12,6 +13,11 @@ public StatusService(IStatusRepository repository)
_repository = repository;
}

public IEnumerable<Status> GetAllStatuses()
{
return _repository.Get().ToList();
}

public Status GetStatus(int id)
{
return _repository.Get().SingleOrDefault(x => x.Id == id);
Expand Down
16 changes: 15 additions & 1 deletion DOL.WHD.Section14c.Test/Business/StatusServiceTests.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using DOL.WHD.Section14c.Business.Services;
using System.Linq;
using DOL.WHD.Section14c.Business.Services;
using DOL.WHD.Section14c.DataAccess;
using DOL.WHD.Section14c.Test.RepositoryMocks;
using Microsoft.VisualStudio.TestTools.UnitTesting;
Expand Down Expand Up @@ -28,6 +29,19 @@ public void ReturnsStatus()
Assert.AreEqual("Pending", statusObj.Name);
}

[TestMethod]
public void ReturnsAllStatuses()
{
// Arrange
var service = new StatusService(_statusRepositoryMock);

// Act
var allStatuses = service.GetAllStatuses();

// Assert
Assert.AreEqual(7, allStatuses.Count());
}

[TestMethod]
public void Dispose()
{
Expand Down
1 change: 1 addition & 0 deletions DOL.WHD.Section14c.Web/src/modules/components/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ module.exports = function(ngModule) {
require('./sectionAdminAppInfo')(ngModule);
require('./sectionAdminAssurances')(ngModule);
require('./sectionAdminEmployer')(ngModule);
require('./sectionAdminSummary')(ngModule);
require('./sectionAdminWageData')(ngModule);
require('./sectionAdminWioa')(ngModule);
require('./sectionAdminWorkSites')(ngModule);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,11 @@ module.exports = function(ngModule) {
'ngInject';
'use strict';

$scope.sections = navService.getSections();
$scope.$watch(() => {
return navService.getSections();
}, (newVal, oldVal) => {
$scope.sections = navService.getSections();
});

var vm = this;
vm.stateService = stateService;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
'use strict';

module.exports = function(ngModule) {
require('./sectionAdminSummaryController')(ngModule);
require('./sectionAdminSummaryDirective')(ngModule);
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
'use strict';

module.exports = function(ngModule) {
ngModule.controller('sectionAdminSummaryController', function($scope, stateService, statusesService, apiService) {
'ngInject';
'use strict';

var vm = this;

statusesService.getStatuses().then((data) => {
vm.statuses = data;
});

vm.updateStatus = () => {
apiService.changeApplicationStatus(stateService.access_token, $scope.appid, $scope.appData.statusId);
};
});
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
'use strict';

module.exports = function(ngModule) {
ngModule.directive('sectionAdminSummary', function() {

'use strict';

return {
restrict: 'EA',
template: require('./sectionAdminSummaryTemplate.html'),
controller: 'sectionAdminSummaryController',
controllerAs: 'vm'
};
});
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<div class="admin-page">

<h1>Summary</h1>
<hr>

<div class="answer-block">
<div class="answer-question">Application Status</div>
<div class="answer-answer">
<select ng-model="appData.statusId" ng-options="status.id as status.name for status in vm.statuses"></select>
</div>
</div>

<button class="green-button nomargin" ng-click="vm.updateStatus()">Update Status</button>
</div>
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<div class="admin-page">
<h1>Work Sites &amp; Employees</h1>
<hr>

<div class="form-tabbed-section">
<div class="form-tab {{ vm.activeTab === 1 ? 'active' : '' }}" ng-click="vm.setActiveTab(1)"><div class="circle">1</div> Work Site</div>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<div class="admin-page">
<h1>Work Sites &amp; Employees</h1>

<hr>

<answer-field answer="$parent.appData.totalNumWorkSites">
What is the total number of establishments and work sites to be covered by this certificate?
</answer-field>
Expand Down
17 changes: 17 additions & 0 deletions DOL.WHD.Section14c.Web/src/modules/services/apiService.js
Original file line number Diff line number Diff line change
Expand Up @@ -416,5 +416,22 @@ module.exports = function(ngModule) {
return d.promise;
}

this.changeApplicationStatus = function(access_token, appId, newStatusId) {
const url = `${_env.api_url}/api/application/status?id=${appId}&statusId=${newStatusId}`;
const d = $q.defer();

$http({
method: 'POST',
url: url,
headers: {
'Authorization': 'bearer ' + access_token
}
}).then(function successCallback() {
d.resolve();
}, function errorCallback(error) {
d.reject(error);
});
}

});
}
1 change: 1 addition & 0 deletions DOL.WHD.Section14c.Web/src/modules/services/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,5 @@ module.exports = function(ngModule) {
require('./autoSaveService')(ngModule);
require('./validationService')(ngModule);
require('./submissionService')(ngModule);
require('./statusesService')(ngModule);
};
41 changes: 41 additions & 0 deletions DOL.WHD.Section14c.Web/src/modules/services/statusesService.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
'use strict';

import * as _ from 'lodash'

module.exports = function(ngModule) {
ngModule.service('statusesService', function($http, _env, $q) {
'ngInject';
'useStrict';

var statuses;
var url = `${_env.api_url}/api/status`;

this.getStatuses = function() {

let d = $q.defer();

if(statuses)
{
// load cached data
d.resolve(statuses);
}
else
{
// get data from server
$http({
method: 'GET',
url: url
}).then(function successCallback (data) {
// cache data
statuses = data.data;
d.resolve(data.data);
}, function errorCallback (error) {
d.reject(error);
});
}

return d.promise;
};
})
}

0 comments on commit d154a37

Please sign in to comment.