public async Task <User> GetByIdAsync(Guid id)
        {
            try
            {
                var profile = await profilesApi.GetByIdAsync(id);

                return(new User(profile.Id, profile.FirstName, profile.LastName, profile.Gender, profile.DateOfBirth, profile.ProfilePicture));
            }
            catch (Profiles.Client.ApiException ex) when(ex.ErrorCode == (int)HttpStatusCode.NotFound)
            {
                return(null);
            }
        }
Example #2
0
        public async Task UploadAsync(
            Guid userId,
            string fileName,
            Stream stream,
            CancellationToken cancellationToken = default)
        {
            var user = await profilesApi.GetByIdAsync(userId, cancellationToken);

            var blobContainer = blobClient.GetBlobContainerClient("photos");
            await blobContainer.CreateIfNotExistsAsync(PublicAccessType.BlobContainer, cancellationToken : cancellationToken);

            var blob = blobContainer.GetBlobClient($"{userId.ToString()}/{fileName}");
            await blob.UploadAsync(stream, cancellationToken);

            await profilesApi.UpdateAsync(
                userId,
                new ProfileUpdateViewModel(
                    user.FirstName,
                    user.LastName,
                    user.Gender,
                    user.DateOfBirth,
                    user.City,
                    blob.Uri.ToString()),
                cancellationToken);
        }
        public async Task <UserInfo> GetProfileAsync()
        {
            if (UserId == null)
            {
                return(null);
            }

            var profile = await profilesApi.GetByIdAsync(Guid.Parse(UserId));

            return(new UserInfo(profile.Id, $"{profile.FirstName} {profile.LastName}", null));
        }
Example #4
0
        private async Task <IEnumerable <UserInfo> > GetProfilesByIdsAsync(IEnumerable <Guid> ids)
        {
            var friends = new List <UserInfo>(ids.Count());

            foreach (var id in ids)
            {
                var friend = await profilesApi.GetByIdAsync(id);

                friends.Add(new UserInfo(friend.Id, $"{friend.FirstName} {friend.LastName}", string.Empty));
            }

            return(friends);
        }
        public async Task <UserInfo> GetByIdAsync(string id)
        {
            if (!Guid.TryParse(id, out var guid))
            {
                return(null);
            }

            try
            {
                var result = await profilesApi.GetByIdAsync(guid);

                return(result == null
                    ? null
                    : new UserInfo(result.Id, $"{result.FirstName} {result.LastName}", null));
            }
            catch (ApiException ex) when(ex.ErrorCode == (int)HttpStatusCode.NotFound)
            {
                return(null);
            }
        }