public async Task <IActionResult> Create()
        {
            var model = new UserCreateModel();
            var data  = await RoleApp.GetListAsync(new RoleOption { });

            var selects = data.Select(o => new SelectListItem {
                Value = o.Id.ToString(), Text = o.Name
            }).ToList();

            model.Rolelist  = selects;
            model.GoBackUrl = SetingBackUrl(this.HttpContext.Request);
            var deptdata = await DepartmentApp.GetDepartmentListAsync();

            deptdata = deptdata.SortDepartmentsForTree().ToList();
            var selectList = new List <SelectListItem>();

            foreach (var c in deptdata)
            {
                selectList.Add(new SelectListItem()
                {
                    Value    = c.Id.ToString(),
                    Text     = c.GetFormattedBreadCrumb(deptdata),
                    Selected = c.Id == model.DepartmentId
                });
            }

            model.deptlist    = selectList;
            ViewBag.GoBackUrl = SetingBackUrl(this.HttpContext.Request);
            return(View(model));
        }
        public async Task <IActionResult> Edit(long id)
        {
            UserEditModel model = new UserEditModel();
            User          user  = await UserApp.GetAsync(id);

            if (user == null)
            {
                return(NotFind());
            }
            model           = user.MapTo <UserEditModel>();
            model.GoBackUrl = SetingBackUrl(this.HttpContext.Request);
            var data = await RoleApp.GetListAsync(new RoleOption { });

            List <SelectListItem> selects = data.Select(o => new SelectListItem {
                Value = o.Id.ToString(), Text = o.Name
            }).ToList();

            model.Rolelist = selects;

            var deptdata = await DepartmentApp.GetDepartmentListAsync();

            deptdata = deptdata.SortDepartmentsForTree().ToList();
            var selectList = new List <SelectListItem>();

            foreach (var c in deptdata)
            {
                selectList.Add(new SelectListItem()
                {
                    Value    = c.Id.ToString(),
                    Text     = c.GetFormattedBreadCrumb(deptdata),
                    Selected = c.Id == model.DepartmentId
                });
            }

            model.deptlist = selectList;

            ViewBag.GoBackUrl = SetingBackUrl(this.HttpContext.Request);
            return(View(model));
        }