/// <summary> /// Initialize common fields /// </summary> protected BaseCommand(CommandDataReceivedCallback callback) { _parameters = new List<string>(); _parameterObjs = new List<object>(); _commandString = ""; CommandDataReceived = callback; }
/// <summary> /// Create a custom command with no specific parameters /// </summary> /// <param name="cmdString"></param> /// <param name="optionalParams">Optional parameters to provide for this command</param> /// <param name="callback"></param> public CustomCommand(string cmdString, CommandDataReceivedCallback callback, params object[] optionalParams) : base(callback) { _parameterObjs.AddRange(optionalParams); CommandString = String.Format(cmdString, optionalParams); }
/// <summary> /// Create a new ExamineFolderCommand for the specified folder /// </summary> /// <param name="folder"></param> /// <param name="callback"></param> public ExamineFolderCommand(IFolder folder, CommandDataReceivedCallback callback) : base(callback) { _parameters.Add(folder.FullPath); _parameterObjs.Add(folder); CommandString = String.Format("EXAMINE \"{0}\"", Parameters); }
/// <summary> /// Create a new MessageListCommand for the specified folder /// </summary> /// <param name="folder"></param> /// <param name="callback"></param> public MessageListCommand(IFolder folder, CommandDataReceivedCallback callback) : base(callback) { _parameterObjs.Add(folder); CommandString = String.Format("UID SEARCH all"); }
/// <summary> /// Generates a new FolderListCommand specifying the root folder /// </summary> /// <param name="rootFolder"></param> /// <param name="callback"></param> public FolderListCommand(string rootFolder, CommandDataReceivedCallback callback) : base(callback) { _parameters.Add(rootFolder); CommandString = String.Format("LIST {0} \"*\"", Parameters); }
/// <summary> /// Create a new SelectFolderCommand for the specified folder /// </summary> /// <param name="folder"></param> /// <param name="callback"></param> public SelectFolderCommand(IFolder folder, CommandDataReceivedCallback callback) : base(callback) { _parameters.Add(folder.FullPath); _parameterObjs.Add(folder); CommandString = String.Format("SELECT \"{0}\"", Parameters); }
public CreateFolderCommand(string folderName, IFolder parentFolder, CommandDataReceivedCallback callback) : base(callback) { System.Text.StringBuilder b = new System.Text.StringBuilder(folderName); for (int i = 0; i < b.Length; ++i) { if (b[i] == '+') { b[i] = '&'; } else if (b[i] == '&') { b[i] = '+'; } } folderName = b.ToString(); byte[] utf7String = System.Text.Encoding.UTF7.GetBytes(folderName); folderName = System.Text.Encoding.ASCII.GetString(utf7String); folderName = folderName.Replace('/', ',').Replace('+', '&'); string fullFolder = parentFolder != null ? String.Format("{0}/{1}", parentFolder.FullEncodedPath, folderName) : folderName; fullFolder = fullFolder.Replace("\"", ""); _parameters.Add(fullFolder); CommandString = String.Format("CREATE \"{0}\"", fullFolder); }
/// <summary> /// Create a new ExamineFolderCommand for the specified folder /// </summary> /// <param name="folder"></param> /// <param name="callback"></param> public ExamineFolderCommand(IFolder folder, CommandDataReceivedCallback callback) : base(callback) { _parameters.Add(folder.FullEncodedPath); _parameterObjs.Add(folder); CommandString = String.Format("EXAMINE \"{0}\"", Parameters); }
public CreateFolderCommand(string folderName, IFolder parentFolder, CommandDataReceivedCallback callback) : base(callback) { System.Text.StringBuilder b = new System.Text.StringBuilder(folderName); for (int i = 0; i < b.Length; ++i) { if (b[i] == '+') b[i] = '&'; else if (b[i] == '&') b[i] = '+'; } folderName = b.ToString(); byte[] utf7String = System.Text.Encoding.UTF7.GetBytes(folderName); folderName = System.Text.Encoding.ASCII.GetString(utf7String); folderName = folderName.Replace('/', ',').Replace('+', '&'); string fullFolder = parentFolder != null ? String.Format("{0}/{1}", parentFolder.FullEncodedPath, folderName) : folderName; fullFolder = fullFolder.Replace("\"", ""); _parameters.Add(fullFolder); CommandString = String.Format("CREATE \"{0}\"", fullFolder); }
/// <summary> /// Initialize common fields /// </summary> protected BaseCommand(CommandDataReceivedCallback callback) { _parameters = new List <string>(); _parameterObjs = new List <object>(); _commandString = ""; CommandDataReceived = callback; }
/// <summary> /// Create a new Search command using the specified criteria /// </summary> /// <param name="criteria"></param> /// <param name="callback"></param> public SearchCommand(SearchCriteria criteria, CommandDataReceivedCallback callback) : base(callback) { _parameters.Add(criteria.ToString()); _parameterObjs.Add(criteria); CommandString = String.Format("UID SEARCH {0}", criteria.ToString()); }
/// <summary> /// Create a new message structure command /// </summary> /// <param name="msg"></param> /// <param name="callback"></param> public MessageStructureCommand(IMessage msg, CommandDataReceivedCallback callback) : base(callback) { _parameters.Add(msg.UID.ToString()); _parameterObjs.Add(msg); CommandString = String.Format("UID FETCH {0} BODYSTRUCTURE", Parameters); }
/// <summary> /// Generate a new LoginCommand /// </summary> /// <param name="username">The username of the account</param> /// <param name="password">The password of the account</param> /// <param name="callback"></param> public LoginCommand(string username, string password, CommandDataReceivedCallback callback) : base(callback) { _parameters.Add(username); _parameters.Add(password); CommandString = String.Format("LOGIN \"{0}\" \"{1}\"", Parameters); }
public RenameFolderCommand(IFolder folder, string newName, CommandDataReceivedCallback callback) : base(callback) { string fullNewName = folder.Parent == null ? newName : String.Format("{0}/{1}", folder.Parent.FullPath, newName); CommandString = String.Format("RENAME \"{0}\" \"{1}\"", folder.FullPath, fullNewName); }
/// <summary> /// Create a new message part command /// </summary> /// <param name="content"></param> /// <param name="callback"></param> public MessagePartCommand(IMessageContent content, CommandDataReceivedCallback callback) : base(callback) { _parameters.Add(content.Message.UID.ToString()); _parameters.Add(content.PartID); _parameterObjs.Add(content); CommandString = String.Format("UID FETCH {0} BODY[{1}]", Parameters); }
public MessageFlagCommand(IMessage msg, CommandDataReceivedCallback callback) : base(callback) { if (msg == null) return; _parameters.Add(msg.UID.ToString()); _parameterObjs.Add(msg); CommandString = String.Format("UID FETCH {0} FLAGS", Parameters); }
/// <summary> /// Appends a message to the current mailbox /// </summary> /// <param name="flags"></param> /// <param name="parentFolder"></param> /// <param name="callback"></param> /// <returns></returns> public AppendCommand(string eml, string flags, IFolder parentFolder, CommandDataReceivedCallback callback) : base(callback) { string fullFolder = parentFolder.FullEncodedPath; fullFolder = fullFolder.Replace("\"", ""); _parameters.Add(fullFolder); CommandData = eml; CommandString = String.Format("APPEND \"{0}\" (\\Seen {1}) {{{2}}}", fullFolder, flags, Encoding.ASCII.GetBytes(CommandData.ToCharArray()).GetLength(0) - 2); }
public MoveFolderCommand(IFolder folder, IFolder parentFolder, CommandDataReceivedCallback callback) : base(callback) { string newFolder = parentFolder == null ? folder.Name : String.Format("{0}/{1}", parentFolder.FullPath, folder.Name); CommandString = String.Format("RENAME \"{0}\" \"{1}\"", folder.FullPath, newFolder); }
/// <summary> /// Create a new MessageHeaderCommand for the specified message /// </summary> /// <param name="msg"></param> /// <param name="callback"></param> public MessageHeaderCommand(IMessage msg, CommandDataReceivedCallback callback) : base(callback) { if (msg == null) throw new ArgumentNullException("msg","MessageHeaderCommand, msg cannot be null"); _parameters.Add(msg.UID.ToString()); _parameterObjs.Add(msg); CommandString = String.Format("UID FETCH {0} (FLAGS BODY.PEEK[HEADER])", Parameters); }
/// <summary> /// Initializes a new instance of the <see cref="CopyMessageCommand"/> class. /// </summary> /// <param name="msg">The message to copy.</param> /// <param name="destFolder">The destination folder.</param> /// <param name="callback">The callback to call when operation completed.</param> public CopyMessageCommand(IMessage msg, IFolder destFolder, CommandDataReceivedCallback callback) : base(callback) { // UID COPY 4963 "DestFolder" const string cmd = "UID COPY {0} \"{1}\""; _parameters.Add(msg.UID.ToString()); _parameters.Add(destFolder.FullEncodedPath); _parameterObjs.Add(msg); CommandString = String.Format(cmd, Parameters); }
public MessageFlagCommand(IMessage msg, CommandDataReceivedCallback callback) : base(callback) { if (msg == null) { return; } _parameters.Add(msg.UID.ToString()); _parameterObjs.Add(msg); CommandString = String.Format("UID FETCH {0} FLAGS", Parameters); }
/// <summary> /// Create a new MessageHeaderCommand for all messages inside a folder /// </summary> /// <param name="msg"></param> /// <param name="callback"></param> public MessageHeaderCommand(IFolder folder, CommandDataReceivedCallback callback) : base(callback) { if (folder == null) throw new ArgumentNullException("folder", "MessageHeaderCommand, folder cannot be null"); //_parameters.Add(msg.UID.ToString()); _parameters.Add("1:*"); _parameterObjs.Add(folder.Messages); CommandString = String.Format("UID FETCH {0} (FLAGS BODY.PEEK[HEADER])", Parameters); }
public CreateFolderCommand(string folderName, IFolder parentFolder, CommandDataReceivedCallback callback) : base(callback) { string fullFolder = parentFolder != null ? String.Format("{0}/{1}", parentFolder.FullPath, folderName) : folderName; fullFolder = fullFolder.Replace("\"", ""); _parameters.Add(fullFolder); CommandString = String.Format("CREATE \"{0}\"", fullFolder); }
/// <summary> /// Create a new ChangeFlag command /// </summary> /// <param name="msg"></param> /// <param name="flag"></param> /// <param name="value"></param> /// <param name="callback"></param> public ChangeFlagCommand(IMessage msg, MessageFlag flag, bool value, CommandDataReceivedCallback callback) : base(callback) { // UID STORE 4963 -FLAGS (\Seen) const string cmd = "UID STORE {0} {1}FLAGS (\\{2})"; _parameters.Add(msg.UID.ToString()); _parameters.Add(value ? "+":"-"); _parameters.Add(flag.ToString()); _parameterObjs.Add(msg); CommandString = String.Format(cmd, Parameters); }
/// <summary> /// Create a new ChangeFlag command /// </summary> /// <param name="msg"></param> /// <param name="flag"></param> /// <param name="value"></param> /// <param name="callback"></param> public ChangeFlagCommand(IMessage msg, string flag, bool value, CommandDataReceivedCallback callback) : base(callback) { // UID STORE 4963 -FLAGS (\Seen) const string cmd = "UID STORE {0} {1}FLAGS ({2})"; _parameters.Add(msg.UID.ToString()); _parameters.Add(value ? "+" : "-"); _parameters.Add(flag); _parameterObjs.Add(msg); CommandString = String.Format(cmd, Parameters); }
/// <summary> /// Create a new MessageHeaderCommand for the specified message /// </summary> /// <param name="msg"></param> /// <param name="callback"></param> public MessageHeaderCommand(IMessage msg, CommandDataReceivedCallback callback) : base(callback) { if (msg == null) { throw new ArgumentNullException("msg", "MessageHeaderCommand, msg cannot be null"); } _parameters.Add(msg.UID.ToString()); _parameterObjs.Add(msg); CommandString = String.Format("UID FETCH {0} (FLAGS BODY.PEEK[HEADER])", Parameters); }
/// <summary> /// Create a new MessageHeaderCommand for all messages inside a folder /// </summary> /// <param name="msg"></param> /// <param name="callback"></param> public MessageHeaderCommand(IFolder folder, CommandDataReceivedCallback callback) : base(callback) { if (folder == null) { throw new ArgumentNullException("folder", "MessageHeaderCommand, folder cannot be null"); } //_parameters.Add(msg.UID.ToString()); _parameters.Add("1:*"); _parameterObjs.Add(folder.Messages); CommandString = String.Format("UID FETCH {0} (FLAGS BODY.PEEK[HEADER])", Parameters); }
public DeleteFolderCommand(IFolder deadFolder, CommandDataReceivedCallback callback) : base(callback) { CommandString = String.Format("DELETE \"{0}\"", deadFolder.FullPath); }
/// <summary> /// Create a new HeartBeatCommand /// </summary> public HeartBeatCommand(CommandDataReceivedCallback callback) : base(callback) { CommandString = "NOOP"; }
/// <summary> /// Create new Capability command /// </summary> public CapabilityCommand(CommandDataReceivedCallback callback) : base(callback) { CommandString = "CAPABILITY"; }
public ExpungeCommand(CommandDataReceivedCallback callback) : base(callback) { CommandString = "EXPUNGE"; }