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);
        }
        public static ProviderQACompliance ToEntity(this AddEditProviderQAForComplianceModel model, ProviderPortalEntities db)
        {
            Provider Provider = db.Providers.Find(model.ProviderId);

            ProviderQACompliance QA;

            if (model.ProviderQAComplianceId.HasValue)
            {
                QA = db.ProviderQACompliances.Find(model.ProviderQAComplianceId);
            }
            else
            {
                QA = new ProviderQACompliance
                {
                    ProviderId         = model.ProviderId,
                    CreatedByUserId    = Permission.GetCurrentUserId(),
                    CreatedDateTimeUtc = DateTime.UtcNow,
                    TextQAd            = Provider.MarketingInformation
                };
            }

            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);
        }