public void Execute() { var branchIdentity = new BranchIdentity { isDead = false }; for (int symbolIndex = 0; symbolIndex < symbols.Length; symbolIndex++) { var symbol = symbols[symbolIndex]; if (symbol == customSymbols.branchOpenSymbol) { lastIdentityStack.Push(branchIdentity); } else if (symbol == customSymbols.branchCloseSymbol) { branchIdentity = lastIdentityStack.Pop(); } else if (symbol == customSymbols.autophagicSymbol) { branchIdentity.isDead = true; } if (branchIdentity.isDead) { symbols[symbolIndex] = customSymbols.deadSymbol; symbols.parameters[symbolIndex] = new JaggedIndexing { index = symbols.parameters[symbolIndex].index, length = 0 }; } } }
public void Execute() { var branchIdentity = new BranchIdentity { identity = 0, appliedSunlight = false }; for (int symbolIndex = 0; symbolIndex < symbols.Length; symbolIndex++) { var symbol = symbols[symbolIndex]; if (symbol == customSymbols.identifier) { var identityBits = new UIntFloatColor32(symbols.parameters[symbolIndex, 0]); branchIdentity = new BranchIdentity(identityBits.UIntValue); } else if (symbol == customSymbols.branchOpenSymbol) { lastIdentityStack.Push(branchIdentity); } else if (symbol == customSymbols.branchCloseSymbol) { branchIdentity = lastIdentityStack.Pop(); } else if (symbol == customSymbols.sunlightSymbol) { if (branchIdentity.identity <= 0) { continue; } uint pixelCount = 0; if (organCountsByIndex.Length > branchIdentity.identity) { pixelCount = organCountsByIndex[(int)branchIdentity.identity]; } var sunlightAmount = sunlightPerPixel * pixelCount; symbols.parameters[symbolIndex, 0] = sunlightAmount; branchIdentity.appliedSunlight = true; } } }
public ActionResult Index(CreateIdentityViewModel viewModel) { using (var sqlStorage = new SqlStorage()) { if (!ModelState.IsValid) { return(View(viewModel)); } // Trimmin' viewModel.Email = viewModel.Email.Trim(); viewModel.FullName = viewModel.FullName.Trim(); viewModel.Gamertag = viewModel.Gamertag.Trim(); viewModel.Username = viewModel.Username.Trim(); viewModel.InvitationCode = viewModel.InvitationCode.Trim(); // Validate uniqueness of Username and Email var user = sqlStorage.BranchIdentities .FirstOrDefault(i => i.Username.ToLower() == viewModel.Username.ToLower() || i.Email.ToLower() == viewModel.Email.ToLower()); if (user != null) { ModelState.AddModelError("Username", "Either this username has already been taken, or that email has already been used."); ModelState.AddModelError("Email", "Either this username has already been taken, or that email has already been used."); } // Validate Invite Code var invite = sqlStorage.BranchIdentityInvitations.FirstOrDefault( i => i.InvitationCode.ToLower() == viewModel.InvitationCode.ToLower() && !i.Used); if (invite == null) { ModelState.AddModelError("InvitationCode", "This invite code has either been used or isn't valid. Sorry bae."); } // Check Password is identical if (viewModel.Password != viewModel.PasswordConfirm) { ModelState.AddModelError("Password", "Your password and confirmation do not match."); } // Check Password Complexity var complexity = 0; if (Regex.IsMatch(viewModel.Password, @"\d+")) { complexity++; } if (Regex.IsMatch(viewModel.Password, @"[a-z]+")) { complexity++; } if (Regex.IsMatch(viewModel.Password, @"[A-Z]+")) { complexity++; } if (Regex.IsMatch(viewModel.Password, @"[^a-zA-Z\d]+")) { complexity++; } if (complexity < 2) { ModelState.AddModelError("Password", "Your password is not complex enough."); } if (!ModelState.IsValid) { viewModel.Password = viewModel.PasswordConfirm = ""; return(View(viewModel)); } // All gucci, create Branch Identity var password = Pbkdf2Crypto.ComputeHash(viewModel.Password, new Random().Next(1000, 1200)); var branchIdentity = new BranchIdentity { BranchRole = sqlStorage.BranchRoles.First(r => r.Type == RoleType.User), Email = viewModel.Email, FullName = viewModel.FullName, Username = viewModel.Username, PasswordHash = password.Hash, PasswordIterations = password.Iterations, PasswordSalt = password.Salt, BranchIdentityInvitation = invite }; // Set invite as used // ReSharper disable once PossibleNullReferenceException invite.Used = true; // Check gamer ids GlobalStorage.H4Manager.GetPlayerServiceRecord(viewModel.Gamertag, true); GlobalStorage.HReachManager.GetPlayerServiceRecord(viewModel.Gamertag, true); var gamerIdSafe = GamerIdentity.EscapeGamerId(viewModel.Gamertag); var gamerId = sqlStorage.GamerIdentities.FirstOrDefault(g => g.GamerIdSafe == gamerIdSafe); if (gamerId != null) { branchIdentity.GamerIdentity = gamerId; } sqlStorage.BranchIdentities.Add(branchIdentity); sqlStorage.SaveChanges(); var ipAddress = Request.ServerVariables.Get("HTTP_CF_CONNECTING_IP") ?? Request.UserHostAddress; var branchSession = BranchSession.Create(ipAddress, Request.UserAgent, branchIdentity, false); sqlStorage.BranchSessions.Add(branchSession); var cookie = new HttpCookie("SessionIdentifier", branchSession.Identifier.ToString()) { Expires = branchSession.ExpiresAt }; Response.SetCookie(cookie); sqlStorage.SaveChanges(); return(RedirectToRoute("BranchIdentityView", new { controller = "Home", action = "Index", slug = branchIdentity.Username })); } }
public ActionResult Index(string slug, BranchIdentity branchIdentity) { return(View(new HomeIdentityViewModel(branchIdentity))); }
public HomeIdentityViewModel(BranchIdentity branchIdentity) { BranchIdentity = branchIdentity; }