Esempio n. 1
0
        public None Execute(InMemoryDocumentStore inMemoryDocumentStore, UpsertFrameworks request)
        {
            foreach (var record in request.Records)
            {
                inMemoryDocumentStore.Frameworks.CreateOrUpdate(
                    d => d.FrameworkCode == record.FrameworkCode &&
                    d.ProgType == record.ProgType &&
                    d.PathwayCode == record.PathwayCode,
                    () => new Core.DataStore.CosmosDb.Models.Framework()
                {
                    Id                 = Guid.NewGuid(),
                    FrameworkCode      = record.FrameworkCode,
                    ProgType           = record.ProgType,
                    PathwayCode        = record.PathwayCode,
                    CreatedDateTimeUtc = request.Now,
                },
                    framework =>
                {
                    framework.EffectiveFrom          = record.EffectiveFrom;
                    framework.EffectiveTo            = record.EffectiveTo;
                    framework.ModifiedDateTimeUtc    = request.Now;
                    framework.NasTitle               = record.NasTitle;
                    framework.RecordStatusId         = 2; // Live
                    framework.SectorSubjectAreaTier1 = record.SectorSubjectAreaTier1;
                    framework.SectorSubjectAreaTier2 = record.SectorSubjectAreaTier2;
                });
            }

            return(new None());
        }
        public OneOf <NotFound, Success> Execute(InMemoryDocumentStore inMemoryDocumentStore, DeleteCourseRun request)
        {
            var course = inMemoryDocumentStore.Courses.All.SingleOrDefault(c => c.Id == request.CourseId);

            if (course == null)
            {
                return(new NotFound());
            }

            var courseRun = course.CourseRuns.SingleOrDefault(cr => cr.Id == request.CourseRunId);

            if (courseRun == null ||
                courseRun.RecordStatus == CourseStatus.Archived ||
                courseRun.RecordStatus == CourseStatus.Deleted)
            {
                return(new NotFound());
            }

            courseRun.RecordStatus = CourseStatus.Archived;

            course.CourseStatus = course.CourseRuns
                                  .Select(cr => cr.RecordStatus)
                                  .Aggregate((CourseStatus)0, (l, r) => l | r);

            inMemoryDocumentStore.Courses.Save(course);

            return(new Success());
        }
Esempio n. 3
0
        public void CanInitializeDocumentStore()
        {
            var store = new InMemoryDocumentStore(new MvxWpfSqLiteConnectionFactory());

            store.Initialize();
            Assert.IsNotNull(store.Connection);
        }
