예제 #1
0
        // GET: Admin/Memmber/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            MEMBER mEMBER = Service.FindOne(id ?? 0);

            if (mEMBER == null)
            {
                return(HttpNotFound());
            }
            return(View(mEMBER));
        }
예제 #2
0
        // GET: Admin/Memmber/Delete/5
        public async Task <ActionResult> Delete(int?id)
        {
            CustomModel.ResultModel customModel = new CustomModel.ResultModel()
            {
                Message = "刪除失敗"
            };
            MemService service = new MemService();
            MEMBER     member  = service.FindOne(id);

            if (member == null)
            {
                return(Json(customModel));
            }

            var user = await UserManager.FindByNameAsync(member.mememail);

            var logins       = user.Logins;
            var rolesForUser = await UserManager.GetRolesAsync(user.Id);

            var appDbContext = HttpContext.GetOwinContext().Get <ApplicationDbContext>();

            using (var transaction = appDbContext.Database.BeginTransaction())
            {
                try
                {
                    foreach (var login in logins.ToList())
                    {
                        await UserManager.RemoveLoginAsync(login.UserId, new UserLoginInfo(login.LoginProvider, login.ProviderKey));
                    }

                    if (rolesForUser.Count() > 0)
                    {
                        foreach (var item in rolesForUser.ToList())
                        {
                            // item should be the name of the role
                            var result = await UserManager.RemoveFromRoleAsync(user.Id, item);
                        }
                    }

                    await UserManager.DeleteAsync(user);

                    Service.Delete(id);

                    transaction.Commit();

                    customModel.Success = true;
                    customModel.Message = "刪除成功";
                    return(Json(customModel));
                }
                catch (DbEntityValidationException ex)
                {
                    logger.Error(GetEntityErrorMsg(ex));
                }
                catch (Exception ex)
                {
                    logger.Error(ex.Message);
                    transaction.Rollback();
                }
                return(Json(customModel));
            }
        }