|
|
- using Microsoft.AspNet.Identity.EntityFramework;
- using Sevomin.Models;
- using Sevomin.Models.Helpers;
- using System.IO;
- using System.Threading.Tasks;
- using System.Web.Mvc;
- using System.Linq;
-
- namespace Sevomin.WebFrontend.Controllers
- {
- [Authorize]
- public class AuthorizedController : BaseController
- {
- public AuthorizedController()
- : this(new SevominUserManager(new UserStore<User>(SevominDbContext.Current)))
- {
- }
-
- public AuthorizedController(SevominUserManager userManager)
- {
- UserManager = userManager;
- }
-
- public SevominUserManager UserManager { get; private set; }
-
- public async Task<ActionResult> 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();
-
- if (!User.IsInRole("God"))
- {
- if (User.IsInRole("Dovomin"))
- {
- if (userid != user.Id)
- {
- return HttpNotFound();
- }
- else { }
- }
- else if (User.IsInRole("Avalin"))
- {
- Avalin avalin = (await UserManager.FindByNameAsync(User.Identity.Name)) as Avalin;
- bool showIt = avalin.Jobs.Any(j =>
- {
- bool ret = j.Applications.Any(c => c.DovominId == userid);
- return ret;
- });
- if (!showIt)
- 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);
- }
-
- }
- }
|