protected override CompletionResponse Behaviour() { uint commandId = base._dispatcher.SendCommand(string.Format("SELECT \"{0}\"", base.mailbox), this.filter); IMAP4Response response = base._dispatcher.GetResponse(commandId); while (!response.IsCompletionResponse()) { base.ProcessResponse(response); response = base._dispatcher.GetResponse(commandId); } CompletionResponse response2 = new CompletionResponse(response.Response); if (response2.CompletionResult == ECompletionResponseType.OK) { if (!base._existsRecieved) { throw new ExpectedResponseException("Expected * <n> EXISTS"); } if (!base._recentRecieved) { throw new ExpectedResponseException("Expected * <n> RECENT"); } if (!base._flagsRecieved) { throw new ExpectedResponseException("Expected * FLAGS (list)"); } } base.ProcessCompletionResponse(response2); return(response2); }
protected override CompletionResponse Behaviour() { uint commandId = base._dispatcher.SendCommand("AUTHENTICATE LOGIN"); if (base._dispatcher.GetResponse(commandId).Type != EIMAP4ResponseType.Continuation) { throw new UnexpectedResponseException("Unexpected response"); } base._dispatcher.SendContinuationCommand(base.GetBase64String(base._username)); if (base._dispatcher.GetResponse(commandId).Type != EIMAP4ResponseType.Continuation) { throw new UnexpectedResponseException("Unexpected response"); } base._dispatcher.SendContinuationCommand(base.GetBase64String(base._password)); IMAP4Response response = base._dispatcher.GetResponse(commandId); if (!CompletionResponse.IsCompletionResponse(response.Response)) { throw new UnexpectedResponseException("Unexpected response"); } CompletionResponse response2 = new CompletionResponse(response.Response); if (response2.CompletionResult == ECompletionResponseType.NO) { throw new UnexpectedResponseException("Unexpected response"); } return(response2); }
protected override CompletionResponse Behaviour() { uint commandId = base._dispatcher.SendCommand("LOGOUT", this.filter); IMAP4Response response = base._dispatcher.GetResponse(commandId); if (CompletionResponse.IsCompletionResponse(response.Response)) { CompletionResponse response2 = new CompletionResponse(response.Response); if (response2.CompletionResult != ECompletionResponseType.BAD) { throw new UnexpectedResponseException("Unexpected response"); } return(response2); } if ((response.Name != "BYE") || (response.Type != EIMAP4ResponseType.Untagged)) { throw new UnexpectedResponseException("Unexpected response"); } response = base._dispatcher.GetResponse(commandId); if (!CompletionResponse.IsCompletionResponse(response.Response)) { throw new UnexpectedResponseException("Unexpected response"); } CompletionResponse response3 = new CompletionResponse(response.Response); if (response3.CompletionResult == ECompletionResponseType.NO) { throw new UnexpectedResponseException("Unexpected response"); } return(response3); }
public static async Task <CompletionResponse> TranslateAsync(this CompletionResponse response, OmniSharpWorkspace workspace, CompletionRequest request) { foreach (var item in response.Items) { if (item.TextEdit is null) { continue; } var(_, textEdit) = await item.TextEdit.TranslateAsync(workspace, request.FileName); item.TextEdit = textEdit; List <LinePositionSpanTextChange> additionalTextEdits = null; foreach (var additionalTextEdit in item.AdditionalTextEdits ?? Enumerable.Empty <LinePositionSpanTextChange>()) { var(_, change) = await additionalTextEdit.TranslateAsync(workspace, request.FileName); // Due to the fact that AdditionalTextEdits return the complete buffer, we can't currently use that in Cake. // Revisit when we have a solution. At this point it's probably just best to remove AdditionalTextEdits. if (change.StartLine < 0) { continue; } additionalTextEdits ??= new List <LinePositionSpanTextChange>(); additionalTextEdits.Add(change); } item.AdditionalTextEdits = additionalTextEdits; } return(response); }
/// <summary> /// Deletes the specified message. /// </summary> /// <param name="mailbox">The mailbox to delete from.</param> /// <param name="messagePaths">The message paths to delete.</param> /// <param name="response">The response.</param> /// <returns>The response type.</returns> protected override CommandResponseType DeleteMessageCommand(Mailbox mailbox, Dictionary <string, string> messagePaths, out string response) { try { // Email servers dont hav an outbox if (mailbox.Folder == MailboxFolders.Outbox) { response = string.Empty; return(CommandResponseType.Ok); } // Any other mailbox else { SequenceSet sequenceSet = new SequenceSet(messagePaths.Keys.Select(o => new SequenceNumber(uint.Parse(o)))); _client.MarkAsDeleted(sequenceSet, mailbox); CompletionResponse deleteResponse = _client.Delete(sequenceSet, mailbox); response = deleteResponse.Message; return(GetCommandResponseType(deleteResponse.CompletionResult)); } } catch (Exception ex) { response = ex.ToString(); return(CommandResponseType.Bad); } }
protected void ProcessCompletionResponse(CompletionResponse response) { this._access = EIMAP4MailBoxAccessType.Default; if (((response.CompletionResult == ECompletionResponseType.OK) && (response.Message != "")) && (response.Message[0] == '[')) { int index = response.Message.IndexOf(']'); if (index != -1) { string str = response.Message.Substring(0, index + 1); if (str == "[READ-WRITE]") { this._access = EIMAP4MailBoxAccessType.ReadWrite; } else if (str == "[READ-ONLY]") { this._access = EIMAP4MailBoxAccessType.ReadOnly; } else { this._access = EIMAP4MailBoxAccessType.Default; } this._accessRecieved = true; } } }
protected override CompletionResponse Behaviour() { IMAP4Response response; string flagSetMode = GetFlagSetMode(this._mode); string command = string.Format("UID STORE {0} {1}FLAGS{2} ({3})", new object[] { this._sequence, flagSetMode, ".SILENT", JoinFlags(this._flags) }); uint commandId = base._dispatcher.SendCommand(command); do { response = base._dispatcher.GetResponse(commandId); }while (!CompletionResponse.IsCompletionResponse(response.Response)); return(new CompletionResponse(response.Response)); }
/// <summary> /// Deletes a mailbox. /// </summary> /// <param name="mailbox">The mailbox.</param> /// <param name="response">The response.</param> /// <returns>The response type.</returns> protected override CommandResponseType RemoveMailboxCommand(Mailbox mailbox, out string response) { try { CompletionResponse removeMailboxResponse = _client.DeleteMailbox(mailbox); response = removeMailboxResponse.Message; return(GetCommandResponseType(removeMailboxResponse.CompletionResult)); } catch (Exception ex) { response = ex.ToString(); return(CommandResponseType.Bad); } }
/// <summary> /// Renames a mailbox. /// </summary> /// <param name="oldMailbox">The old mailbox.</param> /// <param name="renamedMailbox">The renamed mailbox.</param> /// <param name="response">The response.</param> /// <returns>The response type.</returns> protected override CommandResponseType RenameMailboxCommand(Mailbox oldMailbox, Mailbox renamedMailbox, out string response) { try { CompletionResponse renameMailboxResponse = (renamedMailbox.IsSystem || renamedMailbox.IsReserved ? new CompletionResponse("0 OK SUCCESS") : _client.RenameMailbox(oldMailbox, renamedMailbox.DisplayName)); response = renameMailboxResponse.Message; return(GetCommandResponseType(renameMailboxResponse.CompletionResult)); } catch (Exception ex) { response = ex.ToString(); return(CommandResponseType.Bad); } }
/// <summary> /// Marks a message as unflagged. /// </summary> /// <param name="mailbox">The mailbox.</param> /// <param name="message">The message to mark as unflagged.</param> /// <param name="response">The response.</param> /// <returns>The response type.</returns> protected override CommandResponseType MarkAsUnflaggedCommand(Mailbox mailbox, StructuredMessage message, out string response) { try { CompletionResponse markAsUnflaggedResponse = _client.MarkAsUnflagged(new SequenceNumber(uint.Parse(message.Uid)), mailbox); response = markAsUnflaggedResponse.Message; return(GetCommandResponseType(markAsUnflaggedResponse.CompletionResult)); } catch (Exception ex) { response = ex.ToString(); return(CommandResponseType.Bad); } }
/// <summary> /// Logs out of the mail account. /// </summary> /// <param name="response">The response.</param> /// <returns>The response type.</returns> protected override CommandResponseType LogoutCommand(out string response) { try { CompletionResponse logoutResponse = _client.Logout(); response = logoutResponse.Message; return(GetCommandResponseType(logoutResponse.CompletionResult)); } catch (Exception ex) { response = ex.ToString(); return(CommandResponseType.Bad); } }
/// <summary> /// Saves a message to drafts folder. /// </summary> /// <param name="mailbox">The mailbox.</param> /// <param name="message">The message.</param> /// <param name="response">The response.</param> /// <param name="uid">The uid.</param> /// <returns>The response type.</returns> protected override CommandResponseType SaveToDraftsCommand(Mailbox mailbox, StructuredMessage message, out string response, out string uid) { try { CompletionResponse removeMailboxResponse = _client.Append(mailbox, message, out uid); response = removeMailboxResponse.Message; return(GetCommandResponseType(removeMailboxResponse.CompletionResult)); } catch (Exception ex) { response = ex.ToString(); uid = string.Empty; return(CommandResponseType.Bad); } }
protected override CompletionResponse Behaviour() { uint commandId = base._dispatcher.SendCommand("EXAMINE " + base.mailbox, this.filter); IMAP4Response response = base._dispatcher.GetResponse(commandId); while (!response.IsCompletionResponse()) { base.ProcessResponse(response); response = base._dispatcher.GetResponse(commandId); } if (!base._unseenRecieved) { throw new ExpectedResponseException("Expected * OK [UNSEEN]"); } if (!base._uidnextRecieved) { throw new ExpectedResponseException("Expected * OK [UIDNEXT <n>]"); } if (!base._uidvalidityRecieved) { throw new ExpectedResponseException("Expected * OK [UIDVALIDITY <n>]"); } if (!base._existsRecieved) { throw new ExpectedResponseException("Expected * <n> EXISTS"); } if (!base._recentRecieved) { throw new ExpectedResponseException("Expected * <n> RECENT"); } if (!base._flagsRecieved) { throw new ExpectedResponseException("Expected * FLAGS (list)"); } if (!base._permanentFlagsRecieved) { throw new ExpectedResponseException("Expected * OK [PERMANENTFLAGS (list)]"); } CompletionResponse response2 = new CompletionResponse(response.Response); base.ProcessCompletionResponse(response2); if (base._access == EIMAP4MailBoxAccessType.ReadWrite) { throw new UnexpectedResponseException("Unexpected response"); } return(response2); }
public static CompletionResponse GetCodeComplete(string filename, int col, int line, string data, YcmdProcesses p, out string commands) { //Create the request data to send. SimpleRequest req = new SimpleRequest(); req.column_num = col; req.line_num = line; req.filepath = filename; req.force_semantic = true; req.file_data = new Dictionary <string, FileData>(); req.file_data.Add(filename, GenerateFileData(data)); //Send this data to the server and get a reply. CompletionResponse reply = YcmdController.SendYcmdRequest <CompletionResponse>("/completions", req, YcmdProcess.GetServer(p)); commands = YcmdController.SendYcmdRequestRaw("/defined_subcommands", req, YcmdProcess.GetServer(p)); return(reply); }
protected override CompletionResponse Behaviour() { uint commandId = base._dispatcher.SendCommand("STARTTLS"); IMAP4Response response = base._dispatcher.GetResponse(commandId); if (!CompletionResponse.IsCompletionResponse(response.Response)) { throw new UnexpectedResponseException("Unexpected response"); } CompletionResponse response2 = new CompletionResponse(response.Response); if (response2.CompletionResult == ECompletionResponseType.NO) { throw new UnexpectedResponseException("Unexpected response"); } return(response2); }
/// <summary> /// Moves a list of messages from it's current mailbox to a specified mailbox. /// </summary> /// <param name="sourceMailbox">The source mailbox.</param> /// <param name="destinationMailbox">The destination mailbox.</param> /// <param name="messagePaths">The message paths to move.</param> /// <param name="response">The response.</param> /// <param name="newUids">The new uids.</param> /// <returns>The response type.</returns> protected override CommandResponseType MoveMessageCommand(Mailbox sourceMailbox, Mailbox destinationMailbox, Dictionary <string, string> messagePaths, out string response, out Dictionary <string, string> newUids) { newUids = new Dictionary <string, string>(); try { SequenceSet sequenceSet = new SequenceSet(messagePaths.Keys.Select(o => new SequenceNumber(uint.Parse(o)))); CompletionResponse moveMessageResponse = _client.Move(sequenceSet, sourceMailbox, destinationMailbox, out newUids); response = moveMessageResponse.Message; return(GetCommandResponseType(moveMessageResponse.CompletionResult)); } catch (Exception ex) { response = ex.ToString(); return(CommandResponseType.Bad); } }
/// <summary> /// Marks a message as deleted. /// </summary> /// <param name="sourceMailbox">The source mailbox.</param> /// <param name="destinationMailbox">The destination mailbox.</param> /// <param name="message">The message to mark as undelete.</param> /// <param name="response">The response.</param> /// <param name="newId">The new id.</param> /// <returns>The response type.</returns> protected override CommandResponseType MarkAsDeletedCommand(Mailbox sourceMailbox, Mailbox destinationMailbox, StructuredMessage message, out string response, out string newId) { newId = null; try { Dictionary <string, string> newIds; CompletionResponse markAsDeleteResponse = _client.MarkAsDeleted(new SequenceNumber(uint.Parse(message.Uid)), sourceMailbox, destinationMailbox, out newIds); response = markAsDeleteResponse.Message; newId = newIds.Values.DefaultIfEmpty().First(); return(GetCommandResponseType(markAsDeleteResponse.CompletionResult)); } catch (Exception ex) { response = ex.ToString(); newId = string.Empty; return(CommandResponseType.Bad); } }
/// <summary> /// Creates a new mailbox. /// </summary> /// <param name="mailbox">The mailbox.</param> /// <param name="response">The response.</param> /// <returns>The response type.</returns> protected override CommandResponseType AddMailboxCommand(Mailbox mailbox, out string response) { try { CompletionResponse addMailboxResponse = null; if (mailbox.Parent == null) { addMailboxResponse = _client.AddMailbox(mailbox.Name); } else { addMailboxResponse = _client.AddMailbox(mailbox.Name, mailbox.Parent); } response = addMailboxResponse.Message; return(GetCommandResponseType(addMailboxResponse.CompletionResult)); } catch (Exception ex) { response = ex.ToString(); return(CommandResponseType.Bad); } }
protected override CompletionResponse Behaviour() { CompletionResponse response2; this.capabilities = new List <string>(); uint commandId = base._dispatcher.SendCommand("CAPABILITY", this.filter); IMAP4Response response = base._dispatcher.GetResponse(commandId); if ((response.Name == "CAPABILITY") && (response.Type == EIMAP4ResponseType.Untagged)) { if (response.Data.IndexOf(' ') != -1) { string[] collection = response.Data.Substring(response.Name.Length + 1).Split(new char[] { ' ' }); this.capabilities = new List <string>(collection); } response = base._dispatcher.GetResponse(commandId); if (!CompletionResponse.IsCompletionResponse(response.Response)) { throw new UnexpectedResponseException("Unexpected response"); } response2 = new CompletionResponse(response.Response); if (response2.CompletionResult == ECompletionResponseType.NO) { throw new UnexpectedResponseException("Unexpected response"); } return(response2); } if (!CompletionResponse.IsCompletionResponse(response.Response)) { throw new UnexpectedResponseException("Unexpected response"); } response2 = new CompletionResponse(response.Response); if (response2.CompletionResult != ECompletionResponseType.BAD) { throw new UnexpectedResponseException("Unexpected response"); } return(response2); }
protected override CompletionResponse Behaviour() { uint commandId = base._dispatcher.SendCommand(this.command, this.filter); IMAP4Response response = base._dispatcher.GetResponse(commandId); if ((response.Name == "STATUS") && (response.Type == EIMAP4ResponseType.Untagged)) { int index = response.Data.IndexOf('('); int num3 = response.Data.IndexOf(')'); if ((index != -1) && (num3 != -1)) { string[] strArray = response.Data.Substring(index + 1, (num3 - index) - 1).Split(new char[] { ' ' }); if ((strArray.Length % 2) != 0) { throw new UnexpectedResponseException("Unexpected response"); } for (int i = 0; i < strArray.Length; i += 2) { string str2 = strArray[i]; if (str2 == "MESSAGES") { this.messages = int.Parse(strArray[i + 1]); } else if (str2 == "RECENT") { this.recent = int.Parse(strArray[i + 1]); } else if (str2 == "UIDNEXT") { this.uidnext = long.Parse(strArray[i + 1]); } else if (str2 == "UIDVALIDITY") { this.uidvalidity = long.Parse(strArray[i + 1]); } else { if (str2 != "UNSEEN") { throw new UnexpectedResponseException("Unexpected response"); } this.unseen = int.Parse(strArray[i + 1]); } } } } else { if (!CompletionResponse.IsCompletionResponse(response.Response)) { throw new UnexpectedResponseException("Unexpected response"); } return(new CompletionResponse(response.Response)); } response = base._dispatcher.GetResponse(commandId); if (!CompletionResponse.IsCompletionResponse(response.Response)) { throw new UnexpectedResponseException("Unexpected response"); } return(new CompletionResponse(response.Response)); }