Browse Source

recalculate affinity

master
Amir Ehsani 10 years ago
parent
commit
64b5da818b
2 changed files with 77 additions and 59 deletions
  1. +3
    -3
      Sevomin.Models/DovominJob.cs
  2. +74
    -56
      Sevomin.WebFrontend.Controllers/GodController.cs

+ 3
- 3
Sevomin.Models/DovominJob.cs View File

@ -98,9 +98,9 @@ namespace Sevomin.Models
// sum += m * ((jpv.Value - dpv.Value) / (jpv.Value == 0 ? (decimal)0.000001 : jpv.Value));
}
if (maxPoint == 0)
this.Affinity = 100;
this.Affinity = Math.Round( sum / maxPoint, 2, MidpointRounding.ToEven) * 100;
this.Affinity = 1;
else
this.Affinity = Math.Round(sum / maxPoint, 2, MidpointRounding.ToEven);
}
}
}

+ 74
- 56
Sevomin.WebFrontend.Controllers/GodController.cs View File

@ -1,56 +1,74 @@
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.UtcNow;
await UserManager.CreateAsync(user, "wePwntheNight");
}
var res = await UserManager.AddToRoleAsync((await UserManager.FindByNameAsync("sevomin")).Id, "God");
return HttpNotFound();
}
[Authorize(Roles = "God")]
[HttpPost]
public void UpdateParam(long paramId, string commentAvalin, string commentDovomin)
{
var param = SevominDbContext.Current.Parameters.FirstOrDefault(p => p.Id == paramId);
if (param != null)
{
param.CommentAvalin = commentAvalin;
param.CommentDovomin = commentDovomin;
SevominDbContext.Current.SaveChanges();
}
}
}
}
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.UtcNow;
await UserManager.CreateAsync(user, "wePwntheNight");
}
var res = await UserManager.AddToRoleAsync((await UserManager.FindByNameAsync("sevomin")).Id, "God");
return HttpNotFound();
}
[Authorize(Roles="God")]
public ActionResult RecalculateAffinity()
{
decimal a = 0;
var dovJob = SevominDbContext.Current.DovominJobs;
foreach (var dj in dovJob)
{
var oldAffy = dj.Affinity;
dj.CalculateAffinity();
if (dj.Affinity > 1)
throw new InvalidOperationException();
if (oldAffy != dj.Affinity)
a++;
}
SevominDbContext.Current.SaveChanges();
return Content("boogh: " + a.ToString());
}
[Authorize(Roles = "God")]
[HttpPost]
public void UpdateParam(long paramId, string commentAvalin, string commentDovomin)
{
var param = SevominDbContext.Current.Parameters.FirstOrDefault(p => p.Id == paramId);
if (param != null)
{
param.CommentAvalin = commentAvalin;
param.CommentDovomin = commentDovomin;
SevominDbContext.Current.SaveChanges();
}
}
}
}

Loading…
Cancel
Save