public void Serialize_Applicant_ValidateSchema()
		{
			XmlDocument actual = (new BSTSmartScholarshipSerializer<Applicant>()).Serialize(this.TestApplicant);
			XmlSchemaProvider provider = new XmlSchemaProvider();

			actual.Schemas.Add(provider.GetSchemaFromResource("BSTSmartScholarship.Business.Schemas.Applicant.xsd"));
			actual.Validate(null);
		}
		public void ValidateSchema_Applicant_Invalid_StudentNumber()
		{
			Applicant applicant = this.TestApplicant;
			applicant.StudentNumber = "F";

			XmlDocument actual = (new BSTSmartScholarshipSerializer<Applicant>()).Serialize(applicant);
			XmlSchemaProvider provider = new XmlSchemaProvider();
			actual.Schemas.Add(provider.GetSchemaFromResource("BSTSmartScholarship.Business.Schemas.Applicant.xsd"));

			try
			{
				actual.Validate(null);
			}
			catch (XmlSchemaValidationException e)
			{
				Assert.AreEqual(@"The 'http://bstsmartscholarship.sesmar.net/applicant:StudentNumber' element is invalid - The value 'F' is invalid according to its datatype 'http://bstsmartscholarship.sesmar.net/applicant:StudentNumberType' - The Pattern constraint failed.", e.Message);
				throw e;
			}
		}
		public void Serialize_TuitionAmountResponse_ValidateSchema_Invalid_StudentNumber()
		{
			TuitionAmountResponse response = new TuitionAmountResponse() { StudentNumber = "88634351", TuitionAmount = 4500.00 };
			response.StudentNumber = "F";

			XmlDocument actual = (new BSTSmartScholarshipSerializer<TuitionAmountResponse>()).Serialize(response);
			XmlSchemaProvider provider = new XmlSchemaProvider();

			actual.Schemas.Add(provider.GetSchemaFromResource("BSTSmartScholarship.Business.Schemas.TuitionAmountResponse.xsd"));
			actual.Validate(null);
		}
		public void Serialize_TuitionAmountRequest_ValidateSchema_Invalid_StudentNumber()
		{
			TuitionAmountRequest request = new TuitionAmountRequest() { StudentNumber = "88634351" };
			request.StudentNumber = "F";

			XmlDocument actual = (new BSTSmartScholarshipSerializer<TuitionAmountRequest>()).Serialize(request);
			XmlSchemaProvider provider = new XmlSchemaProvider();

			actual.Schemas.Add(provider.GetSchemaFromResource("BSTSmartScholarship.Business.Schemas.TuitionAmountRequest.xsd"));
			actual.Validate(null);
		}
예제 #5
0
		public void Registrar_VerifyApplicant_Valid_StudentNumber()
		{
			Registrar registrar = new Registrar();
			BSTSmartScholarshipSerializer<Applicant> serializer = new BSTSmartScholarshipSerializer<Applicant>();
			XmlDocument applicantDoc = serializer.Serialize(this.TestApplicant);
			ISchemaProvider provider = new XmlSchemaProvider();
			applicantDoc.Schemas.Add(provider.GetSchemaFromResource("BSTSmartScholarship.Business.Schemas.Applicant.xsd"));
			applicantDoc.Validate(null);

			XmlDocument studentDoc = registrar.VerifyApplicant(applicantDoc);
			studentDoc.Schemas.Add(provider.GetSchemaFromResource("BSTSmartScholarship.Business.Schemas.Student.xsd"));
			studentDoc.Validate(null);

			BSTSmartScholarshipSerializer<Student> deserializer = new BSTSmartScholarshipSerializer<Student>();
			Student student = deserializer.Deserialize(studentDoc);

			Assert.AreEqual(student.StudentNumber, this.TestApplicant.StudentNumber);
		}
예제 #6
0
		public void Registrar_RequestTutionAmount_Valid_StudentNumber()
		{
			Registrar registrar = new Registrar();
			TuitionAmountRequest request = new TuitionAmountRequest() { StudentNumber = "88634352" };
			BSTSmartScholarshipSerializer<TuitionAmountRequest> serializer = new BSTSmartScholarshipSerializer<TuitionAmountRequest>();
			XmlDocument requestDoc = serializer.Serialize(request);
			ISchemaProvider provider = new XmlSchemaProvider();
			requestDoc.Schemas.Add(provider.GetSchemaFromResource("BSTSmartScholarship.Business.Schemas.TuitionAmountRequest.xsd"));
			requestDoc.Validate(null);

			XmlDocument responseDoc = registrar.RequestTuitionAmount(requestDoc);
			responseDoc.Schemas.Add(provider.GetSchemaFromResource("BSTSmartScholarship.Business.Schemas.TuitionAmountResponse.xsd"));
			responseDoc.Validate(null);

			BSTSmartScholarshipSerializer<TuitionAmountResponse> deserilaizer = new BSTSmartScholarshipSerializer<TuitionAmountResponse>();
			TuitionAmountResponse response = deserilaizer.Deserialize(responseDoc);

			Assert.AreEqual(response.StudentNumber, request.StudentNumber);
			Assert.AreEqual(response.TuitionAmount, 5500.00);
		}
예제 #7
0
		public ActionResult AwardApplicant(String sn)
		{
			List<Applicant> applicants = new List<Applicant>(ApplicantList.GetList(a => a.IsVerified.GetValueOrDefault(false) && a.IsEligible.GetValueOrDefault(false)));
			IEmailService emailService = new EmailService();
			EmailUtility email = new EmailUtility(emailService);

			Applicant applicant = applicants.FirstOrDefault(a => a.StudentNumber.Equals(sn, StringComparison.OrdinalIgnoreCase));

			//Notify other applicants that they did not win.
			foreach (String studentNumber in applicants.Where(a=> !a.StudentNumber.Equals(sn, StringComparison.OrdinalIgnoreCase)).Select(a => a.StudentNumber))
			{	
				email.SendNotAwardedEmail(studentNumber);
			}

			///Prepare the request for the registrar.
			TuitionAmountRequest request = new TuitionAmountRequest(applicant.StudentNumber);
			XmlSchemaProvider provider = new XmlSchemaProvider();
			XmlDocument requestDocument = (new BSTSmartScholarshipSerializer<TuitionAmountRequest>()).Serialize(request);
			Registrar registrar = new Registrar();

			XmlDocument responseDocument = registrar.RequestTuitionAmount(requestDocument);
			TuitionAmountResponse response = (new BSTSmartScholarshipSerializer<TuitionAmountResponse>()).Deserialize(responseDocument);

			//Award the scholarship
			Award.AddAward(applicant.StudentNumber, applicant.FirstName, applicant.LastName, response.TuitionAmount);

			//Notify Accounting of the reimbursement amount.
			Award.NotifyAccounting(response.StudentNumber, response.TuitionAmount);

			//Send award emails.
			email.SendAwardedEmail(sn, response.TuitionAmount);

			return RedirectToAction("Awarded", "Admin");
		}