コード例 #1
0
        /// <summary>
        /// Process the serialize command.
        /// </summary>
        /// <returns>Serialized output to string.</returns>
        public string Execute()
        {
            Result result = new Result();

            foreach (Drug drug in input.Drugs)
            {
                DrugOutput drugOutput = new DrugOutput();
                drugOutput.Name          = drug.Name;
                drugOutput.SuggestedDose = SuggestedDoseService.GetSuggestedDoses(drug);
                result.Drugs.Add(drugOutput);
            }
            return(Process(result));
        }
コード例 #2
0
        /// <summary>
        /// Process the model to validate and serialize as json.
        /// I don't like how it looks and I would rather implement it via a custom serializer, instead of series of linq statements.
        /// </summary>
        /// <param name="result">The output data model.</param>
        public string Process(Result result)
        {
            IList <DrugOutput> drugs      = result.Drugs;
            JArray             drugsArray = new JArray(
                drugs.Select(d => new JObject
            {
                { "name", d.Name },
                { "suggestedDose", new JArray(d.SuggestedDose.Select(sd => new JObject
                    {
                        { "indications", new JArray(sd.Indications) },
                        { "doseAdministrations", new JArray(sd.DoseAdministrations.Select(da => new JObject
                            {
                                { "route", da.Route },
                                { "method", da.Method },
                                { "doses", new JArray(da.Doses.Select(o => new JObject
                                    {
                                        { "ageBand", new JObject {
                                              { "ageLow", new JObject {
                                       { "value", o.AgeBand.AgeLow.Value }, { "unit", SuggestedDoseService.GetEnumMemberValue(o.AgeBand.AgeLow.Unit) }
                                   } },
                                              { "ageHigh", new JObject {
                                       { "value", o.AgeBand.AgeHigh.Value }, { "unit", SuggestedDoseService.GetEnumMemberValue(o.AgeBand.AgeHigh.Unit) }
                                   } }
                                          } },
                                        { "quantity", new JObject {
                                              { "value", o.Quantity.Value },
                                              { "unit", SuggestedDoseService.GetEnumMemberValue(o.Quantity.Unit) }
                                          } },
                                        { "flags", new JObject {
                                              { "frequency", o.Flags.Frequency }
                                          } },
                                    })) }
                            })) }
                    })) }
            })
                );
            JObject results = new JObject(new JProperty("drugs", drugsArray));

            return(results.ToString());
        }