protected override async Task OnParametersSetAsync()
        {
            var authState = await authenticationStateTask;

            User = authState.User;

            if (User.Identity.IsAuthenticated)
            {
                var profile = (ViewApplicationUser)User;

                var url = $"api/Profile/GetUserProfileNoDetail/{profile.Id}";
                Console.WriteLine($"get profile {url}");

                var response = await httpClient.GetAsync($"api/Profile/GetUserProfileNoDetail/{profile.Id}");

                if (response.IsSuccessStatusCode)
                {
                    var json = await response.Content.ReadAsStringAsync();

                    Console.WriteLine($"GetUserProfileNoDetail:{json}");

                    UserProfile = JsonConvert.DeserializeObject <ViewApplicationUser>(json);

                    NavigationUrlService.SetUrls($"https://www.google.com/maps/search/?api=1&query={UserProfile.Address},{UserProfile.City}%20{UserProfile.Country}&query_place_id={UserProfile.DisplayName}",
                                                 NavigationManager.ToAbsoluteUri($"/contact/import/{UserProfile.Id}").ToString());

                    NavigationUrlService.ShowContacts = true;
                    NavigationUrlService.ShowMyAds    = true;

                    if (User.FindFirstValue(ClaimTypes.NameIdentifier).Equals(UserProfile.Id))
                    {
                        NavigationUrlService.ShowImport      = false;
                        NavigationUrlService.ShowEditProfile = true;
                    }

                    var responseSocialNetwork = await httpClient.GetAsync("api/socialnetwork");

                    response.EnsureSuccessStatusCode();

                    var jsonSocialNetwork = await responseSocialNetwork.Content.ReadAsStringAsync();

                    AvailableSocialNetworks = JsonConvert.DeserializeObject <List <SocialNetwork> >(jsonSocialNetwork);
                }
            }
        }
示例#2
0
        protected override async Task OnParametersSetAsync()
        {
            var authState = await authenticationStateTask;

            User = authState.User;

            var httpClient = HttpClientFactory.CreateClient(Configuration["Service:Api:AnonymousApiName"]);

            if (User.Identity.IsAuthenticated)
            {
                if (string.IsNullOrEmpty(ProfileId))
                {
                    ProfileId = User.FindFirstValue(ClaimTypes.NameIdentifier);
                }

                await httpClient.PostAsJsonAsync <EventTrackingItem>("api/EventTracker", new EventTrackingItem
                {
                    Category    = "Navigation",
                    Key         = $"ViewProfile#{ProfileId}",
                    CreatedDate = DateTime.UtcNow,
                    Id          = Guid.NewGuid(),
                    UserId      = User.FindFirstValue(ClaimTypes.NameIdentifier)
                });
            }
            else
            {
                await httpClient.PostAsJsonAsync <EventTrackingItem>("api/EventTracker", new EventTrackingItem
                {
                    Category    = "Navigation",
                    Key         = $"ViewProfile#{ProfileId}",
                    CreatedDate = DateTime.UtcNow,
                    Id          = Guid.NewGuid()
                });
            }

            var apiUrl = $"/api/viewProfile/{ProfileId}";
            var uri    = Navigation.ToAbsoluteUri(Navigation.Uri);

            if (QueryHelpers.ParseQuery(uri.Query).TryGetValue("social", out var _social))
            {
                apiUrl += $"?social={_social}";
                await httpClient.PostAsJsonAsync <EventTrackingItem>("api/EventTracker", new EventTrackingItem
                {
                    UserId      = UserProfile?.Id,
                    Category    = "Navigation",
                    Key         = $"ViewProfileFromSocial#{_social}",
                    CreatedDate = DateTime.UtcNow,
                    Id          = Guid.NewGuid()
                });
            }

            var getProfile = await httpClient.GetAsync(apiUrl);

            if (getProfile.StatusCode == System.Net.HttpStatusCode.NotFound)
            {
                Navigation.NavigateTo(Navigation.ToAbsoluteUri($"/Identity/Account/Register?PinCode={ProfileId}").ToString(), true);
            }

            getProfile.EnsureSuccessStatusCode();
            var json = await getProfile.Content.ReadAsStringAsync();

            UserProfile = Newtonsoft.Json.JsonConvert.DeserializeObject <ViewApplicationUser>(json);

            NavigationUrlService.SetUrls($"https://www.google.com/maps/search/?api=1&query={UserProfile.Address},{UserProfile.City}%20{UserProfile.Country}&query_place_id={UserProfile.DisplayName}",
                                         Navigation.ToAbsoluteUri($"/contact/import/{UserProfile.Id}").ToString());


            NavigationUrlService.ShowImport = true;

            if (User.Identity.IsAuthenticated)
            {
                NavigationUrlService.ShowContacts = true;
                NavigationUrlService.ShowMyAds    = true;

                if (User.FindFirstValue(ClaimTypes.NameIdentifier).Equals(UserProfile.Id))
                {
                    NavigationUrlService.ShowImport      = false;
                    NavigationUrlService.ShowEditProfile = true;
                }
            }

            await InvokeAsync(StateHasChanged);
        }