Ejemplo n.º 1
0
        public IActionResult Settings(Guid id, Guid RoleId)
        {
            if (id != Guid.Empty)
            {
                var _userSettings = new UserMappingSettings();
                _userSettings.UserId = id;
                _userSettings.RoleId = RoleId;
                var _userPermission = repository.userAccessPermissionService.
                                      GetFirstOrDefault(u => u.UserId == id);



                var appPermissions = GetUserConfig();
                if (_userPermission != null)
                {
                    var userconfg = JsonConvert.DeserializeObject <List <UserConfig> >(_userPermission.UserConfig);

                    var permission = (from ap in appPermissions
                                      join uc in userconfg
                                      on ap.Id equals uc.Id into upap
                                      from p in upap.DefaultIfEmpty()
                                      select new PermissionsViewModel
                    {
                        Id = ap.Id,                                                             //GUID
                        Selected = p == null ? false : p.Value,
                        FriendlyName = ap.FriendlyName,
                        isChecked = p == null ? "" : p.Value ? "on" : "",
                        Name = ap.Name,
                        Detail = ap.Detail,
                        Type = ap.Type
                    }
                                      ).ToList();
                    _userSettings.Permissions = permission.OrderByDescending(d => d.Type);
                    _userSettings.Reports     = repository.Report.GetReports(id);
                    return(View(_userSettings));
                }
                _userSettings.Permissions = appPermissions;
                //_userSettings.Reports = repository.Report.GetAll().Select(d => new SelectListItem
                //{
                //    Text = d.Name,
                //    Value = d.Id.ToString(),
                //    Key = d.Key.ToString(),
                //    Header = d.Header
                //}).OrderBy(d => d.Data).ToList();
                _userSettings.Reports = repository.Report.GetReports(id);
                return(View(_userSettings));
            }
            return(NotFound());
        }
Ejemplo n.º 2
0
        public IActionResult Settings(UserMappingSettings _userSettings)
        {
            if (_userSettings.Permissions != null && _userSettings.Permissions.Any())
            {
                for (var i = 0; i < _userSettings.Permissions.Count(); i++)
                {
                    ModelState.Remove($"Permissions[{i}].Name");
                    ModelState.Remove($"Permissions[{i}].FriendlyName");
                    ModelState.Remove($"Permissions[{i}].Detail");
                }
                if (ModelState.IsValid)
                {
                    var _userConfig = JsonConvert.SerializeObject(
                        _userSettings.Permissions.Select(p => new UserConfig
                    {
                        Id    = p.Id,
                        Value = string.IsNullOrEmpty(p.isChecked) && p.isChecked != "on" ? false : true,
                        Type  = p.Type
                    })
                        );

                    var _userAccess = repository.userAccessPermissionService.GetFirstOrDefault(uc => uc.UserId == _userSettings.UserId);
                    if (_userAccess != null)
                    {
                        _userAccess.UserConfig = _userConfig;
                        repository.userAccessPermissionService.Update(_userAccess);
                    }
                    else
                    {
                        repository.userAccessPermissionService.Add(new UserAccessPermission
                        {
                            Id         = Guid.NewGuid(),
                            UserId     = _userSettings.UserId,
                            UserConfig = _userConfig
                        });
                    }
                    repository.SaveChanges();
                    return(RedirectToAction(nameof(Settings), new { id = _userSettings.UserId }));
                }
            }
            return(View());
        }