public async System.Threading.Tasks.Task <ActionResult> Edit([Bind(Include = "districtAdminId,name,description,UserId,isDeleted")] districtAdmin districtAdmin, RegisterModel register, string Id)
        {
            if (ModelState.IsValid)
            {
                register.isDeleted = 0;
                var userStore = new UserStore <ApplicationUser>(new
                                                                ApplicationDbContext());
                if (Id == null)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }
                var user = await UserManager.FindByIdAsync(Id);

                if (user == null)
                {
                    return(HttpNotFound());
                }
                user.FirstName = register.FirstName;
                user.LastName  = register.LastName;
                user.Email     = register.Email;
                user.PhoneNo   = register.PhoneNo;
                user.isDeleted = 0;
                user.Address   = register.Address;
                var removePassword = UserManager.RemovePassword(Id);
                if (removePassword.Succeeded)
                {
                    //Removed Password Success
                    var AddPassword = UserManager.AddPassword(Id, register.Password);
                    if (AddPassword.Succeeded)
                    {
                        await UserManager.UpdateAsync(user);

                        var ctx = userStore.Context;
                        ctx.SaveChanges();
                        districtAdmin.name            = register.FirstName + " " + register.LastName;
                        districtAdmin.UserId          = Id;
                        db.Entry(districtAdmin).State = EntityState.Modified;
                        db.SaveChanges();
                    }
                }

                return(RedirectToAction("Index"));
            }
            return(RedirectToAction("Index"));
        }
        public async System.Threading.Tasks.Task <ActionResult> DeleteConfirmed(int id)
        {
            var userStore = new UserStore <ApplicationUser>(new
                                                            ApplicationDbContext());
            districtAdmin districtAdmin = db.districtAdmins.Find(id);

            districtAdmin.isDeleted = 1;
            var user = await UserManager.FindByIdAsync(districtAdmin.UserId);

            user.isDeleted = 1;
            await UserManager.UpdateAsync(user);

            var ctx = userStore.Context;

            ctx.SaveChanges();
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        public async Task <ActionResult> RegisterDistrictAdmin(RegisterModel model, string description)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var user = new ApplicationUser
                    {
                        UserName  = model.userName,
                        Email     = model.Email,
                        FirstName = model.FirstName,
                        LastName  = model.LastName,
                        PhoneNo   = model.PhoneNo,
                        Address   = model.Address,
                        isDeleted = 0
                    };
                    model.UserRoles = "DistrictAdmin";
                    var result = await UserManager.CreateAsync(user, model.Password);

                    if (result.Succeeded)
                    {
                        await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

                        await this.UserManager.AddToRoleAsync(user.Id, model.UserRoles);

                        // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771
                        // Send an email with this link
                        // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
                        // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                        // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");
                        districtAdmin admin = new districtAdmin();
                        admin.isDeleted   = 0;
                        admin.description = description;
                        admin.UserId      = user.Id;
                        admin.name        = user.UserName;
                        db.districtAdmins.Add(admin);
                        db.SaveChanges();
                        var user1   = context.Users.Where(u => u.Email.Equals("*****@*****.**")).Single(); // where db is ApplicationDbContext instance
                        var result1 = await SignInManager.PasswordSignInAsync(user.UserName, "P@ssw0rd", false, shouldLockout : false);

                        model.UserRoles = "SystemAdmin";
                        switch (result1)
                        {
                        case SignInStatus.Success:
                            return(RedirectToAction("Index", "districtAdmins"));
                        }
                    }
                    AddErrors(result);
                }
            }
            catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)
            {
                Exception raise = dbEx;
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        string message = string.Format("{0}:{1}",
                                                       validationErrors.Entry.Entity.ToString(),
                                                       validationError.ErrorMessage);
                        // raise a new exception nesting
                        // the current instance as InnerException
                        raise = new InvalidOperationException(message, raise);
                    }
                }
                throw raise;
            }
            return(RedirectToAction("Index", "districtAdmins"));
        }