예제 #1
0
        /// <summary>
        /// Parse a Schools page
        /// </summary>
        /// <param name="page">Schools page to parse</param>
        /// <returns>A parsed Schools page</returns>
        private async Task <BusinessModels.SchoolsPage> ParseSchoolsPage(DbModels.Page page)
        {
            var retPage = new BusinessModels.SchoolsPage()
            {
                PageOrigin        = page,
                Id                = page.Id,
                Type              = BusinessModels.PageTypes.ResumeExp,
                Title             = page.Title,
                Subtitle          = page.Subtitle,
                Background        = page.Background,
                Image             = null,
                Orientation       = page.Orientation,
                SchoolsPageOrigin = page.SchoolsExt,
                SchoolsId         = page.SchoolsExt.Id
            };

            retPage.Schools = await SchoolsService.GetFromPage(retPage);

            return(retPage);
        }
        /// <summary>
        /// Get the schools for a particular school wall page
        /// </summary>
        /// <param name="page">Page to get the school for (can include just SchoolsId, but must included that)</param>
        /// <returns>Collection of schools for the specified page</returns>
        public async Task <ICollection <BusinessModels.School> > GetFromPage(BusinessModels.SchoolsPage page)
        {
            ICollection <BusinessModels.School> ret;

            if (page.SchoolsPageOrigin != null)
            {
                Logger.LogInformation($"Getting schools from existing schools page origin");
                ret = (from school in page.SchoolsPageOrigin.Schools
                       orderby school.Order
                       select Parse(school)).ToList();
            }
            else
            {
                Logger.LogInformation($"Getting schools based on Schools Page Id");
                ret = await(from school in DbContext.Schools
                            where school.PageId == page.SchoolsId
                            orderby school.Order
                            select Parse(school)).ToListAsync();
            }

            return(ret);
        }