From 8a2f87bcb2dde2f170d2069a44f3c925ecc53208 Mon Sep 17 00:00:00 2001 From: Paul Schneider Date: Sun, 1 Sep 2019 04:57:36 +0100 Subject: [PATCH] Implements Full name setup --- .../Accounting/ManageController.cs | 23 ++++++++++++++++--- src/Yavsc/ViewModels/Manage/IndexViewModel.cs | 3 ++- .../ViewModels/Manage/SetFullNameViewModel.cs | 13 +++++++++++ src/Yavsc/Views/Manage/Index.cshtml | 14 ++++++++--- src/Yavsc/Views/Manage/SetFullName.cshtml | 22 ++++++++++++++++++ 5 files changed, 68 insertions(+), 7 deletions(-) create mode 100644 src/Yavsc/ViewModels/Manage/SetFullNameViewModel.cs create mode 100644 src/Yavsc/Views/Manage/SetFullName.cshtml diff --git a/src/Yavsc/Controllers/Accounting/ManageController.cs b/src/Yavsc/Controllers/Accounting/ManageController.cs index b17a08d4..4505f9db 100644 --- a/src/Yavsc/Controllers/Accounting/ManageController.cs +++ b/src/Yavsc/Controllers/Accounting/ManageController.cs @@ -93,6 +93,7 @@ namespace Yavsc.Controllers : message == ManageMessageId.SetBankInfoSuccess ? _SR["Vos informations bancaires ont bien été enregistrées."] : message == ManageMessageId.SetAddressSuccess ? _SR["Votre adresse a bien été enregistrée."] : message == ManageMessageId.SetMonthlyEmailSuccess ? _SR["Vos préférences concernant la lettre mensuelle ont été sauvegardées."] + : message == ManageMessageId.SetFullNameSuccess ? _SR["Votre nom complet a été renseigné."] : ""; var user = await GetCurrentUserAsync(); @@ -120,7 +121,8 @@ namespace Yavsc.Controllers DedicatedCalendarId = user.DedicatedGoogleCalendar, EMail = user.Email, EmailConfirmed = await _userManager.IsEmailConfirmedAsync(user), - AllowMonthlyEmail = user.AllowMonthlyEmail + AllowMonthlyEmail = user.AllowMonthlyEmail, + Address = user.PostalAddress.Address }; model.HaveProfessionalSettings = _dbContext.Performers.Any(x => x.PerformerId == user.Id); var usrActs = _dbContext.UserActivities.Include(a=>a.Does).Where(a=> a.UserId == user.Id).ToArray(); @@ -354,8 +356,22 @@ namespace Yavsc.Controllers public async Task SetFullName() { var user = await _userManager.FindByIdAsync(User.GetUserId()); - return View(user); + return View(new SetFullNameViewModel { FullName = user.FullName }); } + + [HttpPost] + public async Task SetFullName(SetFullNameViewModel model) + { + if (ModelState.IsValid) + { + var user = await _userManager.FindByIdAsync(User.GetUserId()); + user.FullName = model.FullName; + await _userManager.UpdateAsync(user); + return RedirectToAction(nameof(Index), new { Message = ManageMessageId.SetFullNameSuccess }); + } + return View(model); + } + // // POST: /Manage/ChangePassword [HttpPost] @@ -688,13 +704,14 @@ namespace Yavsc.Controllers SetBankInfoSuccess, SetAddressSuccess, SetMonthlyEmailSuccess, + SetFullNameSuccess, Error } private async Task GetCurrentUserAsync() { - return await _userManager.FindByIdAsync(HttpContext.User.GetUserId()); + return await _dbContext.Users.Include(u => u.PostalAddress).FirstOrDefaultAsync(u => u.Id == User.GetUserId()); } #endregion diff --git a/src/Yavsc/ViewModels/Manage/IndexViewModel.cs b/src/Yavsc/ViewModels/Manage/IndexViewModel.cs index 4b4a2060..02c39ff5 100644 --- a/src/Yavsc/ViewModels/Manage/IndexViewModel.cs +++ b/src/Yavsc/ViewModels/Manage/IndexViewModel.cs @@ -10,7 +10,8 @@ namespace Yavsc.ViewModels.Manage { public string UserName {get; set; } - public string Avatar { get; set; } + public string Avatar { get; set; } + public string Address { get; set; } public bool HasPassword { get; set; } diff --git a/src/Yavsc/ViewModels/Manage/SetFullNameViewModel.cs b/src/Yavsc/ViewModels/Manage/SetFullNameViewModel.cs new file mode 100644 index 00000000..ea99a476 --- /dev/null +++ b/src/Yavsc/ViewModels/Manage/SetFullNameViewModel.cs @@ -0,0 +1,13 @@ + +using System.ComponentModel.DataAnnotations; +using Yavsc.Attributes.Validation; + +namespace Yavsc.ViewModels.Manage +{ + public class SetFullNameViewModel + { + [Required] + [Display(Name = "Your full name"), YaStringLength(512)] + public string FullName { get; set; } + } +} diff --git a/src/Yavsc/Views/Manage/Index.cshtml b/src/Yavsc/Views/Manage/Index.cshtml index 31a97941..967e2c42 100755 --- a/src/Yavsc/Views/Manage/Index.cshtml +++ b/src/Yavsc/Views/Manage/Index.cshtml @@ -34,13 +34,21 @@
-
@SR["AllowMonthlyEmail"]:
- @Html.DisplayFor(m=>m.AllowMonthlyEmail) [modifier] - +
@SR["AllowMonthlyEmail"]:
+
+ @Html.DisplayFor(m=>m.AllowMonthlyEmail) [modifier] + +
+ +
@SR["FullName"]:
+
+ @Html.DisplayFor(m=>m.FullName) [modifier] +
+ @if (Model.Roles.Count()>0) {
@SR["Roles"]:
diff --git a/src/Yavsc/Views/Manage/SetFullName.cshtml b/src/Yavsc/Views/Manage/SetFullName.cshtml new file mode 100644 index 00000000..dfbf2c3a --- /dev/null +++ b/src/Yavsc/Views/Manage/SetFullName.cshtml @@ -0,0 +1,22 @@ +@model SetFullNameViewModel + +@{ ViewData["Title"] = SR["Your full name"]; } + +

@ViewData["Title"]

+ +
+

@SR["Indicate below your full name"]:

+
+
+ +
+ +
+ + +
+
+ +