public static IEnumerable<AtToken> Tokenize(string s) { var builder = new StringBuilder(); for (var i = 0; i < s.Length; i++) { var c = s[i]; switch (c) { case '@': if (i < s.Length - 1 && s[i + 1] == '@') { builder.Append(c); i++; } else { if (builder.Length > 0) { var literal = builder.ToString(); var literalToken = new AtToken { Type = AtTokenType.Literal, Literal = literal }; yield return literalToken; builder.Length = 0; } i++; for (var j = i; j < s.Length; j++) { var innerC = s[j]; if (char.IsLetterOrDigit(innerC)) { i++; builder.Append(innerC); } else { break; } } var identifier = builder.ToString(); var variableToken = new AtToken { Type = AtTokenType.Variable, Identifier = identifier }; yield return variableToken; builder.Length = 0; i--; } break; default: builder.Append(c); break; } } if (builder.Length > 0) { var literal = builder.ToString(); var literalToken = new AtToken { Type = AtTokenType.Literal, Literal = literal }; yield return literalToken; } }
public IActionResult Logout() { AtToken RemovedToken = db.AtToken.FirstOrDefault(c => c.Token == GetCookie("Token")); db.AtToken.Remove(RemovedToken); db.SaveChanges(); foreach (var cookie in Request.Cookies.Keys) { Response.Cookies.Delete(cookie); } return(RedirectToAction("Login", "Home")); }
public IActionResult Login(Accounts newData) { Accounts myAccount = db.Accounts.FirstOrDefault(c => c.Email == newData.Email && c.AtPassword == newData.AtPassword); if (myAccount != null) { StringBuilder token = new StringBuilder(); Random random = new Random(); char ch; for (int i = 0; i < 50; i++) { ch = Convert.ToChar(Convert.ToInt32(Math.Floor(26 * random.NextDouble() + 65))); token.Append(ch); } string timestamp = DateTime.Now.ToString().Replace(" ", "").Replace(":", "").Replace("/", ""); AtToken myToken = new AtToken { Token = token + timestamp, AtId = myAccount.AtId, TnStatus = myAccount.RoleType }; AtToken previousToken = db.AtToken.FirstOrDefault(c => c.AtId == myAccount.AtId); if (previousToken != null) { db.AtToken.Remove(previousToken); db.SaveChanges(); } db.AtToken.Add(myToken); db.SaveChanges(); foreach (var cookie in Request.Cookies.Keys) { Response.Cookies.Delete(cookie); } SetCookie("Token", myToken.Token, 30); SetCookie("Username", myAccount.AtName, 30); SetCookie("Role", myToken.TnStatus.ToString(), 30); SetCookie("Email", myAccount.Email, 30); return(RedirectToAction("Authentication")); } return(RedirectToAction("Login")); }
public IActionResult CreateEvent() { string RoleType = GetCookie("Role"); switch (RoleType) { case "1": return(RedirectToAction("Index", "Admin")); case "3": return(RedirectToAction("Index", "Guest")); case null: return(RedirectToAction("Login", "Home")); } ViewBag.Username = GetCookie("Username"); AtToken myToken = db.AtToken.FirstOrDefault(c => c.Token == GetCookie("Token")); ViewBag.MyId = myToken.AtId; return(View()); }
public static IEnumerable <AtToken> Tokenize(string s) { var builder = new StringBuilder(); for (var i = 0; i < s.Length; i++) { var c = s[i]; switch (c) { case '@': if (i < s.Length - 1 && s[i + 1] == '@') { builder.Append(c); i++; } else { if (builder.Length > 0) { var literal = builder.ToString(); var literalToken = new AtToken { Type = AtTokenType.Literal, Literal = literal }; yield return(literalToken); builder.Length = 0; } i++; for (var j = i; j < s.Length; j++) { var innerC = s[j]; if (char.IsLetterOrDigit(innerC)) { i++; builder.Append(innerC); } else { break; } } var identifier = builder.ToString(); var variableToken = new AtToken { Type = AtTokenType.Variable, Identifier = identifier }; yield return(variableToken); builder.Length = 0; i--; } break; default: builder.Append(c); break; } } if (builder.Length > 0) { var literal = builder.ToString(); var literalToken = new AtToken { Type = AtTokenType.Literal, Literal = literal }; yield return(literalToken); } }
public IActionResult EventList(int Initial, string Query) { string RoleType = GetCookie("Role"); switch (RoleType) { case "1": return(RedirectToAction("Index", "Admin")); case "2": return(RedirectToAction("Index", "User")); case null: return(RedirectToAction("Login", "Home")); } ViewBag.Username = GetCookie("Username"); AtToken myToken = db.AtToken.FirstOrDefault(c => c.Token == GetCookie("Token")); var q1 = db.Invite.Where(c => c.AtId == myToken.AtId).Select(s => s.EtId); var q2 = db.Attend.Where(c => c.AtId == myToken.AtId).Select(s => s.EtId); var q3 = q1.Concat(q2).Distinct().ToList(); List <Events> events = new List <Events>(); foreach (var i in q3) { Events myEvent = db.Events.FirstOrDefault(c => c.EtId == i); events.Add(myEvent); } if (Initial < 0) { Initial = 0; ViewBag.L2 = Initial + 10; } if (Query != null) { events = events.Where(c => c.EtName.Contains(Query, StringComparison.OrdinalIgnoreCase)).ToList(); ViewBag.Query = Query; } int total = events.Count(); ViewBag.Limit = total; int pages = total / 10; int remainder = total - pages * 10; var builder = events.Take(10 + Initial); var display = builder.TakeLast(10); ViewBag.L2 = Initial + 10; if (Initial == pages * 10) { display = builder.TakeLast(remainder); ViewBag.L2 = Initial + remainder; } ViewBag.Initial = Initial; if (total == 0) { ViewBag.L1 = 0; } else { ViewBag.L1 = Initial + 1; } ViewBag.L3 = total; string link = Request.Scheme + "://" + Request.Host + Url.Action("Event", "Home") + "?Code="; ViewBag.Link = link; return(View(display)); }
public IActionResult Event(string Code) { string RoleType = GetCookie("Role"); if (RoleType == null) { return(RedirectToAction("Login")); } if (RoleType == "1") { return(RedirectToAction("Index", "Admin")); } if (Code == null) { switch (RoleType) { case "2": return(RedirectToAction("Index", "User")); case "3": return(RedirectToAction("Index", "Guest")); } } AtToken myToken = db.AtToken.FirstOrDefault(c => c.Token == GetCookie("Token")); bool ch = char.IsNumber(Code[0]); if (ch == true) { Events myEvent = db.Events.FirstOrDefault(c => c.QrInvite == Code); if (myEvent == null) { return(Content("Debug: The Invite QR that you've requested is not valid.")); } Invite CheckIE = db.Invite.FirstOrDefault(c => c.EtId == myEvent.EtId && c.AtId == myToken.AtId); if (CheckIE != null) { switch (RoleType) { case "2": return(RedirectToAction("Index", "User")); case "3": return(RedirectToAction("Index", "Guest")); } } Invite myInvite = new Invite(); myInvite.AtId = myToken.AtId; myInvite.EtId = myEvent.EtId; db.Invite.Add(myInvite); db.SaveChanges(); switch (RoleType) { case "2": return(RedirectToAction("Index", "User")); case "3": return(RedirectToAction("Index", "Guest")); } } Events thisEvent = db.Events.FirstOrDefault(c => c.QrAttend == Code); if (thisEvent == null) { return(Content("Debug: The Attend QR that you've requested is not valid.")); } Attend CheckAD = db.Attend.FirstOrDefault(c => c.AtId == myToken.AtId && c.EtId == thisEvent.EtId); if (CheckAD != null) { switch (RoleType) { case "2": return(RedirectToAction("Index", "User")); case "3": return(RedirectToAction("Index", "Guest")); } } Attend myAttend = new Attend(); myAttend.AtId = myToken.AtId; myAttend.EtId = thisEvent.EtId; myAttend.AdRecord = DateTime.Now; db.Attend.Add(myAttend); db.SaveChanges(); switch (RoleType) { case "2": return(RedirectToAction("Index", "User")); case "3": return(RedirectToAction("Index", "Guest")); } return(View()); }