private void BuildModels(XmlWriter writer, string key, string value, Profile[] profiles, string title)
        {
            // Get the number of pages needed to display the models for the vendor.
            var pages = profiles.Length / DevicesLimit;
            if (profiles.Length % DevicesLimit != 0)
                pages++;

            if (pages > 1)
            {
                BuildModelsPager(writer, key, value, pages, PageIndex, title, "top");
            }

            writer.WriteStartElement("div");
            writer.WriteAttributeString("class", DevicesCssClass);
            writer.WriteStartElement("ul");

            // Display the profiles that relate to the selected page.
            foreach (var profile in profiles.Skip(PageIndex * DevicesLimit).Take(DevicesLimit))
            {
                BuildModelSummary(writer, key, value, profile);
            }

            writer.WriteEndElement();
            writer.WriteEndElement();

            if (pages > 1)
            {
                BuildModelsPager(writer, key, value, pages, PageIndex, title,"bottom");
            }
        }