Esempio n. 4
0
        public None Execute(InMemoryDocumentStore inMemoryDocumentStore, UpsertStandards request)
        {
            foreach (var record in request.Records)
            {
                inMemoryDocumentStore.Standards.CreateOrUpdate(
                    d => d.StandardCode == record.StandardCode && d.Version == record.Version,
                    () => new Core.DataStore.CosmosDb.Models.Standard()
                {
                    Id           = Guid.NewGuid(),
                    StandardCode = record.StandardCode,
                    Version      = record.Version
                },
                    standard =>
                {
                    standard.StandardCode              = record.StandardCode;
                    standard.Version                   = record.Version;
                    standard.StandardName              = record.StandardName;
                    standard.StandardSectorCode        = record.StandardSectorCode;
                    standard.NotionalEndLevel          = record.NotionalEndLevel;
                    standard.EffectiveFrom             = record.EffectiveFrom;
                    standard.EffectiveTo               = record.EffectiveTo;
                    standard.URLLink                   = record.URLLink;
                    standard.SectorSubjectAreaTier1    = record.SectorSubjectAreaTier1;
                    standard.SectorSubjectAreaTier2    = record.SectorSubjectAreaTier2;
                    standard.OtherBodyApprovalRequired = record.OtherBodyApprovalRequired;
                    standard.RecordStatusId            = 2; // Live
                });
            }

            return(new None());
        }
        public CreateProviderResult Execute(InMemoryDocumentStore inMemoryDocumentStore, CreateProvider request)
        {
            var provider = new Provider()
            {
                Id = request.ProviderId,
                UnitedKingdomProviderReferenceNumber = request.Ukprn.ToString(),
                ProviderType         = request.ProviderType,
                ProviderName         = request.ProviderName,
                ProviderStatus       = request.ProviderStatus,
                MarketingInformation = request.MarketingInformation,
                CourseDirectoryName  = request.CourseDirectoryName,
                Alias            = request.Alias,
                ProviderContact  = request.ProviderContact?.ToList() ?? new List <ProviderContact>(),
                Status           = request.Status,
                DateUpdated      = request.DateUpdated,
                UpdatedBy        = request.UpdatedBy,
                BulkUploadStatus = request.BulkUploadInProgress.HasValue
                    ? new ProviderBulkUploadStatus
                {
                    InProgress = request.BulkUploadInProgress.Value
                }
                    : null
            };

            inMemoryDocumentStore.Providers.Save(provider);

            return(CreateProviderResult.Ok);
        }
        public OneOf <NotFound, Success> Execute(InMemoryDocumentStore inMemoryDocumentStore, UpdateVenue request)
        {
            var venue = inMemoryDocumentStore.Venues.All.SingleOrDefault(venue => venue.Id == request.VenueId);

            if (venue == null)
            {
                return(new NotFound());
            }

            venue.VenueName    = request.Name;
            venue.Email        = request.Email;
            venue.PHONE        = request.PhoneNumber;
            venue.Website      = request.Website;
            venue.AddressLine1 = request.AddressLine1;
            venue.AddressLine2 = request.AddressLine2;
            venue.Town         = request.Town;
            venue.County       = request.County;
            venue.Postcode     = request.Postcode;
            venue.Latitude     = request.Latitude;
            venue.Longitude    = request.Longitude;
            venue.UpdatedBy    = request.UpdatedBy.Email;
            venue.DateUpdated  = request.UpdatedDate;

            inMemoryDocumentStore.Venues.Save(venue);

            return(new Success());
        }
        public int?Execute(InMemoryDocumentStore inMemoryDocumentStore, GetProviderUkprnForCourse request)
        {
            var course = inMemoryDocumentStore.Courses.All
                         .SingleOrDefault(c => c.Id == request.CourseId &&
                                          c.CourseStatus != CourseStatus.Archived &&
                                          c.CourseStatus != CourseStatus.Deleted);

            return(course?.ProviderUKPRN);
        }
 public IReadOnlyCollection <Course> Execute(
     InMemoryDocumentStore inMemoryDocumentStore,
     GetAllCoursesForProvider request)
 {
     return(inMemoryDocumentStore.Courses.All
            .Where(c => c.ProviderUKPRN == request.ProviderUkprn)
            .Where(c => (c.CourseStatus & request.CourseStatuses) != 0)
            .ToList());
 }
        public Success Execute(InMemoryDocumentStore inMemoryDocumentStore, CreateCourse request)
        {
            var course = new Course()
            {
                Id                       = request.CourseId,
                ProviderId               = request.ProviderId,
                ProviderUKPRN            = request.ProviderUkprn,
                QualificationCourseTitle = request.QualificationCourseTitle,
                LearnAimRef              = request.LearnAimRef,
                NotionalNVQLevelv2       = request.NotionalNVQLevelv2,
                AwardOrgCode             = request.AwardOrgCode,
                QualificationType        = request.QualificationType,
                CourseDescription        = request.CourseDescription,
                EntryRequirements        = request.EntryRequirements,
                WhatYoullLearn           = request.WhatYoullLearn,
                HowYoullLearn            = request.HowYoullLearn,
                WhatYoullNeed            = request.WhatYoullNeed,
                HowYoullBeAssessed       = request.HowYoullBeAssessed,
                WhereNext                = request.WhereNext,
                AdultEducationBudget     = request.AdultEducationBudget,
                AdvancedLearnerLoan      = request.AdvancedLearnerLoan,
                CourseRuns               = request.CourseRuns.Select(cr => new CourseRun()
                {
                    Id                = cr.CourseRunId,
                    VenueId           = cr.VenueId,
                    CourseName        = cr.CourseName,
                    DeliveryMode      = cr.DeliveryMode,
                    FlexibleStartDate = cr.FlexibleStartDate,
                    StartDate         = cr.StartDate,
                    CourseURL         = cr.CourseUrl,
                    Cost              = cr.Cost,
                    CostDescription   = cr.CostDescription,
                    DurationUnit      = cr.DurationUnit,
                    DurationValue     = cr.DurationValue,
                    StudyMode         = cr.StudyMode,
                    AttendancePattern = cr.AttendancePattern,
                    National          = cr.National,
                    Regions           = cr.Regions,
                    RecordStatus      = request.CourseStatus,
                    CreatedDate       = request.CreatedDate,
                    CreatedBy         = request.CreatedByUser.UserId,
                    UpdatedDate       = request.CreatedDate,
                    UpdatedBy         = request.CreatedByUser.UserId,
                    ProviderCourseID  = cr.ProviderCourseId
                }),
                CourseStatus = request.CourseStatus,
                CreatedBy    = request.CreatedByUser.UserId,
                CreatedDate  = request.CreatedDate,
                UpdatedBy    = request.CreatedByUser.UserId,
                UpdatedDate  = request.CreatedDate
            };

            inMemoryDocumentStore.Courses.Save(course);

            return(new Success());
        }
