public ActionResult Delete(int id)
        {
            using (var context = _contextFactory.CreateDataContext())
            {
                var user = context.FindSingle(UserSpecs.GetUser(id));

                if (HttpContext.Request.HttpMethod == "POST")
                {
                    try
                    {
                        context.Delete(user);
                        context.SaveChanges();

                        return(RedirectToAction("Index"));
                    }
                    catch (Exception ex)
                    {
                        ModelState.AddModelError("", ex.Message);
                    }
                }

                var roles = context
                            .Find(RoleSpecs.GetRoles())
                            .ToList();

                return(View(new UserDeleteViewModel(user, roles)));
            }
        }
        public ActionResult Create()
        {
            using (var context = _contextFactory.CreateDataContext())
            {
                var roles = context
                            .Find(RoleSpecs.GetRoles())
                            .ToList();

                return(View(new UserCreateViewModel(roles)));
            }
        }
        public ActionResult Edit(int id)
        {
            using (var context = _contextFactory.CreateDataContext())
            {
                var user  = context.FindSingle(UserSpecs.GetUser(id));
                var roles = context
                            .Find(RoleSpecs.GetRoles())
                            .ToList();

                return(View(new UserEditViewModel(user, roles)));
            }
        }