Browse Source

God mode refinement

master
miladkdz 10 years ago
parent
commit
af4b00058e
2 changed files with 42 additions and 16 deletions
  1. +18
    -0
      Sevomin.WebFrontend.Controllers/JobController.cs
  2. +24
    -16
      Sevomin.WebFrontend/Views/God/Index.cshtml

+ 18
- 0
Sevomin.WebFrontend.Controllers/JobController.cs View File

@ -91,6 +91,24 @@ namespace Sevomin.WebFrontend.Controllers
Description, ShowCompanyLogo, ResumeType, form, job); Description, ShowCompanyLogo, ResumeType, form, job);
JobRepository.Current.Save(); JobRepository.Current.Save();
try
{
foreach (var dovomin in UserRepository.Current.ListAll().Where(user => user is Dovomin && user.EmailConfirmed))
{
SevominEmailer emailer = new SevominEmailer();
emailer.EmailType = EmailType.NewJob;
emailer.Parameters.Add("display-name", dovomin.DisplayName);
await emailer.SendAsync(dovomin.Email, "آگهی استخدام جدید در سومین", true);
}
}
catch (Exception e)
{
var elmah = new Elmah.Error(e);
Elmah.ErrorLog.GetDefault(System.Web.HttpContext.Current).Log(elmah);
}
ViewBag.Result = new PostResultViewModel(true, "آگهی شما با موفقیت منتشر شد."); ViewBag.Result = new PostResultViewModel(true, "آگهی شما با موفقیت منتشر شد.");
return RedirectToAction("SingleJob", new { jobId = job.Id }); return RedirectToAction("SingleJob", new { jobId = job.Id });


+ 24
- 16
Sevomin.WebFrontend/Views/God/Index.cshtml View File

