private void HandleOfflineCases1and2(string username, SortedList sortedAvailableLevels, ArrayList levels) { foreach (DictionaryEntry de in sortedAvailableLevels) { var currentActivatedUsers = GetFeatureUsers((int)de.Key); var level = new ActLevel(); int availAct; if (!string.IsNullOrWhiteSpace(username) && currentActivatedUsers.Contains(username)) { availAct = 1; level.isUserInLevel = true; } else { availAct = (int)de.Value - currentActivatedUsers.Count; } level.id = (int)de.Key; level.name = GetFeatureName(de.Key.ToString()); level.totalactivations = (int)de.Value; level.availableactivations = availAct; levels.Add(level); } }
private static void HandleOnlineCase1(ArrayList levels, DataSet dataSetsInfo) { var level = new ActLevel { id = 0, name = "No Access", availableactivations = 1, totalactivations = 0, isUserInLevel = true }; levels.Add(level); level = new ActLevel { id = 2, name = "Standard User", availableactivations = 0, totalactivations = 0, isUserInLevel = false }; try { if (dataSetsInfo.Tables[1].Rows[0]["Level"].ToString() == "4") { level.name = "PortfolioEngine"; level.id = 3; } else if (dataSetsInfo.Tables[1].Rows[0]["Level"].ToString() == "2") { level.id = 2; level.name = "WorkEngine"; } var max = int.Parse(dataSetsInfo.Tables[1].Rows[0]["MaxUsers"].ToString()); var userCount = int.Parse(dataSetsInfo.Tables[1].Rows[0]["UserCount"].ToString()); level.totalactivations = userCount; level.availableactivations = max - userCount; } catch (Exception ex) { Trace.TraceError("Exception Suppressed {0}", ex); } try { if (dataSetsInfo.Tables[2].Rows[0][0].ToString() == "1") { level.isUserInLevel = true; ((ActLevel)levels[0]).isUserInLevel = false; } } catch (Exception ex) { Trace.TraceError("Exception Suppressed {0}", ex); } levels.Add(level); }
private static void HandleOnlineCase3(ArrayList levels, DataSet dataSetsInfo) { var level = new ActLevel { id = 0, name = "No Access", availableactivations = 1, totalactivations = 0, isUserInLevel = false }; levels.Add(level); var isUserInOtherLevel = false; foreach (DataRow dr in dataSetsInfo.Tables[1].Rows) { level = new ActLevel { id = int.Parse(dr["ResLevel"].ToString()), name = dr["LevelName"].ToString(), availableactivations = 0, totalactivations = 0, isUserInLevel = false }; try { var max = int.Parse(dr["Quantity"].ToString()); var userCount = int.Parse(dr["UserCount"].ToString()); level.totalactivations = userCount; level.availableactivations = max - userCount; } catch (Exception ex) { Trace.TraceError("Exception Suppressed {0}", ex); } try { if (dataSetsInfo.Tables[2].Rows[0][0].ToString() == level.id.ToString()) { isUserInOtherLevel = true; level.isUserInLevel = true; } } catch (Exception ex) { Trace.TraceError("Exception Suppressed {0}", ex); } levels.Add(level); } if (isUserInOtherLevel) { ((ActLevel)levels[0]).isUserInLevel = true; } }
private string GetLevelName(ActLevel Level, Act act) { if (bIsOnline) { if (Level.availableactivations < 1 && !Level.isUserInLevel && (act.OwnerUsername == CoreFunctions.GetRealUserName(Web.CurrentUser.LoginName, Web.Site))) { string url = Web.ServerRelativeUrl; if (url == "/") { url = ""; } return(Level.name + " <a style=\"\" href=\"javascript:void(0);\" onclick=\"var options={url: '" + url + "/_layouts/epmlive/manageaccount.aspx',width: 800,height: 600}; SP.SOD.execute('SP.UI.Dialog.js', 'SP.UI.ModalDialog.showModalDialog', options);\"><img src=\"/_layouts/epmlive/images/purchaseaccounts.png\" border=\"0\"></a>"); } } else { } return(Level.name); }
private void HandleOfflineCase3(string username, SortedList sortedAvailableLevels, ArrayList levels) { var userLevels = new UserLevels(); var currentActivatedUsers = GetFeatureUsers(1000); foreach (var userLevel in userLevels) { var userLevelValue = userLevel.Value; var activatedUsers = 0; foreach (string sUser in currentActivatedUsers) { try { var user = sUser.Split(':'); if (user[1] == userLevelValue.id.ToString()) { activatedUsers++; } } catch (Exception ex) { Trace.TraceError("Exception Suppressed {0}", ex); } } var availAct = 0; var level = new ActLevel(); var totalCount = 0; if (sortedAvailableLevels.ContainsKey(userLevelValue.id)) { totalCount = (int)sortedAvailableLevels[userLevelValue.id]; } if (totalCount > 0 || userLevelValue.id == 0) { if (!string.IsNullOrWhiteSpace(username) && currentActivatedUsers.Contains(string.Format("{0}:{1}", username, userLevelValue.id))) { availAct = 1; level.isUserInLevel = true; } else { availAct = totalCount - activatedUsers; } } level.id = userLevelValue.id; level.name = userLevelValue.name; level.totalactivations = totalCount; level.availableactivations = userLevelValue.id == 0 ? 1 : availAct; levels.Add(level); } }