/// <remarks>Untested</remarks>
        public Task <bool> ReadingProgramExistsFor(IEnumerable <string> children, ReadingProgramType programType)
        {
            var exists = _session.Query <ReadingProgramInfoDTO>()
                         .AnyAsync(x => x.ChildrenIds.ContainsAll(children) && x.ProgramType == programType);

            return(exists);
        }
        public async Task <ReadingProgramInfo> CreateNewProgram(IEnumerable <string> forChildren, string userId,
                                                                string languageCode, ReadingProgramType programType)
        {
            if (await UserNotAllowedToAdminAllChildren(forChildren, userId))
            {
                HandleUnauthorizedUser();
            }

            var programDto = await CreateNewProgram(forChildren, languageCode, programType);

            var program = programDto.ToReadingProgramInfo();

            return(program);
        }
Ejemplo n.º 3
0
 public ReadingProgramInfo(string id = null, ReadingProgramType programType = ReadingProgramType.SingleWords, params string[] childIds)
 {
     Id          = id;
     Children    = childIds;
     ProgramType = programType;
 }
        private async Task <ReadingProgramInfoDTO> CreateNewProgram(IEnumerable <string> forChildren, string languageCode, ReadingProgramType programType)
        {
            var programDto = new ReadingProgramInfoDTO
            {
                ChildrenIds  = forChildren,
                LanguageCode = languageCode,
                ProgramType  = programType
            };
            await _session.StoreAsync(programDto);

            _logger.ForContext("Children", forChildren).ForContext("ProgramType", programType).Information("Added new reading program to session");

            await SaveChanges();

            return(programDto);
        }