Esempio n. 1
0
        private Message ExecuteRequest(Message request)
        {
            if (request.Type == GET_FILE_COMMAND)
            {
                if (!request.HasProperty(FILE_NAME_PROPERTY))
                {
                    throw new InvalidMessageFormatException(string.Format(
                                                                "Сообщение не содержит свойство <{0}>", FILE_NAME_PROPERTY));
                }
                var filename = request.Properties[FILE_NAME_PROPERTY].ToString();
                var filepath = Path.Combine(_directory, filename);
                var data     = System.IO.File.ReadAllBytes(filepath);

                var reply = _messageFactory.CreateReplyMessage(request, "File");
                reply.Body = data;
                return(reply);
            }
            if (request.Type == PUT_FILE_COMMAND)
            {
                if (!request.HasProperty(FILE_NAME_PROPERTY))
                {
                    throw new InvalidMessageFormatException(string.Format(
                                                                "Сообщение не содержит свойство <{0}>", FILE_NAME_PROPERTY));
                }
                var filename = request.Properties[FILE_NAME_PROPERTY].ToString();
                var filepath = Path.Combine(_directory, filename);
                var data     = request.Body;
                if (data == null)
                {
                    data = new byte[0];
                }
                System.IO.File.WriteAllBytes(filepath, data);

                return(_messageFactory.CreateReplyMessage(request, "Success"));
            }
            if (request.Type == LIST_FILES_COMMAND)
            {
                var files = Directory.GetFiles(_directory);
                var data  = string.Join("\n", files);

                var reply = _messageFactory.CreateReplyMessage(request, "FileList");
                reply.Body = Encoding.UTF8.GetBytes(data);
                return(reply);
            }
            throw new InvalidMessageTypeException(request.Type);
        }