示例#1
0
        private async Task <bool> ProcessStep(LoginViewModel model)
        {
            var InitStep = new IntilizationStep()
            {
                Mode = model.UserName,
                Auth = 1,
                Code = Extensions.GetUniqueKey(7) + "-" + Extensions.GetUniqueKey(24)
            };

            db.InitStep.Add(InitStep);
            await db.SaveChangesAsync();

            HttpContext.SetSecuredSessionCookie(_SessionName, InitStep.Code);

            return(true);
        }
示例#2
0
        public async Task <ActionResult> Verify(string id)
        {
            try
            {
                if (id == null)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }

                var Invite = await db.Invites.SingleOrDefaultAsync(x => x.Password == id);

                if (Invite == null)
                {
                    return(HttpNotFound());
                }

                var InitStep = await db.InitStep.FindAsync(id);

                if (InitStep == null)
                {
                    InitStep = new IntilizationStep
                    {
                        Auth = 3,
                        Code = id,
                        Mode = Invite.Username,
                    };

                    var AdminBase = new AdminRegistrationBase()
                    {
                        Email            = Invite.Email,
                        ConfirmationCode = id,
                        ResendActivity   = true,
                        StepCode         = InitStep.Code,
                        Step             = InitStep,
                        Role             = Invite.Role
                    };

                    using (var Transaction = db.Database.BeginTransaction(IsolationLevel.ReadCommitted))
                    {
                        try
                        {
                            db.InitStep.Add(InitStep);
                            db.AdminBase.Add(AdminBase);

                            await db.SaveChangesAsync();

                            Transaction.Commit();
                        }
                        catch (Exception)
                        {
                            Transaction.Rollback();
                            throw;
                        }
                    }
                }

                HttpContext.SetSecuredSessionCookie(AppSettings.GetValue("_SessionName"), InitStep.Code);
                return(RedirectToAction("Init", "App"));
            }
            catch (Exception)
            {
                throw;
            }
        }