diff --git a/Sevomin.WebFrontend.Controllers/AccountController.cs b/Sevomin.WebFrontend.Controllers/AccountController.cs index c5776d9..feeedca 100644 --- a/Sevomin.WebFrontend.Controllers/AccountController.cs +++ b/Sevomin.WebFrontend.Controllers/AccountController.cs @@ -21,7 +21,6 @@ namespace Sevomin.WebFrontend.Controllers public AccountController(SevominUserManager userManager) { UserManager = userManager; - UserManager.UserValidator = new Sevomin.Models.Helpers.SevominUserValidator(); } public SevominUserManager UserManager { get; private set; } @@ -49,7 +48,8 @@ namespace Sevomin.WebFrontend.Controllers int spaceIndex = model.DisplayName.IndexOf(' '); user = new Dovomin(model.Email, model.DisplayName, string.Empty); user.SignUpDate = DateTime.UtcNow; - } + } + user.DisplayName = model.DisplayName; var result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { diff --git a/Sevomin.WebFrontend.Controllers/AuthorizedController.cs b/Sevomin.WebFrontend.Controllers/AuthorizedController.cs index 58376f5..ea985c3 100644 --- a/Sevomin.WebFrontend.Controllers/AuthorizedController.cs +++ b/Sevomin.WebFrontend.Controllers/AuthorizedController.cs @@ -1,9 +1,40 @@ -using System.Web.Mvc; +using Microsoft.AspNet.Identity.EntityFramework; +using Sevomin.Models; +using Sevomin.Models.Helpers; +using System.Threading.Tasks; +using System.Web.Mvc; +using System.IO; namespace Sevomin.WebFrontend.Controllers { [Authorize] public class AuthorizedController : BaseController { + public AuthorizedController() + : this(new SevominUserManager(new UserStore(SevominDbContext.Current))) + { + } + + public AuthorizedController(SevominUserManager userManager) + { + UserManager = userManager; + } + + public SevominUserManager UserManager { get; private set; } + + public async Task GetResume(string userid = "", bool english = false) + { + if (string.IsNullOrWhiteSpace(userid)) + userid = (await UserManager.FindByNameAsync(User.Identity.Name)).Id; + Dovomin user = await UserManager.FindByIdAsync(userid) as Dovomin; + + if (user == null) + return HttpNotFound(); + + string path = Path.Combine(Server.MapPath("~/App_Data/resumes/"), english ? user.EnglishResume : user.PersianResume); + string fileDownloadName = string.Format("{0} {1} Resume{2}", user.DisplayName, english ? "English" : "Persian", Path.GetExtension(path)); + return File(path, "application/octet-stream", fileDownloadName); + } + } } diff --git a/Sevomin.WebFrontend/App_Start/RouteConfig.cs b/Sevomin.WebFrontend/App_Start/RouteConfig.cs index 9dd9e93..1d3b6ba 100644 --- a/Sevomin.WebFrontend/App_Start/RouteConfig.cs +++ b/Sevomin.WebFrontend/App_Start/RouteConfig.cs @@ -9,6 +9,19 @@ namespace Sevomin.WebFrontend { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); + #region For Downloads + routes.MapRoute( + name: "EnglishResumeGrabber", + url: "dovomin/resume/english/{userid}", + defaults: new { controller = "Authorized", action = "GetResume", english = true, userid = UrlParameter.Optional } + ); + routes.MapRoute( + name: "PersianResumeGrabber", + url: "dovomin/resume/persian/{userid}", + defaults: new { controller = "Authorized", action = "GetResume", english = false, userid = UrlParameter.Optional } + ); + #endregion + #region For Account Controller routes.MapRoute( name: "Login", diff --git a/Sevomin.WebFrontend/Views/Account/ProfileDovomin.cshtml b/Sevomin.WebFrontend/Views/Account/ProfileDovomin.cshtml index 8d3fccd..b89f0b8 100644 --- a/Sevomin.WebFrontend/Views/Account/ProfileDovomin.cshtml +++ b/Sevomin.WebFrontend/Views/Account/ProfileDovomin.cshtml @@ -24,7 +24,7 @@ @if (!string.IsNullOrWhiteSpace(Model.EnglishResume)) { - فایل رزومه انگلیسی + فایل رزومه انگلیسی }
@@ -32,7 +32,7 @@ @if (!string.IsNullOrWhiteSpace(Model.PersianResume)) { - فایل رزومه فارسی + فایل رزومه فارسی }