private void event_ip() { strName = util.globals.local_name; ip = util.globals.popup_rep; util.globals.popup_rep = null; try { //Using UDP sockets clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); //IP address of the server machine IPAddress ipAddress = IPAddress.Parse(ip); //Server is listening on port 1000 IPEndPoint ipEndPoint = new IPEndPoint(ipAddress, 1000); epServer = (EndPoint)ipEndPoint; Client.Data msgToSend = new Client.Data (); msgToSend.cmdCommand = Client.Command.Login; msgToSend.strMessage = null; msgToSend.strName = strName; byte[] byteData = msgToSend.ToByte(); //Login to the server clientSocket.BeginSendTo(byteData, 0, byteData.Length, SocketFlags.None, epServer, new AsyncCallback(OnSend), null); } catch (Exception ex) { MessageBox.Show(ex.Message, "SGSclient", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public byte[] exportReportToStream(string reportPath, Client.Data datafile) { using (var reportClientDocument = new ReportDocument()) { //reportClientDocument.ReportAppServer = "inproc:jrc"; reportClientDocument.Load(reportPath); foreach (var table in datafile.DataTables) { DataTable dt = CreateTableEtl(table.Value); try { int idx = 0; bool converted = int.TryParse(table.Key, out idx); if (converted) { SetDataSource(idx, dt, reportClientDocument); } else { SetDataSource(table.Key, dt, reportClientDocument); } } catch (Exception) { // some report data sources are optional // TODO: logging } } foreach (var table in datafile.SubReportDataTables) { // fixme: sub report with multiple datatables? DataTable dt = CreateTableEtl(table.DataTable); try { int idx = 0; bool converted = int.TryParse(table.TableName, out idx); if (converted) { SetSubReport(table.ReportName, idx, dt, reportClientDocument); } else { SetSubReport(table.ReportName, table.TableName, dt, reportClientDocument); } } catch (Exception) { // some sub reports are optional // TODO: logging } } foreach (var param in datafile.Parameters) { SetParameterValue(param.Key, param.Value, reportClientDocument); } foreach (ParameterField x in reportClientDocument.ParameterFields) { if (x.HasCurrentValue == false && x.ReportParameterType == ParameterType.ReportParameter) { // to get things up and running, add defaults for missing parameters SetParameterValue(x.Name, "", reportClientDocument); } } foreach (var x in datafile.MoveObjectPosition) { try { MoveReportObject(x, reportClientDocument); } catch (System.IndexOutOfRangeException) { // TODO: Add logging about bad move objects } } return(ExportPDF(reportClientDocument)); } }
public async Task <HttpResponseMessage> Post() { if (!Request.Content.IsMimeMultipartContent()) { throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); } if (AuthFailed()) { var authproblem = new HttpResponseMessage(HttpStatusCode.Unauthorized); return(authproblem); } var provider = new MultipartMemoryStreamProvider(); await Request.Content.ReadAsMultipartAsync(provider); Client.Data reportData = null; byte[] reportTemplate = null; foreach (var file in provider.Contents) { string name = file.Headers.ContentDisposition.Name; if (string.Equals(name, "reportdata", StringComparison.CurrentCultureIgnoreCase)) { var buffer = await file.ReadAsByteArrayAsync(); reportData = Newtonsoft.Json.JsonConvert.DeserializeObject <Client.Data>(await file.ReadAsStringAsync()); } else { reportTemplate = await file.ReadAsByteArrayAsync(); } } string reportPath = null; byte[] bytes = null; try { reportPath = System.IO.Path.GetTempFileName() + ".rpt"; // System.IO.File.WriteAllBytes(reportPath, reportTemplate); // Using System.IO.File.WriteAllBytes randomly causes problems where the system still // has the file open when crystal attempts to load it and crystal fails. using (var fstream = new FileStream(reportPath, FileMode.Create)) { fstream.Write(reportTemplate, 0, reportTemplate.Length); fstream.Flush(); fstream.Close(); } var exporter = new PdfExporter(); bytes = exporter.exportReportToStream(reportPath, reportData); } catch (Exception ex) { var message = new HttpResponseMessage(HttpStatusCode.InternalServerError) { Content = new StringContent(ex.Message + System.Environment.NewLine + ex.StackTrace) }; return(message); } finally { try { System.IO.File.Delete(reportPath); } catch (Exception) { // TODO: cleanup will happen later } } var result = new HttpResponseMessage(HttpStatusCode.OK) { Content = new ByteArrayContent(bytes) }; result.Content.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment") { FileName = "report.pdf" }; result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream"); return(result); }