/// <summary>
 /// The log invalid sample as error.
 /// </summary>
 /// <param name="apiModel">The api model.</param>
 /// <param name="sample">The sample.</param>
 private static void LogInvalidSampleAsError(HelpPageApiModel apiModel, object sample)
 {
     var invalidSample = sample as InvalidSample;
     if (invalidSample != null)
     {
         apiModel.ErrorMessages.Add(invalidSample.ErrorMessage);
     }
 }
        /// <summary>
        /// The generate api model.
        /// </summary>
        /// <param name="apiDescription">The api description.</param>
        /// <param name="sampleGenerator">The sample generator.</param>
        /// <returns>
        /// The <see cref="HelpPageApiModel" />.
        /// </returns>
        private static HelpPageApiModel GenerateApiModel(ApiDescription apiDescription, HelpPageSampleGenerator sampleGenerator)
        {
            var apiModel = new HelpPageApiModel { ApiDescription = apiDescription };

            try
            {
                foreach (var item in sampleGenerator.GetSampleRequests(apiDescription))
                {
                    apiModel.SampleRequests.Add(item.Key, item.Value);
                    LogInvalidSampleAsError(apiModel, item.Value);
                }

                foreach (var item in sampleGenerator.GetSampleResponses(apiDescription))
                {
                    apiModel.SampleResponses.Add(item.Key, item.Value);
                    LogInvalidSampleAsError(apiModel, item.Value);
                }
            }
            catch (Exception e)
            {
                apiModel.ErrorMessages.Add(
                    string.Format(
                        CultureInfo.CurrentCulture, 
                        "An exception has occurred while generating the sample. Exception Message: {0}", 
                        e.Message));
            }

            return apiModel;
        }