Korero – Rev 1

Subversion Repositories:
Rev:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using Korero.Serialization;

namespace Korero.Communication
{
    public class Command
    {
        #region Public Enums, Properties and Fields

        public Guid Id => _id;

        public string Payload
        {
            get
            {
                var data = _data.ToDictionary(
                    kvp => WebUtility.UrlEncode(kvp.Key),
                    kvp => WebUtility.UrlEncode(kvp.Value));

                return KeyValue.Encode(data);
            }
        }

        #endregion

        #region Private Delegates, Events, Enums, Properties, Indexers and Fields

        private readonly Dictionary<string, string> _data;

        private readonly Guid _id;

        #endregion

        #region Constructors, Destructors and Finalizers

        private Command()
        {
            _data = new Dictionary<string, string>();
            _id = Guid.NewGuid();
        }

        public Command(Dictionary<string, string> data) : this()
        {
            foreach (var kvp in data)
            {
                _data.Add(kvp.Key, kvp.Value);
            }

            _data.Add("_id", _id.ToString());
        }

        #endregion
    }
}

Generated by GNU Enscript 1.6.5.90.