Esempio n. 10
0
        public void CanRegisterIndex()
        {
            var store = new InMemoryDocumentStore(new MvxWpfSqLiteConnectionFactory()).Initialize();

            store.RegisterIndex(new PersonIndexMap());

            var map = store.GetIndexMapByEntityType(typeof(Person));

            Assert.IsNotNull(map);
        }
Esempio n. 11
0
        public int?Execute(
            InMemoryDocumentStore inMemoryDocumentStore,
            GetProviderUkprnForApprenticeship request)
        {
            var doc = inMemoryDocumentStore.Apprenticeships.All
                      .SingleOrDefault(a => a.Id == request.ApprenticeshipId &&
                                       a.RecordStatus != 4 &&
                                       a.RecordStatus != 8);

            return(doc?.ProviderUKPRN);
        }
        public IDictionary <Guid, Apprenticeship> Execute(InMemoryDocumentStore inMemoryDocumentStore, GetApprenticeships request)
        {
            var query = inMemoryDocumentStore.Apprenticeships.All.AsQueryable();

            if (request.Predicate != null)
            {
                query = query.Where(request.Predicate);
            }

            return(query.ToDictionary(a => a.Id, a => a));
        }
Esempio n. 13
0
        public OneOf <NotFound, Success> Execute(
            InMemoryDocumentStore inMemoryDocumentStore,
            UpdateApprenticeshipStatus request)
        {
            var app = inMemoryDocumentStore.Apprenticeships.All.SingleOrDefault(a => a.Id == request.ApprenticeshipId);

            if (app == null)
            {
                return(new NotFound());
            }
            else
            {
                app.RecordStatus = request.Status;
                return(new Success());
            }
        }
        public Success Execute(InMemoryDocumentStore inMemoryDocumentStore, CreateFramework request)
        {
            var framework = new Framework()
            {
                Id             = request.Id,
                FrameworkCode  = request.FrameworkCode,
                ProgType       = request.ProgType,
                PathwayCode    = request.PathwayCode,
                NasTitle       = request.NasTitle,
                RecordStatusId = 2
            };

            inMemoryDocumentStore.Frameworks.Save(framework);

            return(new Success());
        }
        public Success Execute(InMemoryDocumentStore inMemoryDocumentStore, CreateStandard request)
        {
            var standard = new Standard()
            {
                Id                        = request.Id,
                StandardCode              = request.StandardCode,
                Version                   = request.Version,
                StandardName              = request.StandardName,
                NotionalEndLevel          = request.NotionalEndLevel,
                OtherBodyApprovalRequired = request.OtherBodyApprovalRequired,
                RecordStatusId            = 2
            };

            inMemoryDocumentStore.Standards.Save(standard);

            return(new Success());
        }
        public OneOf <NotFound, Success> Execute(InMemoryDocumentStore inMemoryDocumentStore, DeleteVenue request)
        {
            var venue = inMemoryDocumentStore.Venues.All.FirstOrDefault(v => v.Id == request.VenueId);

            if (venue == null)
            {
                return(new NotFound());
            }

            venue.Status      = VenueStatus.Archived;
            venue.DateUpdated = request.UpdatedDate;
            venue.UpdatedBy   = request.UpdatedBy.UserId;

            inMemoryDocumentStore.Venues.Save(venue);

            return(new Success());
        }
