public async Task<ActionResult> UserProperties(UserPropertiesViewModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var user = await UserManager.FindByIdAsync(User.Identity.GetUserId());
                    user.FirstName = model.FirstName;
                    user.LastName = model.LastName;
                    user.Email = model.Email;
                    user.Phone = model.Phone;
                    await UserManager.UpdateAsync(user);
                    return RedirectToAction("Manage", new { Message = "Your properties have been updated." });

                }
                catch (Exception ex)
                {
                    Trace.TraceError("Error occurred while updating user properties : {0}", ex.ToString());
                }
            }

            return View(model);

        }
        public ActionResult UserPropertiesList()
        {
            return Task.Run(async () =>
            {
                UserPropertiesViewModel uservm = new UserPropertiesViewModel();

                try
                {
                    var user = await UserManager.FindByIdAsync(User.Identity.GetUserId());

                    uservm.FirstName = user.FirstName;
                    uservm.LastName = user.LastName;
                    uservm.Email = user.Email;
                    uservm.Phone = user.Phone;
                    uservm.JoinDate = user.JoinDate;
                }
                catch (Exception ex)
                {
                    Trace.TraceError("Error occurred while getting user properties: {0}", ex.ToString());
                }

                return (ActionResult)PartialView("_UserPropertiesListPartial", uservm);
            }).Result;
        }
        public async Task<ActionResult> UserProperties(UserPropertiesViewModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    using (CustomDbContext db = new CustomDbContext())
                    {
                        UserStore<CustomUser> userstore = new UserStore<CustomUser>(db);
                        var user = await userstore.FindByIdAsync(User.Identity.GetUserId());
                        user.FirstName = model.FirstName;
                        user.LastName = model.LastName;
                        user.Email = model.Email;
                        user.Phone = model.Phone;
                        await userstore.UpdateAsync(user);
                        await db.SaveChangesAsync();
                        return RedirectToAction("Manage", new { Message = "Your properties have been updated." });
                    }
                }
                catch (Exception ex)
                {
                    Trace.TraceError("Error occurred while updating user properties : {0}", ex.ToString());
                }
            }

            return View(model);

        }