Beispiel #1
0
        public async Task <IActionResult> Change(ProfileIndexVM userdata)
        {
            Guid?userId = CheckSession();

            if (userId == null)
            {
                return(new RedirectToActionResult("Login", "Account", null));
            }
            string uri  = $"{baseuri}/users/{userId}";
            User   user = await WebApiHelper.GetApiResult <User>(uri);

            string responseFileName = "";

            ImageUploadData imageUploadData = GetImageUploadData(userdata);

            if (imageUploadData == null)
            {
                return(new RedirectToActionResult("Index", "Profile", null));
            }

            using (HttpClient httpClient = new HttpClient())
            {
                HttpContent fileStreamContent = new StreamContent(imageUploadData.Image);
                fileStreamContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data")
                {
                    Name     = "file",
                    FileName = imageUploadData.FileName
                };
                fileStreamContent.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
                var formData = new MultipartFormDataContent
                {
                    fileStreamContent
                };

                HttpResponseMessage response = await httpClient.PostAsync(imageUploadData.Uri, formData);

                responseFileName = await response.Content.ReadAsStringAsync();
            }
            if (responseFileName != "")
            {
                if (userdata.ProfilePicture == null)
                {
                    user.CoverPicture = responseFileName;
                }
                else
                {
                    user.ProfilePicture = responseFileName;
                }
                uri = $"{baseuri}/users/update";
                User updatedProfile = await WebApiHelper.PutCallAPI <User, User>(uri, user);
            }
            return(new RedirectToActionResult("Index", "Profile", null));
        }
Beispiel #2
0
        public ImageUploadData GetImageUploadData(ProfileIndexVM userdata)
        {
            ImageUploadData imageUploadData = new ImageUploadData();

            if (userdata.ProfilePicture == null && userdata.UploadedCoverImage == null)
            {
                return(null);                                                                       //kan gebeuren als de user de html wijzigt
            }
            if (userdata.CoverPicture == null && userdata.UploadedProfileImage == null)
            {
                return(null);                                                                       //kan gebeuren als de user de html wijzigt
            }
            if (userdata.ProfilePicture != null && !userdata.UploadedProfileImage.ContentType.Contains("image"))
            {
                return(null);
            }

            if (userdata.CoverPicture != null && !userdata.UploadedCoverImage.ContentType.Contains("image"))
            {
                return(null);
            }

            if (userdata.ProfilePicture != null && userdata.UploadedProfileImage.Length > 3145728)
            {
                return(null);                                                                                  //3 MB
            }
            if (userdata.CoverPicture != null && userdata.UploadedCoverImage.Length > 3145728)
            {
                return(null);                                                                              //3 MB
            }
            if (userdata.ProfilePicture == null)
            {
                imageUploadData.Uri      = $"{baseuri}/users/CoverPicture";
                imageUploadData.FileName = userdata.UploadedCoverImage.FileName;
                imageUploadData.Image    = userdata.UploadedCoverImage.OpenReadStream();
            }
            else
            {
                imageUploadData.Uri      = $"{baseuri}/users/ProfilePicture";
                imageUploadData.FileName = userdata.UploadedProfileImage.FileName;
                imageUploadData.Image    = userdata.UploadedProfileImage.OpenReadStream();
            }
            return(imageUploadData);
        }