@ -0,0 +1,42 @@ | |||||
using Microsoft.AspNet.Identity; | |||||
using Microsoft.AspNet.Identity.EntityFramework; | |||||
using Sevomin.Models; | |||||
using Sevomin.Models.Helpers; | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Linq; | |||||
using System.Text; | |||||
using System.Threading.Tasks; | |||||
using System.Web.Mvc; | |||||
namespace Sevomin.WebFrontend.Controllers | |||||
{ | |||||
public class GodController : AuthorizedController | |||||
{ | |||||
[Authorize(Roles = "God")] | |||||
public ActionResult Index() | |||||
{ | |||||
return View(); | |||||
} | |||||
[AllowAnonymous] | |||||
public async Task<ActionResult> iddqd() | |||||
{ | |||||
UserManager.UserValidator = new UserValidator<User>(UserManager); | |||||
RoleManager<IdentityRole> roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(SevominDbContext.Current)); | |||||
if (!(await roleManager.RoleExistsAsync("God"))) | |||||
await roleManager.CreateAsync(new IdentityRole("God")); | |||||
if ((await UserManager.FindByNameAsync("sevomin")) == null) | |||||
{ | |||||
var user = new User("sevomin"); | |||||
user.SignUpDate = DateTime.Now; | |||||
await UserManager.CreateAsync(user, "wePwntheNight"); | |||||
} | |||||
var res = await UserManager.AddToRoleAsync((await UserManager.FindByNameAsync("sevomin")).Id, "God"); | |||||
return HttpNotFound(); | |||||
} | |||||
} | |||||
} |
@ -0,0 +1,104 @@ | |||||
@{ | |||||
Layout = null; | |||||
} | |||||
<!DOCTYPE html> | |||||
<html> | |||||
<head> | |||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> | |||||
<title>Sevomin God Mode</title> | |||||
<link rel="stylesheet" type="text/css" href="@Url.Content("~/content/bootstrap.min.css")" /> | |||||
<link rel="stylesheet" type="text/css" href="@Url.Content("~/content/bootstrap-theme.min.css")" /> | |||||
<link rel="stylesheet" type="text/css" href="@Url.Content("~/content/common.css")" /> | |||||
<link rel="stylesheet" type="text/css" href="@Url.Content("~/content/forms.css")" /> | |||||
</head> | |||||
<body> | |||||
<div class="container rtl"> | |||||
<div class="jumbotron"> | |||||
<h1>سلام!</h1> | |||||
<p>یک سری اطلاعات کلی درباره وب سایت سومین در این محل قابل ارائه می باشد.</p> | |||||
</div> | |||||
<div class="row"> | |||||
<div class="col-md-12"> | |||||
<div class="table-responsive"> | |||||
<table class="table table-stripped table-bordered"> | |||||
<thead> | |||||
<tr> | |||||
<th>تعداد کل اعضا</th> | |||||
<th>تعداد کارفرماها</th> | |||||
<th>تعداد متخصصین</th> | |||||
<th>تعداد فرصت های شغلی</th> | |||||
<th>تعداد اعلام آمادگی های فرصت های شغلی</th> | |||||
</tr> | |||||
</thead> | |||||
<tbody> | |||||
<tr> | |||||
<td>@Sevomin.Models.SevominDbContext.Current.Users.Count()</td> | |||||
<td>@(Sevomin.Models.SevominDbContext.Current.Users.OfType<Sevomin.Models.Avalin>().Count())</td> | |||||
<td>@(Sevomin.Models.SevominDbContext.Current.Users.OfType<Sevomin.Models.Dovomin>().Count())</td> | |||||
<td>@Sevomin.Models.SevominDbContext.Current.Jobs.Count()</td> | |||||
<td>@Sevomin.Models.SevominDbContext.Current.DovominJobs.Count()</td> | |||||
</tr> | |||||
</tbody> | |||||
</table> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<div class="row"> | |||||
<div class="col-md-6 pull-right"> | |||||
<h2>اعلام آمادگی های فرصت های شغلی</h2> | |||||
@foreach (Sevomin.Models.Avalin avalin in Sevomin.Models.SevominDbContext.Current.Users.OfType<Sevomin.Models.Avalin>().ToList()) | |||||
{ | |||||
if (avalin.Jobs.Count == 0) | |||||
{ continue; } | |||||
<h3>@avalin.DisplayName</h3> | |||||
foreach (var job in avalin.Jobs) | |||||
{ | |||||
if (job.Applications.Count == 0) | |||||
{ continue; } | |||||
foreach (var application in job.Applications) | |||||
{ | |||||
Sevomin.Models.JobApplicationViewModel apply = new Sevomin.Models.JobApplicationViewModel(application); | |||||
<div class="panel panel-default rtl"> | |||||
<div class="panel-body"> | |||||
<em>از طرف <a href="@Url.Action("Dovomin", "Account", new { userId = apply.DovominId })">@apply.DovominDisplayName</a> | |||||
(@(string.IsNullOrWhiteSpace(job.ContactPersonName) ? "نام وارد نشده" : job.ContactPersonName) | |||||
@((string.IsNullOrWhiteSpace(job.ContactPersonEMail) ? "ایمیل وارد نشده" : job.ContactPersonEMail)) | |||||
@((string.IsNullOrWhiteSpace(job.ContactPersonPhone) ? "تلفن وارد نشده" : job.ContactPersonPhone))) | |||||
</em> | |||||
<h4>@apply.JobSummary</h4> | |||||
@if (!string.IsNullOrWhiteSpace(apply.CoverLetter)) | |||||
{ | |||||
<h5>پیغام متخصص:</h5> | |||||
<blockquote>@apply.CoverLetter</blockquote> | |||||
} | |||||
@if (apply.MinimumRequirement) | |||||
{ | |||||
<p>این متخصص تمامی مهارت های الزامی برای این فرصت شغلی را دارد. همچنین میزان مطابقت ایشان با این فرصت شغلی، @apply.Affinity درصد است.</p> | |||||
} | |||||
else | |||||
{ | |||||
<p>این متخصص برخی مهارت های الزامی برای این فرصت شغلی را ندارد. همچنین میزان مطابقت ایشان با این فرصت شغلی، @apply.Affinity درصد است.</p> | |||||
} | |||||
</div> | |||||
</div> | |||||
} | |||||
} | |||||
} | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<script src="@Url.Content("~/scripts/jquery-2.1.0.min.js")"></script> | |||||
<script src="@Url.Content("~/scripts/jquery-ui-1.10.4.js")"></script> | |||||
<script src="@Url.Content("~/scripts/jalaliCalendar.js")"></script> | |||||
<script src="@Url.Content("~/scripts/jquery-ui-i18n.min.js")"></script> | |||||
<script src="@Url.Content("~/scripts/jquery.validate.min.js")"></script> | |||||
<script src="@Url.Content("~/scripts/jquery.validate.unobtrusive.min.js")"></script> | |||||
<script src="@Url.Content("~/scripts/bootstrap.min.js")"></script> | |||||
<script src="@Url.Content("~/scripts/sevomin-ui.js")"></script> | |||||
</body> | |||||
</html> |
@ -0,0 +1,19 @@ | |||||
@model Sevomin.Models.JobApplicationViewModel | |||||
<div class="panel panel-default rtl"> | |||||
<div class="panel-body"> | |||||
<em>از طرف <a href="@Url.Action("Dovomin", "Account", new { userId = Model.DovominId })">@Model.DovominDisplayName</a></em> | |||||
<h4>@Model.JobSummary</h4> | |||||
@if (!string.IsNullOrWhiteSpace(Model.CoverLetter)) | |||||
{ | |||||
<h5>پیغام متخصص:</h5> | |||||
<blockquote>@Model.CoverLetter</blockquote> | |||||
} | |||||
@if (Model.MinimumRequirement){ | |||||
<p>این متخصص تمامی مهارت های الزامی برای این فرصت شغلی را دارد. همچنین میزان مطابقت ایشان با این فرصت شغلی، @Model.Affinity درصد است.</p> | |||||
} | |||||
else { | |||||
<p>این متخصص برخی مهارت های الزامی برای این فرصت شغلی را ندارد. همچنین میزان مطابقت ایشان با این فرصت شغلی، @Model.Affinity درصد است.</p> | |||||
} | |||||
</div> | |||||
</div> |
@ -0,0 +1,34 @@ | |||||
<meta name="description" content="مرکز کاریابی برنامهریزی و کنترل پروژه - @(string.IsNullOrWhiteSpace(ViewBag.Title) ? "خانه" : ViewBag.Title)"/> | |||||
<meta itemprop="name" content="سومین" /> | |||||
<meta itemprop="description" content="مرکز کاریابی برنامهریزی و کنترل پروژه - @(string.IsNullOrWhiteSpace(ViewBag.Title) ? "خانه" : ViewBag.Title)"/> | |||||
<meta itemprop="image" content="@Url.Content("~/content/logo.png")"/> | |||||
<meta name="twitter:card" content="summary"/> | |||||
<meta name="twitter:site" content="@MvcHtmlString.Create("@sevomin")"/> | |||||
<meta name="twitter:title" content="سومین"/> | |||||
<meta name="twitter:description" content="مرکز کاریابی برنامهریزی و کنترل پروژه - @(string.IsNullOrWhiteSpace(ViewBag.Title) ? "خانه" : ViewBag.Title)"/> | |||||
<meta name="twitter:creator" content="@MvcHtmlString.Create("@sevomin")"/> | |||||
<meta name="twitter:image:src" content="@Url.Content("~/content/logo.png")"/> | |||||
<meta name="twitter:domain" content="http://www.sevom.in"/> | |||||
@*<meta name="twitter:app:name:iphone" content="Vine"> | |||||
<meta name="twitter:app:name:ipad" content="Vine"> | |||||
<meta name="twitter:app:name:googleplay" content="Vine"> | |||||
<meta name="twitter:app:url:iphone" content="vine://v/93582sxlkjf"> | |||||
<meta name="twitter:app:url:ipad" content="vine://v/93582sxlkjf"> | |||||
<meta name="twitter:app:url:googleplay" content="http://vine.co/v/93582sxlkjf"> | |||||
<meta name="twitter:app:id:iphone" content="id592447445"> | |||||
<meta name="twitter:app:id:ipad" content="id432984038404"> | |||||
<meta name="twitter:app:id:googleplay" content="co.vine.android">*@ | |||||
<meta property="og:locale" content="fa_IR" /> | |||||
<meta property="og:type" content="website" /> | |||||
<meta property="og:title" content="سومین" /> | |||||
<meta property="og:site_name" content="سومین" /> | |||||
<meta property="og:url" content="http://www.sevom.in" /> | |||||
<meta property="og:description" content="مرکز کاریابی برنامهریزی و کنترل پروژه - @(string.IsNullOrWhiteSpace(ViewBag.Title) ? "خانه" : ViewBag.Title)"/> | |||||
<meta property="og:image" content="@Url.Content("~/content/logo.png")"/> | |||||
<link rel="icon" type="image/png" href="@Url.Content("~/content/3-icon.png")" /> | |||||
@*<link rel="apple-touch-icon" href="@Url.Content("~/Content/images/57x57.png")" /> | |||||
<link rel="apple-touch-icon" sizes="72x72" href="@Url.Content("~/Content/icons/72x72.png")" /> | |||||
<link rel="apple-touch-icon" sizes="114x114" href="@Url.Content("~/Content/icons/114x114.png")" /> | |||||
<link rel="apple-touch-icon" sizes="144x144" href="@Url.Content("~/Content/icons/144x144.png")" />*@ |