/// <summary>
        /// For FM Messages
        /// </summary>
        /// <param name="unitNumber"></param>
        /// <param name="type"></param>
        /// <param name="vendorName"></param>
        /// <param name="cardNumber"></param>
        /// <param name="accountNumber"></param>
        /// <param name="locator"></param>
        /// <param name="targetFields"></param>
        /// <param name="fmType"></param>
        public SymConnectRequestMessage(int unitNumber, SymConnectMessageType type, string vendorName, string cardNumber,
                                        string accountNumber, IEnumerable <SymConnectRequestMessage.RecordDesignation> locator,
                                        Dictionary <string, string> targetFields, SymConnectFMType fmType)
            : this(unitNumber, type, vendorName, accountNumber, cardNumber)
        {
            if (type != SymConnectMessageType.FM)
            {
                throw new System.InvalidOperationException("Invalid constructor for a symconnect message of type FM");
            }
            SourceLocators = locator;
            //TargetLocators = locator;
            TargetFields = targetFields;
            FmType       = fmType;

            ValidateSymConnectContent();
        }
Esempio n. 2
0
        /// <summary>
        /// Creates or revises a symconnect record from our object
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="obj"></param>
        /// <param name="fmType"></param>
        /// <returns></returns>
        public Func <SymConnectMessage.SymConnectRequestMessage.RecordDesignation, string> ConvertToSymConnectPost <T>(T obj, SymConnectFMType fmType)
        {
            var symObj = ValidateSymConnectSerializable(obj);

            //get all the changed fields via our model
            var nodes   = GetAllSymConnectProperties(obj);
            var changes = nodes.ToDictionary((kvp) => kvp.Key._propertyName ?? kvp.Value.Name, (kvp2) => kvp2.Value.GetValue(obj, null).ToString());

            return((designation) =>
            {
                return new SymConnectRequestMessage(_unitNumber, SymConnectMessageType.FM, _vendorName,
                                                    designation.Locator, _cardNumber,
                                                    new List <SymConnectRequestMessage.RecordDesignation>()
                {
                    designation
                }, changes, fmType).ToString();
            });
        }