public override int GetHashCode()
        {
            unchecked
            {
                const int hashBase   = (int)2166136261;
                const int multiplier = 16777619;

                int hash = hashBase;
                hash = (hash * multiplier) ^ (Standard is null ? 0 : Standard.GetHashCode());
                hash = (hash * multiplier) ^ (Learner is null ? 0 : Learner.GetHashCode());
                hash = (hash * multiplier) ^ (LearningDetails is null ? 0 : LearningDetails.GetHashCode());
                hash = (hash * multiplier) ^ (PostalContact is null ? 0 : PostalContact.GetHashCode());
                return(hash);
            }
        }
 public LearningController(ILogger <LearningController> logger,
                           IOptions <LearningDetails> learningDetails)
 {
     this.logger          = logger;
     this.learningDetails = learningDetails?.Value;
 }
        public override void Given()
        {
            CreateMapper();
            ProviderUkprn = 987654321;

            SoaLearnerRecordDetailsViewModel = new SoaLearnerRecordDetailsViewModel
            {
                ProfileId     = 10,
                Uln           = 1234567890,
                LearnerName   = "John Smith",
                DateofBirth   = DateTime.Now.AddYears(-20),
                ProviderName  = "Barsley College",
                ProviderUkprn = 456789123,

                TlevelTitle           = "Design, Surveying and Planning for Construction",
                RegistrationPathwayId = 1,
                PathwayDisplayName    = "Design, Surveying and Planning for Construction (60358300)",
                PathwayName           = "Design, Surveying and Planning for Construction",
                PathwayCode           = "60358300",
                PathwayGrade          = "A*",
                SpecialismDisplayName = "Building Services Design (ZTLOS003)",
                SpecialismName        = "Building Services Design",
                SpecialismCode        = "ZTLOS003",
                SpecialismGrade       = "None",

                IsEnglishAndMathsAchieved = true,
                HasLrsEnglishAndMaths     = false,
                IsSendLearner             = true,
                IndustryPlacementStatus   = IndustryPlacementStatus.NotCompleted,

                HasPathwayResult             = false,
                IsNotWithdrawn               = false,
                IsLearnerRegistered          = true,
                IsIndustryPlacementAdded     = true,
                IsIndustryPlacementCompleted = false,

                ProviderAddress = new AddressViewModel {
                    AddressId = 10, DepartmentName = "Operations", OrganisationName = "College Ltd", AddressLine1 = "10, House", AddressLine2 = "Street", Town = "Birmingham", Postcode = "B1 1AA"
                },
            };

            _expectedLearningDetails = new LearningDetails
            {
                TLevelTitle            = SoaLearnerRecordDetailsViewModel.TlevelTitle,
                Grade                  = null,
                Date                   = DateTime.UtcNow.ToSoaFormat(),
                Core                   = SoaLearnerRecordDetailsViewModel.PathwayName,
                CoreGrade              = SoaLearnerRecordDetailsViewModel.PathwayGrade,
                OccupationalSpecialism = new List <OccupationalSpecialismDetails>
                {
                    new OccupationalSpecialismDetails
                    {
                        Specialism = SoaLearnerRecordDetailsViewModel.SpecialismName,
                        Grade      = SoaLearnerRecordDetailsViewModel.SpecialismGrade
                    }
                },
                IndustryPlacement = SoaLearnerRecordDetailsViewModel.IsIndustryPlacementCompleted ? Constants.IndustryPlacementCompleted : Constants.IndustryPlacementNotCompleted,
                EnglishAndMaths   = SoaLearnerRecordDetailsViewModel.IsEnglishAndMathsAchieved ? Constants.EnglishAndMathsMet : Constants.EnglishAndMathsNotMet
            };

            _expectedSoaPrintingDetails = new SoaPrintingDetails
            {
                Uln               = SoaLearnerRecordDetailsViewModel.Uln,
                Name              = SoaLearnerRecordDetailsViewModel.LearnerName,
                Dateofbirth       = SoaLearnerRecordDetailsViewModel.DateofBirth.ToDobFormat(),
                ProviderName      = SoaLearnerRecordDetailsViewModel.ProviderDisplayName,
                TlevelTitle       = SoaLearnerRecordDetailsViewModel.TlevelTitle,
                Core              = SoaLearnerRecordDetailsViewModel.PathwayDisplayName,
                CoreGrade         = SoaLearnerRecordDetailsViewModel.PathwayGrade,
                Specialism        = SoaLearnerRecordDetailsViewModel.SpecialismDisplayName,
                SpecialismGrade   = SoaLearnerRecordDetailsViewModel.SpecialismGrade,
                EnglishAndMaths   = SoaLearnerRecordDetailsViewModel.GetEnglishAndMathsStatusDisplayText,
                IndustryPlacement = SoaLearnerRecordDetailsViewModel.GetIndustryPlacementDisplayText,
                ProviderAddress   = new Models.Contracts.ProviderAddress.Address
                {
                    AddressId        = SoaLearnerRecordDetailsViewModel.ProviderAddress.AddressId,
                    DepartmentName   = SoaLearnerRecordDetailsViewModel.ProviderAddress.DepartmentName,
                    OrganisationName = SoaLearnerRecordDetailsViewModel.ProviderAddress.OrganisationName,
                    AddressLine1     = SoaLearnerRecordDetailsViewModel.ProviderAddress.AddressLine1,
                    AddressLine2     = SoaLearnerRecordDetailsViewModel.ProviderAddress.AddressLine2,
                    Town             = SoaLearnerRecordDetailsViewModel.ProviderAddress.Town,
                    Postcode         = SoaLearnerRecordDetailsViewModel.ProviderAddress.Postcode
                }
            };
        }
 public void DeleteLearningDetailsItem(LearningDetailsViewModel vm)
 {
     LearningDetails.Remove(vm);
 }