2022 jphd-3dprint
continuous-integration/drone/push Build is failing

This commit is contained in:
2022-02-23 17:19:19 +08:00
parent e0115e0e07
commit 772525a9b6
18 changed files with 712 additions and 228 deletions
+175 -106
View File
@@ -8,6 +8,7 @@ using System.Linq;
using System.Threading.Tasks;
using System.Text.Json;
using System.IO;
using System.Security.Claims;
namespace _2021_backend.Pages.Sessions
{
@@ -124,159 +125,227 @@ namespace _2021_backend.Pages.Sessions
public async Task<IActionResult> OnPostArrangeAsync()
{
if (Utils.Arranger.Arrange(Context)) return Construct("");
else return Construct("排班失败,无法满足条件");
if (HttpContext.User.HasClaim((c) =>
{
return c.Type == ClaimTypes.Role&& (
c.Value == "admin" || c.Value == "manager");
})){
if (Utils.Arranger.Arrange(Context)) return Construct("");
else return Construct("排班失败,无法满足条件");
}
else
{
return Construct("您无权进行此操作");
}
}
public async Task<IActionResult> OnPostClearAllAsync()
{
foreach(var s in Context.Students)
if (HttpContext.User.HasClaim((c) =>
{
s.InterviewTime = 0;
s.Status = status.需调整时间;
s.Timelist.Clear();
}
Context.SaveChanges();
foreach(var s in Context.Sessions)
return c.Type == ClaimTypes.Role && (
c.Value == "admin" || c.Value == "manager");
}))
{
Context.Sessions.Remove(s);
foreach (var s in Context.Students)
{
s.InterviewTime = 0;
s.Status = status.需调整时间;
s.Timelist.Clear();
}
Context.SaveChanges();
foreach (var s in Context.Sessions)
{
Context.Sessions.Remove(s);
}
Context.SaveChanges();
return Construct("");
}
else
{
return Construct("您无权进行此操作");
}
Context.SaveChanges();
return Construct("");
}
public async Task<IActionResult> OnPostResetAllAsync()
{
var stus = Context.Students.ToList();
foreach (var s in stus)
if (HttpContext.User.HasClaim((c) =>
{
if(s.Status == status.已选时间)
return c.Type == ClaimTypes.Role && (
c.Value == "admin" || c.Value == "manager");
}))
{
var stus = Context.Students.ToList();
foreach (var s in stus)
{
s.InterviewTime = 0;
s.Timelist.RemoveAll(it => !Context.Sessions.Any(k => k.Id == it));
s.Timelist.Sort((int a, int b) =>
if (s.Status == status.已选时间)
{
var x = Context.Sessions.Find(a);
var y = Context.Sessions.Find(b);
var k1 = x.Day.CompareTo(y.Day);
var k2 = x.BeginTime.CompareTo(y.BeginTime);
return k1 != 0 ? k1 : k2;
});
s.InterviewTime = 0;
s.Timelist.RemoveAll(it => !Context.Sessions.Any(k => k.Id == it));
s.Timelist.Sort((int a, int b) =>
{
var x = Context.Sessions.Find(a);
var y = Context.Sessions.Find(b);
var k1 = x.Day.CompareTo(y.Day);
var k2 = x.BeginTime.CompareTo(y.BeginTime);
return k1 != 0 ? k1 : k2;
});
}
}
Context.SaveChanges();
foreach (var s in Context.Sessions)
{
s.Students.Clear();
}
Context.SaveChanges();
return Construct("");
}
Context.SaveChanges();
foreach (var s in Context.Sessions)
else
{
s.Students.Clear();
return Construct("您无权进行此操作");
}
Context.SaveChanges();
return Construct("");
}
public async Task<IActionResult> OnPostSaveAsync()
{
var lst = Context.Sessions.ToList();
var str = JsonSerializer.Serialize(lst);
Console.WriteLine("Saving arrangement: " + str);
if(!Directory.Exists("./saves")) Directory.CreateDirectory("./saves/");
System.IO.File.WriteAllText($"./saves/{DateTime.Now.ToString("MM-dd-hh-mm-ss")}.txt", str);
return Construct("");
if (HttpContext.User.HasClaim((c) =>
{
return c.Type == ClaimTypes.Role && (
c.Value == "admin" || c.Value == "manager");
}))
{
var lst = Context.Sessions.ToList();
var str = JsonSerializer.Serialize(lst);
Console.WriteLine("Saving arrangement: " + str);
if (!Directory.Exists("./saves")) Directory.CreateDirectory("./saves/");
System.IO.File.WriteAllText($"./saves/{DateTime.Now.ToString("MM-dd-hh-mm-ss")}.txt", str);
return Construct("");
}
else
{
return Construct("您无权进行此操作");
}
}
public async Task<IActionResult> OnPostTidyAsync()
{
var stus = Context.Students.ToList();
var sess = Context.Sessions.ToList();
foreach(var i in stus)
if (HttpContext.User.HasClaim((c) =>
{
var tm = i.Timelist;
var ntm = new List<Session>();
foreach(var j in tm)
return c.Type == ClaimTypes.Role && (
c.Value == "admin" || c.Value == "manager");
}))
{
var stus = Context.Students.ToList();
var sess = Context.Sessions.ToList();
foreach (var i in stus)
{
var k = sess.Find(it => it.Id == j);
ntm.Add(k);
}
ntm.Sort((Session a,Session b) =>
{
var x = a.Day.CompareTo(b.Day);
var y = a.BeginTime.CompareTo(b.BeginTime);
return x != 0 ? x : y;
});
List<int> nl = new List<int>();
foreach(var j in ntm)
{
if(i.Status != status.不通过 && i.Status != status.通过 && i.Status != status.已确认时间)
var tm = i.Timelist;
var ntm = new List<Session>();
foreach (var j in tm)
{
if (j.Day.Date.Add(j.BeginTime.TimeOfDay).CompareTo(DateTime.Now) < 0 || (j.Students.Count >= j.Capacity && !j.Students.Any(k => k ==i.Id) )) continue;
nl.Add(j.Id);
var k = sess.Find(it => it.Id == j);
ntm.Add(k);
}
else
ntm.Sort((Session a, Session b) =>
{
nl.Add(j.Id);
var x = a.Day.CompareTo(b.Day);
var y = a.BeginTime.CompareTo(b.BeginTime);
return x != 0 ? x : y;
});
List<int> nl = new List<int>();
foreach (var j in ntm)
{
if (i.Status != status.不通过 && i.Status != status.通过 && i.Status != status.已确认时间)
{
if (j.Day.Date.Add(j.BeginTime.TimeOfDay).CompareTo(DateTime.Now) < 0 || (j.Students.Count >= j.Capacity && !j.Students.Any(k => k == i.Id))) continue;
nl.Add(j.Id);
}
else
{
nl.Add(j.Id);
}
}
i.Timelist = nl;
}
i.Timelist = nl;
Context.SaveChanges();
return Construct("");
}
else
{
return Construct("您无权进行此操作");
}
Context.SaveChanges();
return Construct("");
}
public async Task<IActionResult> OnPostLoadAsync()
{
var str = "";
if (HttpContext.User.HasClaim((c) =>
{
return c.Type == ClaimTypes.Role && (
c.Value == "admin" || c.Value == "manager");
}))
{
var str = "";
List<Session> loads = new List<Session>();
if (!string.IsNullOrEmpty(savename)) str = System.IO.File.ReadAllText(savename);
loads = JsonSerializer.Deserialize<List<Session>>(str);
List<Session> loads = new List<Session>();
if (!string.IsNullOrEmpty(savename)) str = System.IO.File.ReadAllText(savename);
loads = JsonSerializer.Deserialize<List<Session>>(str);
var stus = Context.Students.ToList();
foreach (var s in stus)
{
if (s.Status == status.已选时间)
var stus = Context.Students.ToList();
foreach (var s in stus)
{
s.InterviewTime = 0;
s.Timelist.RemoveAll(it => !Context.Sessions.Any(k => k.Id == it));
s.Timelist.Sort((int a, int b) =>
if (s.Status == status.已选时间)
{
var x = Context.Sessions.Find(a);
var y = Context.Sessions.Find(b);
var k1 = x.Day.CompareTo(y.Day);
var k2 = x.BeginTime.CompareTo(y.BeginTime);
return k1 != 0 ? k1 : k2;
});
}
}
Context.SaveChanges();
foreach (var s in Context.Sessions)
{
s.Students.Clear();
}
Context.SaveChanges();
foreach(var item in loads)
{
Session s = Context.Sessions.Find(item.Id);
if(s != null)
{
s.BeginTime = item.BeginTime;
s.Day = item.Day;
s.Capacity = item.Capacity;
s.SendSMS = item.SendSMS;
s.Chiefs = item.Chiefs;
s.Students = new List<int>();
foreach(var s2 in item.Students)
{
if (Context.Students.Any(k => k.Id == s2))
s.InterviewTime = 0;
s.Timelist.RemoveAll(it => !Context.Sessions.Any(k => k.Id == it));
s.Timelist.Sort((int a, int b) =>
{
Context.Students.Find(s2).InterviewTime = item.Id;
s.Students.Add(s2);
var x = Context.Sessions.Find(a);
var y = Context.Sessions.Find(b);
var k1 = x.Day.CompareTo(y.Day);
var k2 = x.BeginTime.CompareTo(y.BeginTime);
return k1 != 0 ? k1 : k2;
});
}
}
Context.SaveChanges();
foreach (var s in Context.Sessions)
{
s.Students.Clear();
}
Context.SaveChanges();
foreach (var item in loads)
{
Session s = Context.Sessions.Find(item.Id);
if (s != null)
{
s.BeginTime = item.BeginTime;
s.Day = item.Day;
s.Capacity = item.Capacity;
s.SendSMS = item.SendSMS;
s.Chiefs = item.Chiefs;
s.Students = new List<int>();
foreach (var s2 in item.Students)
{
if (Context.Students.Any(k => k.Id == s2))
{
Context.Students.Find(s2).InterviewTime = item.Id;
s.Students.Add(s2);
}
}
}
}
Context.SaveChanges();
return Construct("");
}
else
{
return Construct("您无权进行此操作");
}
Context.SaveChanges();
return Construct("");
}
}
}