Exemplo n.º 1
0
 public AddEditApprenticeshipQAForComplianceModel(ApprenticeshipQACompliance apprenticeshipQACompliance) : this()
 {
     this.ApprenticeshipQAComplianceId = apprenticeshipQACompliance.ApprenticeshipQAComplianceId;
     this.ApprenticeshipId             = apprenticeshipQACompliance.ApprenticeshipId;
     this.DetailsOfUnverifiableClaim   = apprenticeshipQACompliance.DetailsOfUnverifiableClaim;
     this.DetailsOfComplianceFailure   = apprenticeshipQACompliance.DetailsOfComplianceFailure;
     this.Passed = apprenticeshipQACompliance.Passed ? "1" : "0";
     foreach (QAComplianceFailureReason fr in apprenticeshipQACompliance.QAComplianceFailureReasons)
     {
         this.SelectedComplianceFailureReasons.Add(fr.QAComplianceFailureReasonId);
     }
 }
        public ActionResult QAForComplianceFromDialog(AddEditApprenticeshipQAForComplianceModel model)
        {
            if (userContext.ContextName != UserContext.UserContextName.Provider)
            {
                return(HttpNotFound());
            }

            Provider provider = db.Providers.Find(userContext.ItemId);

            if (provider == null)
            {
                return(HttpNotFound());
            }

            Apprenticeship apprenticeship = db.Apprenticeships.Find(model.ApprenticeshipId);

            if (apprenticeship == null || apprenticeship.ProviderId != provider.ProviderId)
            {
                return(HttpNotFound());
            }

            // If passed compliance checks is No then failure reasons should be mandatory
            if (model.Passed == "0" && model.SelectedComplianceFailureReasons.Count == 0)
            {
                ModelState.AddModelError("SelectedComplianceFailureReasons", AppGlobal.Language.GetText(this, "SelectedComplianceFailureReasonsMandatory", "Please select a reason for failure"));
            }
            else if (model.Passed == "1" && model.SelectedComplianceFailureReasons.Count > 0)
            {
                ModelState.AddModelError("Passed", AppGlobal.Language.GetText(this, "CannotPassComplianceQAWithFailureReasons", "Passed compliance checks should only be Yes when no failure reasons have been selected"));
            }

            if (ModelState.IsValid)
            {
                ApprenticeshipQACompliance QA = model.ToEntity(db);
                apprenticeship.ApprenticeshipQACompliances.Add(QA);
                db.Entry(apprenticeship).State = System.Data.Entity.EntityState.Modified;
                db.SaveChanges();

                return(Json(new ApprenticeshipQAForComplianceJsonModel(QA)));
            }

            // Populate drop downs
            GetLookups(model);

            return(View(model));
        }
        public static ApprenticeshipQACompliance ToEntity(this AddEditApprenticeshipQAForComplianceModel model, ProviderPortalEntities db)
        {
            Apprenticeship apprenticeship = db.Apprenticeships.Find(model.ApprenticeshipId);

            ApprenticeshipQACompliance QA;

            if (model.ApprenticeshipQAComplianceId.HasValue)
            {
                QA = db.ApprenticeshipQACompliances.Find(model.ApprenticeshipQAComplianceId);
            }
            else
            {
                QA = new ApprenticeshipQACompliance
                {
                    ApprenticeshipId   = model.ApprenticeshipId,
                    CreatedByUserId    = Permission.GetCurrentUserId(),
                    CreatedDateTimeUtc = DateTime.UtcNow,
                    TextQAd            = apprenticeship.MarketingInformation
                };
            }

            // If adding new properties here please also add them to the bulk upload
            // otherwise data loss will occur.  Bulk upload deletes and re-creates
            // apprenticeships.  It also deletes all QA records associated with
            // apprenticeships and these have to be re-added after the bulk upload has finished.
            // This is handled in the LoadApprenticeships method of the ApprenticeshipConverter class

            QA.DetailsOfUnverifiableClaim = model.DetailsOfUnverifiableClaim;
            QA.DetailsOfComplianceFailure = model.DetailsOfComplianceFailure;
            QA.Passed = model.Passed == "1";

            // Add the failure reasons
            foreach (Int32 frId in model.SelectedComplianceFailureReasons)
            {
                QAComplianceFailureReason fr = db.QAComplianceFailureReasons.Find(frId);
                if (fr != null)
                {
                    QA.QAComplianceFailureReasons.Add(fr);
                }
            }

            return(QA);
        }
Exemplo n.º 4
0
 public ApprenticeshipQAForComplianceJsonModel(ApprenticeshipQACompliance apprenticeshipQACompliance)
     : this()
 {
     this.ApprenticeshipQAForComplianceId = apprenticeshipQACompliance.ApprenticeshipQAComplianceId;
     this.Passed = apprenticeshipQACompliance.Passed;
 }