Exemple #1
0
        public async Task <IActionResult> IndexAsync(long id, string name, CancellationToken token)
        {
            var query  = new UserProfileQuery(id, 0);
            var retVal = await _queryBus.QueryAsync(query, token);

            if (retVal is null)
            {
                return(NotFound());
            }

            if (retVal.Tutor is null)
            {
                Response.Headers.Add("X-Robots-Tag", "noindex");
                return(View("Index"));
            }

            ViewBag.title           = _localizer["TitleNoUniversity", retVal.Name];
            ViewBag.metaDescription = _localizer["Description", retVal.Description];
            if (retVal.Image != null)
            {
                Country country = retVal.Tutor.TutorCountry;

                //ViewBag.ogImage = $"{retVal.Image}?width=1200&height=630";
                ViewBag.ogImage = _urlBuilder.BuildUserImageProfileShareEndpoint(retVal.Id, new
                {
                    width  = 1200,
                    height = 630,
                    rtl    = country.MainLanguage.Info.TextInfo.IsRightToLeft.ToString()
                });
                ViewBag.ogImageWidth  = 1200;
                ViewBag.ogImageHeight = 630;
                ViewBag.ogTitle       = retVal.Name;
                if (retVal.Tutor?.Subjects?.Any() == true)
                {
                    ViewBag.ogDescription =
                        _localizer.WithCulture(country.MainLanguage)["OgDescription",
                                                                     string.Join(", ", retVal.Tutor.Subjects)];
                }
            }

            //var jsonLd = new ProfilePage()
            //{
            //    SourceOrganization = new Organization
            //    {
            //        Logo = new Uri($"{_configuration["site"].TrimEnd('/')}/images/favicons/android-icon-192x192.png"),
            //        Url = Request.GetUri()
            //    },
            //    About = new Person()
            //    {
            //        Name = retVal.Name,
            //        GivenName = retVal.FirstName,
            //        FamilyName = retVal.LastName,
            //        Image = new Uri($"{_configuration["site"].TrimEnd('/')}{retVal.Image}"), // TODO should be fixed
            //        Description = retVal.Description,
            //    },
            //    Url = Request.GetUri()
            //};
            //ViewBag.jsonLd = jsonLd;
            return(View("Index"));
        }