private void updateApp(DesktopUser currentUser, DesktopUser backupedUser, App app) { if (app.hasRola()) { if (currentCheckedRola != null) { string originalRolaId = backupedUser.getRolaId(app); if (originalRolaId.Equals(currentCheckedRola.Name)) { currentUser.addUpdateApp(app); //użytkownik originalnie miał tę apkę z taką samą rolą więc tylko dodaję ją do bieżącego użytkownika deleteFromChangedAppDataDict(currentUser, app); //żeby się wyświetlała, ale nie chcę jej na liście zmian } else //użytkownik miał ją ale z inną rolą, należy zaktualizować { addApp(currentUser, app); } } } else //ta apka nie ma roli { currentUser.addUpdateApp(app); //a użytkownik originalnie ją miał, więc tylko dodaję ją do bieżącego użytkownika deleteFromChangedAppDataDict(currentUser, app); //żeby się wyświetlała, ale nie chcę jej na liście zmian } }
private void addApp(DesktopUser currentUser, App app) { Rola rola; if (!app.hasRola()) //tutaj aktualizuję tylko aplikację, która nie ma roli; aplikację która ma rolę aktualizuję po zaznaczeniu roli { currentUser.addUpdateApp(app); addChangedAppDataToDict(currentUser, app); saveButton.Enabled = true; saveAndCloseButton.Enabled = true; statusInformationButton.Enabled = true; } else { if (currentCheckedRola != null) //ten fragment kodu uruchamiany jest ze zdarzenia ItemCheck na liście ról { rolaDict.TryGetValue(currentCheckedRola.Name, out rola); currentUser.addUpdateApp(app, rola); addChangedAppDataToDict(currentUser, app); saveButton.Enabled = true; saveAndCloseButton.Enabled = true; statusInformationButton.Enabled = true; } } }
//dane każdego użytkownika uzupełniam o zestawienie aplikacji do których ma uprawnienia wraz z rolami private void getUserApps() { DesktopUser user = null; foreach (string userId in allUsersDict.Keys) { string query = SqlQueries.getUserApps + "'" + userId + "'"; List <string[]> appList = dbReader.readFromDB(query).getQueryDataAsStrings(); List <string> appIdList = convertColumnDataToList(appList); //ta kwerenda zwraca pojedynczą listę, tj tylko id allUsersDict.TryGetValue(userId, out user); if (appIdList.Count > 0) { App app; Rola rola; foreach (string appId in appIdList) { appDictionary.TryGetValue(appId, out app); string rolaId = getAppRola(userId, appId); rolaDict.TryGetValue(rolaId, out rola); user.addUpdateApp(app, rola); } } } }