Exemple #1
0
 /// <summary>
 /// プロフィール画像のマスクを作成する。
 /// </summary>
 /// <param name="form">画像の表示形状</param>
 /// <param name="width">画像のサイズ</param>
 /// <returns></returns>
 private static Geometry CreateProfileImageMaskGeometry(ProfileImageForm form, double width)
 {
     return(form switch
     {
         ProfileImageForm.RoundedCorner => CreateRoundedCornerClip(3.0d, width),
         ProfileImageForm.Ellipse => CreateEllipseClip(width),
         _ => null,
     });
        public ActionResult HandleProfileImageForm(ProfileImageForm profileImageForm)
        {
            FormResponse formResponse = new FormResponse();

            if (this.ModelState.IsValid)
            {
                formResponse.Success = true;

                IPartier partier = this.Members.GetCurrentPartier();

                if (profileImageForm.ProfileImage != null && profileImageForm.ProfileImage.ContentLength > 0 && profileImageForm.ProfileImage.InputStream.IsImage())
                {
                    ProfileImage profileImage = partier.ProfileImage;

                    string url = string.Empty;

                    if (profileImage == null)
                    {
                        // create new profile image
                        profileImage = ProfileImages.CreateProfileImage(profileImageForm.ProfileImage);

                        // get the new url
                        url = profileImage.Url;

                        // update pointer on partier
                        partier.ProfileImage = profileImage;
                    }
                    else
                    {
                        // update existing profile image
                        url = profileImage.UploadImage(profileImageForm.ProfileImage);
                    }

                    formResponse.Message = JsonConvert.SerializeObject(new { id = profileImage.Id, url = url }); //TODO:S3URL
                }
                else // remove reference to image
                {
                    // this will cause the file deletion
                    partier.ProfileImage = null;
                }
            }
            else
            {
                formResponse.Errors = this.ModelState.GetErrors();
            }

            return(Json(formResponse, "text/plain"));
        }