If you want to return large data from WCf service , simple add this to the web.config file:
By default this value is 65536 that means only this much data will be serialized . Once the size is changed , you can return more data.
Have a good day !
private void Radio_Click(object sender, RoutedEventArgs e)
{
RadioButton rb = (RadioButton)sender;
if (rb.IsChecked == true)
{
radioText = rb.Content.ToString();
}
if (radioText != "" && division != "" && domain != "")
{
ExportServiceClient client = new ExportServiceClient();
client.GetReportCompleted += new EventHandler(client_GetReportCompleted);
client.GetReportAsync(radioText, division, domain);
}
}
void client_GetReportCompleted(object sender, GetReportCompletedEventArgs e)
{
if (e.Error != null)
{
MessageBox.Show(e.Error.ToString());
}
else
{
dgReport.ItemsSource = e.Result;
}
}
" Style="{StaticResource ButtonStyle1}" Margin="10,30,10,10" Click="btnExcel_Click">
"
private void btnExcel_Click(object sender, RoutedEventArgs e)
{
if (radioText != "" && division != "" && domain != "")
{
StringBuilder test = new StringBuilder();
string data = String.Empty;
SaveFileDialog sfd = new SaveFileDialog();
sfd.DefaultExt = "xml";
sfd.Filter = "XML Files | *.xml";
bool? resp = sfd.ShowDialog();
if (resp == true)
{
using (Stream fs = (Stream)sfd.OpenFile())
{
//get the data from the grid so we can format it into xml
IEnumerablerecs = dgReport.ItemsSource as IEnumerable ;
//determine what type of xml to create based on the tag property of the button that fired the event
Button btn = sender as Button;
if (btn.Tag.Equals("OfficeXML"))
data = CreateOfficeXML(recs);
else
data = CreateXML(recs);
//write it out
byte[] info = new System.Text.UTF8Encoding(true).GetBytes(data);
fs.Write(info, 0, info.Length);
fs.Close();
}
}
}
else
{
MessageBox.Show("Please select an item to generate report.");
}
}
private string CreateXML(IEnumerablerecords)
{
var ed = new XElement("ExportDatas",
from record in records
select
new XElement("ShipRecord",
new XElement("ServerName", record.ServerName),
new XElement("ItemValue", record.ItemValue),
new XElement("ItemStandard", record.ItemStandard),
new XElement("IsCompliant", record.IsCompliant)));
return ed.ToString();
}
private string CreateOfficeXML(IEnumerablerecords)
{
int count = records.Count() + 1;
StringBuilder sb = new StringBuilder();
foreach (var rec in records)
{
sb.AppendLine("");
");
sb.AppendFormat("{0} | ", rec.ServerName);
sb.AppendFormat("{0} | ", rec.ItemValue);
sb.AppendFormat("{0} | ", rec.ItemStandard);
sb.AppendFormat("{0} | ", rec.IsCompliant);
sb.AppendLine("
}
StreamResourceInfo sri = Application.GetResourceStream(new Uri("Template.xml", UriKind.Relative));
var sr = new StreamReader(sri.Stream);
string data = sr.ReadToEnd();
data = data.Replace("[ROWCOUNT]", count.ToString());
data = data.Replace("[ROWDATA]", sb.ToString());
sr.Close();
return data;
}