public async Task <ActionResult> AddOrUpdate(UserViewModel model)
        {
            try
            {
                if (model.Type == UserType.Admin)
                {
                    return(Json(new AjaxResult("عملیات با مشکل مواجه گردید.")));
                }

                var isUpdate = model.Id > 0;
                if (isUpdate)
                {
                    model.ClearErrorForUpdate(ModelState);
                }

                if (!ModelState.IsValid)
                {
                    return(Json(new AjaxResult(ModelState.JoinMessages())));
                }

                if (await _service.UserNameExist(model.UserName, model.Id))
                {
                    return(Json(new AjaxResult("این شماره موبایل قبلا ثبت شده است.")));
                }

                var result = isUpdate ? await _service.Update(model.Id, model) : await _service.Create(model);

                if (result.Succeeded)
                {
                    return(Json(new AjaxResult(true, "اطلاعات با موفقیت ذخیره گردید.")));
                }

                return(Json(new AjaxResult(result.State.Errors.JoinMessages())));
            }
            catch (Exception e)
            {
                return(Json(new AjaxResult(e.JoinMessages())));
            }
        }