SPFile categoryPageFile = web.GetFile("Pages/" + scheduleName + ".aspx");
if (categoryPageFile.Exists)
{
categoryPageFile.CheckOut();
using (SPLimitedWebPartManager webPartManager = categoryPageFile.GetLimitedWebPartManager(PersonalizationScope.Shared))
{
ContentByQueryWebPart contentByQueryWebPart = new ContentByQueryWebPart();
contentByQueryWebPart.Title = "Related Schedules";
contentByQueryWebPart.WebUrl = web.Url;
contentByQueryWebPart.BaseType = string.Empty;
contentByQueryWebPart.ServerTemplate = Convert.ToString((int)scheduleListTemplate.Type, CultureInfo.InvariantCulture);
contentByQueryWebPart.CommonViewFields = "Air_x0020_Date,AirDate;Episode_x0020_Number,Episode;Season_x0020_Number,Season";
contentByQueryWebPart.ItemStyle = itemStyle;
//filter by schedule
contentByQueryWebPart.FilterField1 = web.Lists[listName].Fields["Title"].Id.ToString("B");
contentByQueryWebPart.Filter1ChainingOperator = ContentByQueryWebPart.FilterChainingOperator.Or;
contentByQueryWebPart.FilterOperator1 = ContentByQueryWebPart.FilterFieldQueryOperator.Contains;
contentByQueryWebPart.Filter2ChainingOperator = ContentByQueryWebPart.FilterChainingOperator.And;
contentByQueryWebPart.FilterValue1 = scheduleTttle;
contentByQueryWebPart.FilterType1 = "Text";
contentByQueryWebPart.ShowUntargetedItems = false;
webPartManager.AddWebPart(contentByQueryWebPart, "Right", 0);
}
categoryPageFile.CheckIn("Added Page");
categoryPageFile.Publish("Published");
}