/// <summary>
        /// Serialises all properties. The output will be a dictionary containing the
        /// objects properties in a form that can easily be converted to Json.
        /// </summary>
        ///
        /// <returns>The serialised object in dictionary form.</returns>
        public IDictionary <string, object> Serialise()
        {
            var dictionary = new Dictionary <string, object>();

            // State Data
            if (StateData != null)
            {
                dictionary.Add("StateData", StateData.Serialise());
            }

            // Completed
            if (Completed != null)
            {
                dictionary.Add("Completed", Completed);
            }

            // Outcome Data
            if (OutcomeData != null)
            {
                dictionary.Add("OutcomeData", OutcomeData.Serialise());
            }

            // Outcome Attachment
            if (OutcomeAttachment != null)
            {
                dictionary.Add("OutcomeAttachment", OutcomeAttachment);
            }

            return(dictionary);
        }
Exemple #2
0
        public DeclarationTestItem CreateDeclarationTestItem(IDictionary <string, string> dataList, Guid id, List <DeclarationIndicatorGroup> indicatorList)
        {
            var declarationTestItem = new DeclarationTestItem
            {
                Id = id,
                SupplierAndVersionId    = GetAnswerFromInt(dataList, "answer_int_supplierandversion"),
                SupplierAndVersionOther = GetAnswerFromString(dataList, "answer_string_testitem_supplierandversionother"),
                DescriptionInText       = GetAnswerFromString(dataList, "answer_string_testitem_descriptionintext"),
                Image1Id = GetAnswerFromImage(dataList, "answer_image_testitem_image1"),
                Image2Id = GetAnswerFromImage(dataList, "answer_image_testitem_image2")
            };

            var outcomeDataList = new List <OutcomeData>();

            foreach (var declarationTestGroup in indicatorList.OrderBy(x => x.TestGroupOrder).ThenBy(x => x.IndicatorInTestGroupOrder))
            {
                var indicator = declarationTestGroup.IndicatorItem;

                var outcomeData = new OutcomeData
                {
                    Id = Guid.NewGuid(),
                    IndicatorItemId       = indicator.Id,
                    RuleDataList          = new List <RuleData>(),
                    DeclarationTestItemId = id
                };

                foreach (var ruleItem in indicator.RuleList.OrderBy(x => x.Order))
                {
                    outcomeData.RuleDataList.Add(new RuleData
                    {
                        Id             = Guid.NewGuid(),
                        RuleItemId     = ruleItem.Id,
                        AnswerDataList = ruleItem.AnswerList.OrderBy(x => x.Order).Select(x => new AnswerData
                        {
                            Id             = Guid.NewGuid(),
                            AnswerItemId   = x.Id,
                            TypeOfAnswerId = x.TypeOfAnswerId,
                            String         = GetAnswerFromString(dataList, $"answer_string_{indicator.Id}_{ruleItem.Id}_{x.Id}"),
                            Bool           = GetAnswerFromBool(dataList, $"answer_bool_{indicator.Id}_{ruleItem.Id}_{x.Id}"),
                            Int            = GetAnswerFromInt(dataList, $"answer_int_{indicator.Id}_{ruleItem.Id}_{x.Id}"),
                            ImageId        = GetAnswerFromImage(dataList, $"answer_image_{indicator.Id}_{ruleItem.Id}_{x.Id}")
                        }).ToList()
                    });
                }

                outcomeDataList.Add(outcomeData);
            }

            declarationTestItem.OutcomeDataList = outcomeDataList;

            return(declarationTestItem);
        }
        /// <summary>
        /// Serialises all body properties. The output will be a dictionary containing the
        /// body of the request in a form that can easily be converted to Json. Will return
        /// an empty dictionary if there is no body.
        /// </summary>
        ///
        /// <returns>The body Json in dictionary form.</returns>
        public IDictionary <string, object> SerialiseBody()
        {
            var dictionary = new Dictionary <string, object>();

            // Match Id
            dictionary.Add("MatchID", MatchId);

            // State Data
            if (StateData != null)
            {
                dictionary.Add("StateData", StateData.Serialise());
            }

            // Turn Data
            if (TurnData != null)
            {
                dictionary.Add("TurnData", TurnData.Serialise());
            }

            // Write Lock
            if (WriteLock != null)
            {
                dictionary.Add("WriteLock", WriteLock);
            }

            // Completed
            if (Completed != null)
            {
                dictionary.Add("Completed", Completed);
            }

            // Outcome Data
            if (OutcomeData != null)
            {
                dictionary.Add("OutcomeData", OutcomeData.Serialise());
            }

            // Outcome Attachment
            if (OutcomeAttachment != null)
            {
                dictionary.Add("OutcomeAttachment", OutcomeAttachment);
            }

            return(dictionary);
        }
Exemple #4
0
        /// <summary>
        /// Serialises all properties. The output will be a dictionary containing the
        /// objects properties in a form that can easily be converted to Json.
        /// </summary>
        ///
        /// <returns>The serialised object in dictionary form.</returns>
        public IDictionary <string, object> Serialise()
        {
            var dictionary = new Dictionary <string, object>();

            // Match Id
            dictionary.Add("MatchID", MatchId);

            // Match Type Key
            dictionary.Add("MatchTypeKey", MatchTypeKey);

            // State
            dictionary.Add("State", State);

            // Write Lock
            dictionary.Add("WriteLock", WriteLock);

            // Properties
            if (Properties != null)
            {
                var serialisedProperties = JsonSerialisation.Serialise(Properties, (MultiTypeValue element) =>
                {
                    return(element.Serialise());
                });
                dictionary.Add("Properties", serialisedProperties);
            }

            // State Data
            if (StateData != null)
            {
                dictionary.Add("StateData", StateData.Serialise());
            }

            // Outcome Data
            if (OutcomeData != null)
            {
                dictionary.Add("OutcomeData", OutcomeData.Serialise());
            }

            // Turn Timeout
            if (TurnTimeout != null)
            {
                dictionary.Add("TurnTimeout", TurnTimeout.Serialise());
            }

            // Waiting Timeout
            if (WaitingTimeout != null)
            {
                dictionary.Add("WaitingTimeout", WaitingTimeout.Serialise());
            }

            // Turn Type
            dictionary.Add("TurnType", TurnType);

            // Turn Order Type
            if (TurnOrderType != null)
            {
                dictionary.Add("TurnOrderType", TurnOrderType);
            }

            // Player Limit
            if (PlayerLimit != null)
            {
                dictionary.Add("PlayerLimit", PlayerLimit);
            }

            // Players
            if (Players != null)
            {
                var serialisedPlayers = JsonSerialisation.Serialise(Players, (Player element) =>
                {
                    return(element.Serialise());
                });
                dictionary.Add("Players", serialisedPlayers);
            }

            // Auto Start
            dictionary.Add("AutoStart", AutoStart);

            // Is Private
            dictionary.Add("IsPrivate", IsPrivate);

            // Turn Number
            if (TurnNumber != null)
            {
                dictionary.Add("TurnNumber", TurnNumber);
            }

            // Last Turn
            if (LastTurn != null)
            {
                dictionary.Add("LastTurn", LastTurn.Serialise());
            }

            // Current Turn
            if (CurrentTurn != null)
            {
                dictionary.Add("CurrentTurn", CurrentTurn.Serialise());
            }

            // Created By
            if (CreatedBy != null)
            {
                dictionary.Add("CreatedBy", CreatedBy.Serialise());
            }

            // Date Created
            dictionary.Add("DateCreated", JsonSerialisation.Serialise(DateCreated));

            return(dictionary);
        }