Exemple #1
0
        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;
        }
Exemple #2
0
        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;
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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;
        }