private Response GetResponses(string cmd) { var result = new Response(); string readLine; try { var sb = new StringBuilder(); _transport.SendCommand(cmd); readLine = _transport.ReadLine().FirstOrDefault(); result.Trace = readLine; result.Successed = _transport.IsValidResponse(result.Trace); if (result.Successed) { sb.Length = 0; // サーバーからのデータ本体を取得(ドットだけの行がくるまでね) foreach (var line in _transport.ReadLine()) { if (line == ".") break; if (sb.Length > 0) sb.Append("\r\n"); // 行の先頭がピリオド2文字ならひとつ消す。 sb.Append(line.StartsWith("..") ? line.Substring(1) : line); } } result.Body = sb.ToString(); } catch (Exception err) { result.Successed = false; result.Trace = "Error in GetResponses(): " + err; } return result; }
public Response GetMessageItems() { var response = new Response(); var uidl = CommandUidl(); var list = CommandList(); if (!uidl.Successed || !list.Successed) return response; if (uidl.Items.Count != list.Items.Count) return response; for (var i = 0; i < uidl.Items.Count; i++) { var item = new MessageItem { No = uidl.Items[i].No, Text = uidl.Items[i].Text, Value = int.Parse(list.Items[i].Text) }; response.Items.Add(item); } response.Trace = "+OK"; response.Successed = true; return response; }
private Response GetResponse(string cmd) { var result = new Response(); try { _transport.SendCommand(cmd); result.Trace = _transport.ReadLine().FirstOrDefault(); result.Successed = _transport.IsValidResponse(result.Trace); } catch (Exception err) { result.Successed = false; result.Trace = "Error in GetResponse: " + err; } return (result); }
public Response Connect(string server, int port, bool isSecure) { var response = new Response(); try { // initialization _transport.Connect(server, port, isSecure); response.Successed = true; response.Trace = _transport.ReadLine().FirstOrDefault(); // Apop? var match = Regex.Match(response.Trace, "<.+>"); if (match.Success) _apopCharenge = match.Value; } catch (Exception err) { response.Trace = "Error: " + err; } return response; }