コード例 #1
0
        public async Task <IActionResult> AddAdditionalInfo()
        {
            var userId       = this.User.FindFirstValue(ClaimTypes.NameIdentifier);
            var userFullName = (await this.userService.GetByIdAsync(userId)).FullName;

            var userAddAdditionalInfoInputModel = new UserAddAdditionalInfoInputModel
            {
                FullName = userFullName,
            };

            userAddAdditionalInfoInputModel
            .UserAdditionalInfoViewData = await this.userService.GetUserAdditionalInfoViewDataModelAsync();

            return(this.View(userAddAdditionalInfoInputModel));
        }
コード例 #2
0
        public async Task <IActionResult> AddAdditionalInfo(UserAddAdditionalInfoInputModel userAddAdditionalInfoInputModel)
        {
            if (!this.ModelState.IsValid)
            {
                userAddAdditionalInfoInputModel
                .UserAdditionalInfoViewData = await this.userService.GetUserAdditionalInfoViewDataModelAsync();

                return(this.View(userAddAdditionalInfoInputModel));
            }

            var userAdditionalInfoServiceModel = userAddAdditionalInfoInputModel
                                                 .To <UserAdditionalInfoServiceModel>();

            var userId = this.User.FindFirstValue(ClaimTypes.NameIdentifier);

            if (userAddAdditionalInfoInputModel.ProfilePhoto != null)
            {
                string photoUrl = await this.cloudinaryService.UploadPhotoAsync(
                    userAddAdditionalInfoInputModel.ProfilePhoto,
                    userId,
                    GlobalConstants.CloudFolderForUserProfilePhotos);

                userAdditionalInfoServiceModel.ProfilePhoto = photoUrl;
            }

            foreach (var allergenName in userAddAdditionalInfoInputModel.AllergenNames)
            {
                userAdditionalInfoServiceModel.Allergies.Add(new UserAllergenServiceModel
                {
                    Allergen = new AllergenServiceModel {
                        Name = allergenName
                    },
                });
            }

            if (!await this.userService.AddAdditionalInfoAsync(userId, userAdditionalInfoServiceModel))
            {
                this.TempData["Error"] = AddAdditionalInfoErrorMessage;

                userAddAdditionalInfoInputModel
                .UserAdditionalInfoViewData = await this.userService.GetUserAdditionalInfoViewDataModelAsync();

                return(this.View(userAddAdditionalInfoInputModel));
            }

            this.TempData["Success"] = AddAdditionalInfoSuccessMessage;
            return(this.Redirect("/"));
        }