Beispiel #1
0
        public async Task <IActionResult> UpdateProfilePic([FromForm] FileUploaderViewModel _model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    //get userid from access token
                    string userId = User.Claims.First(c => c.Type == "UserID").Value;
                    var    user   = await _userManager.FindByIdAsync(userId);

                    var userstatus = user.UserStatus;
                    if (user != null && userstatus)
                    {
                        var filename = ContentDispositionHeaderValue.Parse(_model.Image.ContentDisposition).FileName.Trim('"');
                        filename = CommonMethods.EnsureCorrectFilename(filename);
                        filename = CommonMethods.RenameFileName(filename);
                        using (FileStream fs = System.IO.File.Create(GetPathAndFilename(filename, Constants.userImagesContainer)))
                        {
                            _model.Image.CopyTo(fs);
                            fs.Flush();
                        }
                        user.ProfilePic  = filename;
                        user.UpdatedBy   = userId;
                        user.UpdatedDate = DateTime.Now;
                        IdentityResult res = await _userManager.UpdateAsync(user);

                        if (res.Succeeded)
                        {
                            return(Ok(new { status = StatusCodes.Status200OK, success = true, message = "user profile picture" + ResponseMessages.msgUpdationSuccess, userstatus }));
                        }
                        else
                        {
                            return(Ok(new { status = StatusCodes.Status400BadRequest, success = false, message = res.Errors.First().Code, userstatus = false }));
                        }
                    }
                    else
                    {
                        return(Ok(new { status = StatusCodes.Status404NotFound, success = false, message = ResponseMessages.msgCouldNotFoundAssociatedUser, userstatus = false }));
                    }
                }
                else
                {
                    return(Ok(new { status = StatusCodes.Status406NotAcceptable, success = false, message = ResponseMessages.msgParametersNotCorrect, userstatus = false }));
                }
            }
            catch (Exception ex)
            {
                return(Ok(new { status = StatusCodes.Status500InternalServerError, success = false, message = ResponseMessages.msgSomethingWentWrong + ex.Message, userstatus = false }));
            }
        }
        public ActionResult Index(int maxFiles, string fieldName, string description, string path)
        {
            FileUploaderViewModel viewModel = new FileUploaderViewModel(maxFiles, fieldName, description, path);

            return this.PartialView("Index", viewModel);
        }