private void Render(ReportExecutionService rs, string extension, ReportRenderArg args)
        {
            byte[] result       = null;
            string ext          = null;
            string executionID  = null;
            var    checkIsEmpty = args.EmptyOutput != null && !string.IsNullOrWhiteSpace(args.MainDataSet);

            try
            {
                Logger.Log(LevelEnum.Info, $"Rendering report {args.ItemPath} for {extension} format...");
                result = rs.Render(GetFormat(extension), null, out ext, out string encoding, out string mimeType, out Warning[] warnings, out string[] streamId);
        public void Render(ReportRenderArg args, string serverUrl)
        {
            var svcParameters = args.Parameters
                                .Select(p => ToSsrsParameter(p))
                                .ToArray();

            using (var rs = GetService(serverUrl, args.TimeoutInMinute))
            {
                Logger.Log(LevelEnum.Info, $"Loading report <{args.ItemPath}>");
                var execInfo = rs.LoadReport(args.ItemPath, null);
                Logger.Log(LevelEnum.Info, $"Setting report parameters");
                rs.SetExecutionParameters(svcParameters, "en-us");
                Logger.Log(LevelEnum.Info, $"SessionId: {rs.ExecutionHeaderValue.ExecutionID}");
                GetExtensions(args.RenderFormat).ForEach(a => Render(rs, a, args));
            }
        }