private static ListOutput CreateList(ulong userId, CustomList.ListPermission listPermissions, params string[] input) { if (input.Length == 0 || input.Length > 2) { throw GetListManagerException(ListErrorMessage.General.WrongFormat); } var listName = input[0]; try { GetList(userId, listName); } catch (ListManagerException) { var newList = new CustomList(userId, listPermissions, listName); newList.SaveList(); Lists.Add(newList); WriteContents(); var permissionAsString = CustomList.permissionStrings[(int)listPermissions]; return(GetListOutput($"Created {permissionAsString} list '{listName}'", listPermissions)); } throw GetListManagerException(ListErrorMessage.General.ListAlreadyExists_list, listName); }
public static ListOutput GetListOutput(Embed e, CustomList.ListPermission p) { return(new ListOutput { outputEmbed = e, permission = p }); }
public static ListOutput GetListOutput(string s, CustomList.ListPermission p) { return(new ListOutput { outputString = s, permission = p }); }
private static ListOutput GetAll(ulong userId, CustomList.ListPermission outputPermission, params string[] input) { 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(userId)) { 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); }