Esempio n. 17
0
        public OneOf <NotFound, Success> Execute(
            InMemoryDocumentStore inMemoryDocumentStore,
            UpdateProviderType request)
        {
            var provider = inMemoryDocumentStore.Providers.All.SingleOrDefault(p => p.Id == request.ProviderId);

            if (provider == null)
            {
                return(new NotFound());
            }

            provider.ProviderType = request.ProviderType;

            inMemoryDocumentStore.Providers.Save(provider);

            return(new Success());
        }
Esempio n. 18
0
        public OneOf <NotFound, Success> Execute(
            InMemoryDocumentStore inMemoryDocumentStore,
            UpdateProviderInfo request)
        {
            var provider = inMemoryDocumentStore.Providers.All.SingleOrDefault(p => p.Id == request.ProviderId);

            if (provider == null)
            {
                return(new NotFound());
            }

            provider.MarketingInformation = request.MarketingInformation;
            provider.DateUpdated          = request.UpdatedOn;
            provider.UpdatedBy            = request.UpdatedBy.UserId;

            inMemoryDocumentStore.Providers.Save(provider);

            return(new Success());
        }
Esempio n. 19
0
        public Success Execute(InMemoryDocumentStore inMemoryDocumentStore, CreateProviderFromUkrlpData request)
        {
            var newProvider = new Provider()
            {
                Id = request.ProviderId,
                UnitedKingdomProviderReferenceNumber = request.Ukprn.ToString(),
                ProviderName    = request.ProviderName,
                ProviderAliases = request.Aliases.ToList(),
                ProviderContact = request.Contacts.ToList(),
                Alias           = request.Alias,
                ProviderStatus  = request.ProviderStatus,
                ProviderType    = request.ProviderType,
                DateUpdated     = request.DateUpdated,
                UpdatedBy       = request.UpdatedBy,
            };

            inMemoryDocumentStore.Providers.Save(newProvider);

            return(new Success());
        }
Esempio n. 20
0
        public CreateProviderResult Execute(InMemoryDocumentStore inMemoryDocumentStore, CreateProvider request)
        {
            var provider = new Provider()
            {
                Id = request.ProviderId,
                UnitedKingdomProviderReferenceNumber = request.Ukprn.ToString(),
                ProviderType         = request.ProviderType,
                ProviderName         = request.ProviderName,
                ProviderStatus       = request.ProviderStatus,
                MarketingInformation = request.MarketingInformation,
                CourseDirectoryName  = request.CourseDirectoryName,
                Alias           = request.Alias,
                ProviderContact = request.ProviderContact?.ToList() ?? new List <ProviderContact>(),
                Status          = Core.Models.ProviderStatus.Onboarded,
                DateUpdated     = request.DateUpdated,
                UpdatedBy       = request.UpdatedBy
            };

            inMemoryDocumentStore.Providers.Save(provider);

            return(CreateProviderResult.Ok);
        }
