private static WebPartDefinition AddWebPart(File webPartPage, WebPartEntity webPart, string zoneId, int zoneIndex)
        {
            var limitedWebPartManager = webPartPage.GetLimitedWebPartManager(PersonalizationScope.Shared);
            var oWebPartDefinition = limitedWebPartManager.ImportWebPart(webPart.WebPartXml);

            var wpdNew = limitedWebPartManager.AddWebPart(oWebPartDefinition.WebPart, zoneId, zoneIndex);
            webPartPage.Context.Load(wpdNew);
            webPartPage.Context.ExecuteQueryRetry();

            WebPartPostProcessorFactory.Resolve(webPart.WebPartXml).Process(wpdNew, webPartPage);

            return wpdNew;
        }