@ -23,7 +23,7 @@
<span class="icon-bar"></span> <span class="icon-bar"></span>
<span class="icon-bar"></span> <span class="icon-bar"></span>
</button> </button>
<a class="navbar-brand" href="#">
<a class="navbar-brand" href="#">
<small>(آزمایشی)</small> <small>(آزمایشی)</small>
<img src="/content/images/revert-logo.png" /> <img src="/content/images/revert-logo.png" />
</a> </a>
@ -32,9 +32,10 @@
<ul class="nav navbar-nav navbar-right"> <ul class="nav navbar-nav navbar-right">
<li class="rtl"><a href="/"><span class="glyphicon glyphicon-home"></span> خانه</a></li> <li class="rtl"><a href="/"><span class="glyphicon glyphicon-home"></span> خانه</a></li>
<li class="rtl"><a href="/errors.axd"><span class="glyphicon glyphicon-exclamation-sign"></span> خطاها</a></li> <li class="rtl"><a href="/errors.axd"><span class="glyphicon glyphicon-exclamation-sign"></span> خطاها</a></li>
<li class="rtl"><a href="@Url.Action("RecentJobs", "Job")">آگهی‌های استخدام</a></li>
<li class="dropdown rtl"><a href="#" class="dropdown-toggle" data-toggle="dropdown">پروفایل <b class="caret"></b></a>
<ul class="dropdown-menu">
<li class="rtl"><a href="@Url.Action("RecentJobs", "Job")">آگهی‌های استخدام</a></li>
<li class="dropdown rtl">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">پروفایل <b class="caret"></b></a>
<ul class="dropdown-menu">
<li class="rtl"><a href="@Url.Action("ChangePassword", "Account")"><span class="glyphicon glyphicon-refresh"></span> تغییر کلمه عبور</a></li> <li class="rtl"><a href="@Url.Action("ChangePassword", "Account")"><span class="glyphicon glyphicon-refresh"></span> تغییر کلمه عبور</a></li>
</ul> </ul>
</li> </li>
@ -46,7 +47,7 @@
<div class="jumbotron"> <div class="jumbotron">
<h1>سلام!</h1> <h1>سلام!</h1>
<p>یک سری اطلاعات کلی درباره وب سایت سومین در این محل قابل ارائه می باشد.</p> <p>یک سری اطلاعات کلی درباره وب سایت سومین در این محل قابل ارائه می باشد.</p>
<p>تاریخ و ساعت به وقت سرور سومین: @DateTime.Now.ToShortDateString() - @DateTime.Now.ToShortTimeString()</p>
<p>تاریخ و ساعت به وقت سرور سومین: @DateTime.Now.ToShortDateString() - @DateTime.Now.ToShortTimeString()</p>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
@ -76,7 +77,7 @@
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12 rtl">
<div class="col-md-12 rtl">
<div class="panel panel-default" id="parameters-edit-panel"> <div class="panel panel-default" id="parameters-edit-panel">
<div class="panel-heading"> <div class="panel-heading">
<h4 class="panel-title"><a data-toggle="collapse" data-parent="parameters-edit-panel" href="#parameters-edit-panel-body">ویرایش متن راهنمای پارامترها</a></h4> <h4 class="panel-title"><a data-toggle="collapse" data-parent="parameters-edit-panel" href="#parameters-edit-panel-body">ویرایش متن راهنمای پارامترها</a></h4>
@ -109,38 +110,44 @@
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div>
}
</div>
}
</div> </div>
</div> </div>
</div>
</div>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12 rtl"> <div class="col-md-12 rtl">
<h2>اعلام آمادگی های فرصت های شغلی</h2> <h2>اعلام آمادگی های فرصت های شغلی</h2>
<div class="panel-group" id="accordion"> <div class="panel-group" id="accordion">
@foreach (Sevomin.Models.Avalin avalin in Sevomin.Models.SevominDbContext.Current.Users.OfType<Sevomin.Models.Avalin>().ToList())
@foreach (Sevomin.Models.Avalin avalin in Sevomin.Models.SevominDbContext.Current.Users.OfType<Sevomin.Models.Avalin>().ToList()
.Where(a => a.Jobs != null && a.Jobs.Any(j => j.ExpireDate.Date >= DateTime.Now.Date))
.OrderByDescending(a => a.Jobs.OrderByDescending(j => j.CreateDate).First().CreateDate)
.ToList())
{ {
if (avalin.Jobs.Count == 0) if (avalin.Jobs.Count == 0)
{ continue; } { continue; }
<div class="panel panel-default"> <div class="panel panel-default">
<div class="panel-heading"> <div class="panel-heading">
<h4 class="panel-title"> <h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#@avalin.Id">@avalin.DisplayName
<a data-toggle="collapse" data-parent="#accordion" href="#@avalin.Id">
@avalin.DisplayName
</a> </a>
</h4> </h4>
</div> </div>
@foreach (var job in avalin.Jobs.OrderByDescending(a => a.CreateDate)) @foreach (var job in avalin.Jobs.OrderByDescending(a => a.CreateDate))
{
{
if (job.Applications.Count == 0) if (job.Applications.Count == 0)
{ continue; } { continue; }
<div id="@avalin.Id" class="panel-collapse collapse in"> <div id="@avalin.Id" class="panel-collapse collapse in">
<div class="panel-body"> <div class="panel-body">
<p>@((new Sevomin.Models.JobMiniViewModel(job)).JobSummary) @Html.ActionLink("مشاهده آگهی", "SingleJob", "Job", new { jobId = job.Id }, null)</p> <p>@((new Sevomin.Models.JobMiniViewModel(job)).JobSummary) @Html.ActionLink("مشاهده آگهی", "SingleJob", "Job", new { jobId = job.Id }, null)</p>
<h5>اطلاعات فرد پاسخگو به این آگهی: (@(string.IsNullOrWhiteSpace(job.ContactPersonName) ? "نام وارد نشده" : job.ContactPersonName)
<h5>
اطلاعات فرد پاسخگو به این آگهی: (@(string.IsNullOrWhiteSpace(job.ContactPersonName) ? "نام وارد نشده" : job.ContactPersonName)
@((string.IsNullOrWhiteSpace(job.ContactPersonEMail) ? "ایمیل وارد نشده" : job.ContactPersonEMail)) @((string.IsNullOrWhiteSpace(job.ContactPersonEMail) ? "ایمیل وارد نشده" : job.ContactPersonEMail))
@((string.IsNullOrWhiteSpace(job.ContactPersonPhone) ? "تلفن وارد نشده" : job.ContactPersonPhone)))</h5>
@((string.IsNullOrWhiteSpace(job.ContactPersonPhone) ? "تلفن وارد نشده" : job.ContactPersonPhone)))
</h5>
</div> </div>
@foreach (var application in job.Applications.OrderByDescending(a => a.ApplyDate)) @foreach (var application in job.Applications.OrderByDescending(a => a.ApplyDate))
{ {
@ -148,7 +155,7 @@
<div class="panel-body"> <div class="panel-body">
<em>از طرف <a href="@Url.Action("Dovomin", "Account", new { userId = apply.DovominId })">@apply.DovominDisplayName</a></em> <em>از طرف <a href="@Url.Action("Dovomin", "Account", new { userId = apply.DovominId })">@apply.DovominDisplayName</a></em>
@if (!string.IsNullOrWhiteSpace(apply.CoverLetter)) @if (!string.IsNullOrWhiteSpace(apply.CoverLetter))
{
{
<h5>پیغام متخصص:</h5> <h5>پیغام متخصص:</h5>
<blockquote>@apply.CoverLetter</blockquote> <blockquote>@apply.CoverLetter</blockquote>
} }
@ -157,7 +164,7 @@
<p>این متخصص تمامی مهارت های الزامی برای این فرصت شغلی را دارد. همچنین میزان مطابقت ایشان با این فرصت شغلی، @apply.Affinity درصد است.</p> <p>این متخصص تمامی مهارت های الزامی برای این فرصت شغلی را دارد. همچنین میزان مطابقت ایشان با این فرصت شغلی، @apply.Affinity درصد است.</p>
} }
else else
{
{
<p>این متخصص برخی مهارت های الزامی برای این فرصت شغلی را ندارد. همچنین میزان مطابقت ایشان با این فرصت شغلی، @apply.Affinity درصد است.</p> <p>این متخصص برخی مهارت های الزامی برای این فرصت شغلی را ندارد. همچنین میزان مطابقت ایشان با این فرصت شغلی، @apply.Affinity درصد است.</p>
} }
</div> </div>
@ -199,4 +206,5 @@
}); });
</script> </script>
</body> </body>
</html> </html>

Loading…
Cancel
Save