Esempio n. 21
0
        public OneOf <NotFound, Success> Execute(
            InMemoryDocumentStore inMemoryDocumentStore,
            UpdateProviderFromUkrlpData request)
        {
            var provider = inMemoryDocumentStore.Providers.All.SingleOrDefault(p => p.Id == request.ProviderId);

            if (provider == null)
            {
                return(new NotFound());
            }

            provider.ProviderName    = request.ProviderName;
            provider.ProviderAliases = request.Aliases.ToList();
            provider.ProviderContact = request.Contacts.ToList();
            provider.Alias           = request.Alias;
            provider.ProviderStatus  = request.ProviderStatus;
            provider.DateUpdated     = request.DateUpdated;
            provider.UpdatedBy       = request.UpdatedBy;

            inMemoryDocumentStore.Providers.Save(provider);

            return(new Success());
        }
        public OneOf <NotFound, AlreadyOnboarded, Success> Execute(InMemoryDocumentStore inMemoryDocumentStore, UpdateProviderOnboarded request)
        {
            var provider = inMemoryDocumentStore.Providers.All.FirstOrDefault(p => p.Id == request.ProviderId);

            if (provider == null)
            {
                return(new NotFound());
            }

            if (provider.Status == ProviderStatus.Onboarded)
            {
                return(new AlreadyOnboarded());
            }

            provider.Status        = ProviderStatus.Onboarded;
            provider.DateOnboarded = request.UpdatedDateTime;
            provider.DateUpdated   = request.UpdatedDateTime;
            provider.UpdatedBy     = request.UpdatedBy.UserId;

            inMemoryDocumentStore.Providers.Save(provider);

            return(new Success());
        }
        public int Execute(InMemoryDocumentStore inMemoryDocumentStore, ArchiveCoursesForProvider request)
        {
            var providerCourses = inMemoryDocumentStore.Courses.All
                                  .Where(a => a.ProviderUKPRN == request.Ukprn && a.CourseStatus != CourseStatus.Archived);

            var updated = 0;

            foreach (var app in providerCourses)
            {
                app.CourseStatus = CourseStatus.Archived;

                foreach (var courseRun in app.CourseRuns)
                {
                    courseRun.RecordStatus = CourseStatus.Archived;
                }

                inMemoryDocumentStore.Courses.Save(app);

                updated++;
            }

            return(updated);
        }
Esempio n. 24
0
        public int Execute(InMemoryDocumentStore inMemoryDocumentStore, ArchiveApprenticeshipsForProvider request)
        {
            var providerApprenticeships = inMemoryDocumentStore.Apprenticeships.All
                                          .Where(a => a.ProviderUKPRN == request.Ukprn && a.RecordStatus != 4);

            var updated = 0;

            foreach (var app in providerApprenticeships)
            {
                app.RecordStatus = (int)ApprenticeshipStatus.Archived;

                foreach (var location in app.ApprenticeshipLocations)
                {
                    location.RecordStatus = 4;
                }

                inMemoryDocumentStore.Apprenticeships.Save(app);

                updated++;
            }

            return(updated);
        }
        public Success Execute(InMemoryDocumentStore inMemoryDocumentStore, CreateVenue request)
        {
            var venue = new Venue()
            {
                Id           = request.VenueId,
                Status       = Core.Models.VenueStatus.Live,
                Ukprn        = request.ProviderUkprn,
                VenueName    = request.Name,
                Email        = request.Email,
                PHONE        = request.Telephone,
                Website      = request.Website,
                AddressLine1 = request.AddressLine1,
                AddressLine2 = request.AddressLine2,
                Town         = request.Town,
                County       = request.County,
                Postcode     = request.Postcode,
                Latitude     = request.Latitude,
                Longitude    = request.Longitude
            };

            inMemoryDocumentStore.Venues.Save(venue);

            return(new Success());
        }
