public static ListOutput OutputList(ulong userId, params string[] input) { if (input.Length != 1) { throw GetListManagerException(ListErrorMessage.General.WrongFormat); } CustomList list = GetList(userId, input[0]); CheckPermissionWrite(userId, list); if (list.Count() == 0) { throw GetListManagerException(ListErrorMessage.General.ListIsEmpty_list, input[0]); } Func <int, int, int> GetLonger = (i1, i2) => { return(i1 > i2 ? i1 : i2); }; var maxItemLength = 0; var values = new string[list.Count(), 1]; for (int i = 0; i < list.Count(); i++) { var row = $"{(i+1).ToString()}: {list.Contents[i]}"; values[i, 0] = row; maxItemLength = GetLonger(maxItemLength, row.Length); } maxItemLength = GetLonger(maxItemLength, list.Name.Length); var tableSettings = new MessageFormater.TableSettings(list.Name, -(maxItemLength), false); string output = MessageFormater.CreateTable(tableSettings, values); return(GetListOutput(output, list.Permission)); }
public static string OutputList(string[] input) { if (input.Length != 1) { throw GetListManagerException(ListErrorMessage.WrongFormat); } CustomList list = GetList(input[0]); if (list.Count() == 0) { throw GetListManagerException(ListErrorMessage.ListIsEmpty_list, input[0]); } StringBuilder output = new StringBuilder(); output.Append("+--------------------\n"); for (int i = 0; i < list.contents.Count; i++) { output.Append(" | "); output.Append((i + 1)); output.Append(":\t'"); output.Append(list.contents[i]); output.Append("'\n"); } output.Append("+--------------------"); return(output.ToString()); }
private ListOutput OutputList(UserInfo userInfo, ListPermission permission, params string[] input) { if (input.Length != 1) { throw GetListManagerException(ListErrorMessage.General.WrongFormat); } CustomList list = GetList(input[0]); ThrowIfMissingReadPermission(userInfo, list); if (list.Count() == 0) { throw GetListManagerException(ListErrorMessage.General.ListIsEmpty_list, input[0]); } Func <int, int, int> GetLonger = (i1, i2) => { return(i1 > i2 ? i1 : i2); }; var maxItemLength = 0; var values = new string[list.Count(), 1]; for (int i = 0; i < list.Count(); i++) { var row = $"{(i + 1).ToString()}: {list.Contents[i]}"; values[i, 0] = row; maxItemLength = GetLonger(maxItemLength, row.Length); } maxItemLength = GetLonger(maxItemLength, list.Name.Length); var tableSettings = new MessageFormater.TableSettings(list.Name, -(maxItemLength), false); string output = MessageFormater.CreateTable(tableSettings, values); var outputPermission = permission == ListPermission.PRIVATE ? list.PermissionByRole.First().Value : permission; return(GetListOutput(output, outputPermission)); }
private ListOutput GetAll(UserInfo userInfo, ListPermission outputPermission) { if (Lists.Count == 0) { throw GetListManagerException(ListErrorMessage.General.NoLists); } Func <int, int, int> GetLonger = (i1, i2) => { return(i1 > i2 ? i1 : i2); }; var tableValuesList = new Dictionary <String, String>(); for (int i = 0; i < Lists.Count; i++) { CustomList l = Lists[i]; if (l.IsAllowedToList(userInfo)) { tableValuesList.Add(l.Name, $"{l.Count()} {GetNounPlural("item", l.Count())}"); } } var maxItemLength = 0; var tableValues = new string[tableValuesList.Count, 2]; for (int i = 0; i < tableValues.GetLength(0); i++) { var keyPair = tableValuesList.ElementAt(i); tableValues[i, 0] = keyPair.Key; tableValues[i, 1] = keyPair.Value; maxItemLength = GetLonger(maxItemLength, keyPair.Key.Length); maxItemLength = GetLonger(maxItemLength, keyPair.Value.Length); } var header = new[] { "List name", "Item count" }; foreach (string s in header) { maxItemLength = GetLonger(maxItemLength, s.Length); } var tableSettings = new MessageFormater.TableSettings("All lists", header, -(maxItemLength), true); string output = MessageFormater.CreateTable(tableSettings, tableValues); var count = 0; for (int i = 0; i < output.Length; i++) { if (output[i] == '\n') { if (count == 8) { output = output.Insert(i, LineIndicator); break; } else { count++; } } } var returnValue = GetListOutput(output, outputPermission); returnValue.listenForReactions = true; return(returnValue); }