コード例 #1
0
        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());
        }
コード例 #2
0
        // 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);
            }
        }
コード例 #3
0
        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());
            }
        }