Esempio n. 26
0
        public None Execute(InMemoryDocumentStore inMemoryDocumentStore, UpsertStandardSectorCodes request)
        {
            foreach (var record in request.Records)
            {
                inMemoryDocumentStore.StandardSectorCodes.CreateOrUpdate(
                    d => d.StandardSectorCodeId == record.StandardSectorCodeId,
                    () => new Core.DataStore.CosmosDb.Models.StandardSectorCode()
                {
                    Id = Guid.NewGuid(),
                    StandardSectorCodeId = record.StandardSectorCodeId,
                    CreatedDateTimeUtc   = request.Now
                },
                    ssc =>
                {
                    ssc.EffectiveFrom           = record.EffectiveFrom;
                    ssc.EffectiveTo             = record.EffectiveTo;
                    ssc.ModifiedDateTimeUtc     = request.Now;
                    ssc.StandardSectorCodeDesc  = record.StandardSectorCodeDesc;
                    ssc.StandardSectorCodeDesc2 = record.StandardSectorCodeDesc2;
                });
            }

            return(new None());
        }
        public None Execute(InMemoryDocumentStore inMemoryDocumentStore, UpsertSectorSubjectAreaTier2s request)
        {
            foreach (var record in request.Records)
            {
                inMemoryDocumentStore.SectorSubjectAreaTier2s.CreateOrUpdate(
                    d => d.SectorSubjectAreaTier2Id == record.SectorSubjectAreaTier2Id,
                    () => new Core.DataStore.CosmosDb.Models.SectorSubjectAreaTier2()
                {
                    Id = Guid.NewGuid(),
                    SectorSubjectAreaTier2Id = record.SectorSubjectAreaTier2Id,
                    CreatedDateTimeUtc       = request.Now
                },
                    s =>
                {
                    s.EffectiveFrom               = record.EffectiveFrom;
                    s.EffectiveTo                 = record.EffectiveTo;
                    s.ModifiedDateTimeUtc         = request.Now;
                    s.SectorSubjectAreaTier2Desc  = record.SectorSubjectAreaTier2Desc;
                    s.SectorSubjectAreaTier2Desc2 = record.SectorSubjectAreaTier2Desc2;
                });
            }

            return(new None());
        }
        public None Execute(InMemoryDocumentStore inMemoryDocumentStore, UpsertProgTypes request)
        {
            foreach (var record in request.Records)
            {
                inMemoryDocumentStore.ProgTypes.CreateOrUpdate(
                    d => d.ProgTypeId == record.ProgTypeId,
                    () => new Core.DataStore.CosmosDb.Models.ProgType()
                {
                    Id                 = Guid.NewGuid(),
                    ProgTypeId         = record.ProgTypeId,
                    CreatedDateTimeUtc = request.Now
                },
                    progType =>
                {
                    progType.EffectiveFrom       = record.EffectiveFrom;
                    progType.EffectiveTo         = record.EffectiveTo;
                    progType.ModifiedDateTimeUtc = request.Now;
                    progType.ProgTypeDesc        = record.ProgTypeDesc;
                    progType.ProgTypeDesc2       = record.ProgTypeDesc2;
                });
            }

            return(new None());
        }
 public Course Execute(InMemoryDocumentStore inMemoryDocumentStore, GetCourseById request)
 {
     return(inMemoryDocumentStore.Courses.All.SingleOrDefault(c => c.Id == request.CourseId));
 }
Esempio n. 30
0
 public IDictionary <Guid, Apprenticeship> Execute(InMemoryDocumentStore inMemoryDocumentStore, GetApprenticeshipsByIds request) =>
 inMemoryDocumentStore.Apprenticeships.All
 .Where(p => request.ApprenticeshipIds.Contains(p.Id))
 .Where(p => p.RecordStatus != 4 && p.RecordStatus != 8)
 .ToDictionary(p => p.Id, p => p);