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()); }
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()); }