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 #126 from AppliedIS/issue-44
Browse files Browse the repository at this point in the history
Electronic signature
  • Loading branch information
jefferey committed Nov 10, 2016
2 parents 1ef52ba + adc1a16 commit 2fed107
Show file tree
Hide file tree
Showing 24 changed files with 451 additions and 30 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ public static void Register()
container.Register<IEmployeeValidator, EmployeeValidator>(Lifestyle.Singleton);
container.Register<IWIOAWorkerValidator, WIOAWorkerValidator>(Lifestyle.Singleton);
container.Register<IAddressValidatorNoCounty, AddressValidatorNoCounty>(Lifestyle.Singleton);
container.Register<ISignatureValidator, SignatureValidator>(Lifestyle.Singleton);

// This is an extension method from the integration package.
container.RegisterWebApiControllers(GlobalConfiguration.Configuration);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@
<Compile Include="Validators\IAlternateWageDataValidator.cs" />
<Compile Include="Validators\IEmployeeValidator.cs" />
<Compile Include="Validators\IPrevailingWageSurveyInfoValidator.cs" />
<Compile Include="Validators\ISignatureValidator.cs" />
<Compile Include="Validators\ISourceEmployerValidator.cs" />
<Compile Include="Validators\IWIOAValidator.cs" />
<Compile Include="Validators\IWIOAWorkerValidator.cs" />
Expand All @@ -92,6 +93,7 @@
<Compile Include="Validators\IPieceRateWageInfoValidator.cs" />
<Compile Include="Validators\IHourlyWageInfoValidator.cs" />
<Compile Include="Validators\PrevailingWageSurveyInfoValidator.cs" />
<Compile Include="Validators\SignatureValidator.cs" />
<Compile Include="Validators\SourceEmployerValidator.cs" />
<Compile Include="Validators\WageTypeInfoValidator.cs" />
<Compile Include="Validators\WIOAValidator.cs" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,11 @@ namespace DOL.WHD.Section14c.Business.Validators
{
public class ApplicationSubmissionValidator : BaseValidator<ApplicationSubmission>, IApplicationSubmissionValidator
{
public ApplicationSubmissionValidator(IEmployerValidator employerValidator, IHourlyWageInfoValidator hourlyWageInfoValidator, IPieceRateWageInfoValidator pieceRateWageInfoValidator, IWorkSiteValidator workSiteValidator, IWIOAValidator wioaValidator)
public ApplicationSubmissionValidator(ISignatureValidator signatureValidator, IEmployerValidator employerValidator, IHourlyWageInfoValidator hourlyWageInfoValidator, IPieceRateWageInfoValidator pieceRateWageInfoValidator, IWorkSiteValidator workSiteValidator, IWIOAValidator wioaValidator)
{
// required
RuleFor(a => a.EIN).NotEmpty();
RuleFor(a => a.Signature).NotNull().SetValidator(signatureValidator);
RuleFor(a => a.ApplicationTypeId).NotNull().GreaterThanOrEqualTo(1).LessThanOrEqualTo(2);
RuleFor(a => a.HasPreviousApplication).NotNull();
RuleFor(a => a.HasPreviousCertificate).NotNull();
Expand Down
9 changes: 9 additions & 0 deletions DOL.WHD.Section14c.Business/Validators/ISignatureValidator.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
using DOL.WHD.Section14c.Domain.Models.Submission;
using FluentValidation;

namespace DOL.WHD.Section14c.Business.Validators
{
public interface ISignatureValidator : IValidator<Signature>
{
}
}
16 changes: 16 additions & 0 deletions DOL.WHD.Section14c.Business/Validators/SignatureValidator.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
using DOL.WHD.Section14c.Domain.Models.Submission;
using FluentValidation;

namespace DOL.WHD.Section14c.Business.Validators
{
public class SignatureValidator : AbstractValidator<Signature>, ISignatureValidator
{
public SignatureValidator()
{
RuleFor(s => s.Agreement).Equal(true);
RuleFor(s => s.FullName).NotEmpty();
RuleFor(s => s.Title).NotEmpty();
RuleFor(s => s.Date).NotEmpty();
}
}
}
5 changes: 5 additions & 0 deletions DOL.WHD.Section14c.DataAccess/ApplicationDbContext.cs
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,11 @@ protected override void OnModelCreating(DbModelBuilder modelBuilder)
modelBuilder.Entity<Response>().Property(a => a.QuestionKey).IsRequired();
modelBuilder.Entity<Response>().Property(a => a.Display).IsRequired();
modelBuilder.Entity<Response>().Property(a => a.IsActive).IsRequired();
// Signature
modelBuilder.Entity<Signature>().Property(a => a.Agreement).IsRequired();
modelBuilder.Entity<Signature>().Property(a => a.FullName).IsRequired();
modelBuilder.Entity<Signature>().Property(a => a.Title).IsRequired();
modelBuilder.Entity<Signature>().Property(a => a.Date).IsRequired();
// SourceEmployer
modelBuilder.Entity<SourceEmployer>().Property(a => a.EmployerName).IsRequired();
modelBuilder.Entity<SourceEmployer>().Property(a => a.Phone).IsRequired();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,10 @@
<Compile Include="Migrations\201611081954473_RemoveRequiredCounty.Designer.cs">
<DependentUpon>201611081954473_RemoveRequiredCounty.cs</DependentUpon>
</Compile>
<Compile Include="Migrations\201611101838282_AddSignature.cs" />
<Compile Include="Migrations\201611101838282_AddSignature.Designer.cs">
<DependentUpon>201611101838282_AddSignature.cs</DependentUpon>
</Compile>
<Compile Include="Migrations\Configuration.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Repositories\ApplicationRepository.cs" />
Expand Down Expand Up @@ -325,6 +329,9 @@
<EmbeddedResource Include="Migrations\201611081954473_RemoveRequiredCounty.resx">
<DependentUpon>201611081954473_RemoveRequiredCounty.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Migrations\201611101838282_AddSignature.resx">
<DependentUpon>201611101838282_AddSignature.cs</DependentUpon>
</EmbeddedResource>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
namespace DOL.WHD.Section14c.DataAccess.Migrations
{
using System;
using System.Data.Entity.Migrations;

public partial class AddSignature : DbMigration
{
public override void Up()
{
CreateTable(
"dbo.Signatures",
c => new
{
Id = c.Guid(nullable: false),
Agreement = c.Boolean(nullable: false),
FullName = c.String(nullable: false),
Title = c.String(nullable: false),
Date = c.DateTime(nullable: false),
CreatedBy_Id = c.String(),
CreatedAt = c.DateTime(nullable: false),
LastModifiedBy_Id = c.String(maxLength: 128),
LastModifiedAt = c.DateTime(nullable: false),
})
.PrimaryKey(t => t.Id)
.ForeignKey("dbo.Users", t => t.LastModifiedBy_Id)
.Index(t => t.LastModifiedBy_Id);

AddColumn("dbo.ApplicationSubmissions", "Signature_Id", c => c.Guid());
CreateIndex("dbo.ApplicationSubmissions", "Signature_Id");
AddForeignKey("dbo.ApplicationSubmissions", "Signature_Id", "dbo.Signatures", "Id");
}

public override void Down()
{
DropForeignKey("dbo.ApplicationSubmissions", "Signature_Id", "dbo.Signatures");
DropForeignKey("dbo.Signatures", "LastModifiedBy_Id", "dbo.Users");
DropIndex("dbo.Signatures", new[] { "LastModifiedBy_Id" });
DropIndex("dbo.ApplicationSubmissions", new[] { "Signature_Id" });
DropColumn("dbo.ApplicationSubmissions", "Signature_Id");
DropTable("dbo.Signatures");
}
}
}

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions DOL.WHD.Section14c.Domain/DOL.WHD.Section14c.Domain.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@
<Compile Include="Models\Submission\PieceRateWageInfo.cs" />
<Compile Include="Models\Submission\PrevailingWageSurveyInfo.cs" />
<Compile Include="Models\Submission\Response.cs" />
<Compile Include="Models\Submission\Signature.cs" />
<Compile Include="Models\Submission\SourceEmployer.cs" />
<Compile Include="Models\Submission\WageTypeInfo.cs" />
<Compile Include="Models\Submission\WIOA.cs" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,12 @@ public ApplicationSubmission()

public Guid Id { get; set; }

#region Assurances

public Signature Signature { get; set; }

#endregion

#region Application Info

public string EIN { get; set; }
Expand Down
18 changes: 18 additions & 0 deletions DOL.WHD.Section14c.Domain/Models/Submission/Signature.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
using System;

namespace DOL.WHD.Section14c.Domain.Models.Submission
{
public class Signature : BaseEntity
{
public Signature()
{
Id = Guid.NewGuid();
}

public Guid Id { get; set; }
public bool? Agreement { get; set; }
public string FullName { get; set; }
public string Title { get; set; }
public DateTime Date { get; set; }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,13 @@ public class ApplicationSubmissionValidatorTests
private readonly ApplicationSubmissionValidator _applicationSubmissionValidator;
public ApplicationSubmissionValidatorTests()
{
var signatureValidatorMock = new Mock<ISignatureValidator>();
var employerValidatorMock = new Mock<IEmployerValidator>();
var hourlyWageInfoValidatorMock = new Mock<IHourlyWageInfoValidator>();
var pieceRateWageInfoValidatorMock = new Mock<IPieceRateWageInfoValidator>();
var workSiteValidatorMock = new Mock<IWorkSiteValidator>();
var wioaValidatorMock = new Mock<IWIOAValidator>();
_applicationSubmissionValidator = new ApplicationSubmissionValidator(employerValidatorMock.Object, hourlyWageInfoValidatorMock.Object, pieceRateWageInfoValidatorMock.Object, workSiteValidatorMock.Object, wioaValidatorMock.Object);
_applicationSubmissionValidator = new ApplicationSubmissionValidator(signatureValidatorMock.Object, employerValidatorMock.Object, hourlyWageInfoValidatorMock.Object, pieceRateWageInfoValidatorMock.Object, workSiteValidatorMock.Object, wioaValidatorMock.Object);
}

[TestMethod]
Expand All @@ -27,6 +28,12 @@ public void Should_Require_EIN()
_applicationSubmissionValidator.ShouldHaveValidationErrorFor(x => x.EIN, "");
}

[TestMethod]
public void Should_Require_Signature()
{
_applicationSubmissionValidator.ShouldHaveValidationErrorFor(x => x.Signature, null as Signature);
}

[TestMethod]
public void Should_Require_ApplicationTypeId()
{
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
using System;
using DOL.WHD.Section14c.Business.Validators;
using FluentValidation.TestHelper;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace DOL.WHD.Section14c.Test.Business.Validators
{
[TestClass]
public class SignatureValidatorTests
{
private ISignatureValidator _signatureValidator;
public SignatureValidatorTests()
{
_signatureValidator = new SignatureValidator();
}

[TestMethod]
public void Should_Require_Agreement()
{
_signatureValidator.ShouldHaveValidationErrorFor(x => x.Agreement, null as bool?);
}

[TestMethod]
public void Should_Require_FullName()
{
_signatureValidator.ShouldHaveValidationErrorFor(x => x.FullName, "");
}

[TestMethod]
public void Should_Require_Title()
{
_signatureValidator.ShouldHaveValidationErrorFor(x => x.Title, "");
}

[TestMethod]
public void Should_Require_Date()
{
_signatureValidator.ShouldHaveValidationErrorFor(x => x.Date, default(DateTime));
}
}
}
2 changes: 2 additions & 0 deletions DOL.WHD.Section14c.Test/DOL.WHD.Section14c.Test.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@
<Compile Include="Business\Validators\HourlyWageInfoValidatorTests.cs" />
<Compile Include="Business\Validators\PieceRateWageInfoValidatorTests.cs" />
<Compile Include="Business\Validators\PrevailingWageSurveyInfoValidatorTests.cs" />
<Compile Include="Business\Validators\SignatureValidatorTests.cs" />
<Compile Include="Business\Validators\SourceEmployerValidatorTests.cs" />
<Compile Include="Business\Validators\WIOAValidatorTests.cs" />
<Compile Include="Business\Validators\WIOAWorkerValidatorTests.cs" />
Expand All @@ -125,6 +126,7 @@
<Compile Include="Domain\Models\Submission\PieceRateWageInfoTests.cs" />
<Compile Include="Domain\Models\Submission\PrevailingWageSurveyInfoTests.cs" />
<Compile Include="Domain\Models\Submission\ResponseTests.cs" />
<Compile Include="Domain\Models\Submission\SignatureTests.cs" />
<Compile Include="Domain\Models\Submission\WIOAWorkerTests.cs" />
<Compile Include="Domain\Models\Submission\WorkSiteTests.cs" />
<Compile Include="Domain\ViewModels\AccountDetailsViewModelTests.cs" />
Expand Down
32 changes: 32 additions & 0 deletions DOL.WHD.Section14c.Test/Domain/Models/Submission/SignatureTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
using System;
using DOL.WHD.Section14c.Domain.Models.Submission;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace DOL.WHD.Section14c.Test.Domain.Models.Submission
{
[TestClass]
public class SignatureTests
{
[TestMethod]
public void Signature_PublicProperties()
{
var agreement = true;
var fullName = "Full Name";
var title = "Title";
var date = DateTime.Now;

var model = new Signature
{
Agreement = agreement,
FullName = fullName,
Title = title,
Date = date
};

Assert.AreEqual(agreement, model.Agreement);
Assert.AreEqual(fullName, model.FullName);
Assert.AreEqual(title, model.Title);
Assert.AreEqual(date, model.Date);
}
}
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
'use strict';

module.exports = function(ngModule) {
ngModule.controller('sectionAssurancesController', function($scope, stateService) {
ngModule.controller('sectionAssurancesController', function($scope, stateService, validationService) {
'ngInject';
'use strict';

$scope.formData = stateService.formData;
$scope.validate = validationService.getValidationErrors;

var vm = this;
});
Expand Down
Loading

0 comments on commit 2fed107

Please sign in to comment.