public async Task <IActionResult> OnPostAsync() { var Users = from m in _context.UserInfo select m; int UserID = (int)HttpContext.Session.GetInt32("UserID"); Users = Users.Where(x => x.ID.Equals(UserID)); if (await TryUpdateModelAsync <UserInfo>(UserInfo, "userinfo", s => s.FirstName, s => s.LastName, s => s.Email, s => s.Birthdate, s => s.Password, s => s.Biography, s => s.Twitter, s => s.Linkedin, s => s.Facebook, s => s.IsInstructor)) { if (UserInfo.Password == null) { UserInfo.Password = (from m in Users select m.Password).Single(); } else { UserInfo.Password = Hash.Create(PasswordEncryption.EncryptString(UserInfo.Password)); } UserInfo.Birthdate = (from m in Users select m.Birthdate).Single(); if (UserInfo.ImagePath == null) { UserInfo.UserImage = (from m in Users select m.UserImage).Single(); UserInfo.ImagePath = (from m in Users select m.ImagePath).Single(); } if (this.FormImage != null) { using var memoryStream = new MemoryStream(); await FormImage.CopyToAsync(memoryStream); Image img = Image.FromStream(memoryStream); MemoryStream ms = new MemoryStream(); img.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp); UserInfo.UserImage = memoryStream.ToArray(); UserInfo.ImagePath = null; } if (UserInfo.Biography == null) { UserInfo.Biography = (from m in Users select m.Biography).Single(); } _context.UserInfo.Update(UserInfo); await _context.SaveChangesAsync(); return(RedirectToPage("../Profile/Profile")); } return(Page()); }
// To protect from overposting attacks, enable the specific properties you want to bind to, for // more details, see https://aka.ms/RazorPagesCRUD. public async Task <IActionResult> OnPostAsync() { if (UserInfo.Password == null) { return(null); } Image tempImage = Image.FromFile("Images/DefaultImage.jpg"); var ms = new MemoryStream(); tempImage.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); UserInfo.UserImage = ms.ToArray(); UserInfo.ImagePath = "~/Images/DefaultImage.jpg"; UserInfo.Twitter = "https://twitter.com"; UserInfo.Linkedin = "https://www.linkedin.com/"; UserInfo.Facebook = "https://www.facebook.com/"; UserInfo.CreditHours = 0; UserInfo.Biography = "Temporary"; UserInfo.AccountCharges = 0; UserInfo.AccountPayments = 0; if (!ModelState.IsValid) { return(Page()); } // hash password UserInfo.Password = Hash.Create(PasswordEncryption.EncryptString(UserInfo.Password)); var Users = from x in _context.UserInfo select x; Users = Users.Where(s => s.Email.Equals(UserInfo.Email)); if (Users.Count() == 0) { _context.UserInfo.Add(UserInfo); await _context.SaveChangesAsync(); return(RedirectToPage("../SignIn/signin")); } else { return(null); } }
public async Task <IActionResult> OnPostAsync(string stripeEmail, string stripeToken) { var id = HttpContext.Session.GetInt32("UserID"); if (id == null) { return(NotFound()); } UserInfo = await _context.UserInfo.FirstOrDefaultAsync(m => m.ID == id); var customers = new CustomerService(); var charges = new ChargeService(); var customer = customers.Create(new CustomerCreateOptions { Email = stripeEmail, Source = stripeToken }); var charge = charges.Create(new ChargeCreateOptions { Amount = (int)HttpContext.Session.GetInt32("AccountPayment"), Description = "Account Payment", Currency = "usd", Customer = customer.Id }); if (charge.Status == "succeeded") { string BalanceTransactionId = charge.BalanceTransactionId; var amount = (int)HttpContext.Session.GetInt32("AccountPayment"); UserInfo.AccountPayments = amount + UserInfo.AccountPayments; _context.UserInfo.Update(UserInfo); await _context.SaveChangesAsync(); return(RedirectToPage("../Account/AccountCharged")); } else { return(Page()); } }