public FilePathResult GetSavedChecksDownload(string site, string fileName) { site = Encoder.HtmlEncode(site); fileName = Encoder.HtmlEncode(fileName); if (!fileName.EndsWith(".xlsm")) { _nlogger.LogError("GetSavedChecksDownload - invalid file: " + fileName); return(null); } var dto = DbUtils.GetSiteCodeForSiteId(int.Parse(site)); if (!dto.IsSuccessful) { _nlogger.LogError("GetSavedChecksDownload failed: " + fileName); return(null); } var folderPath = ConfigurationManager.AppSettings["ChecksUploadPath"].ToString(); var path = Path.Combine(folderPath, dto.Bag.ToString()); var fullpath = Path.Combine(path, fileName); _nlogger.LogInfo("GetSavedChecksDownload: " + fileName); return(this.File(fullpath, "application/vnd.ms-excel.sheet.macroEnabled.12", fileName.Replace("copy", ""))); }
/// <summary> /// 添加任务调度(指定IJob实现类) /// </summary> /// <typeparam name="T"></typeparam> /// <param name="QuartzOptions"></param> /// <returns></returns> public static async Task <QuartzResult> AddJob <T>(this ISchedulerFactory schedulerFactory, QuartzOption QuartzOptions) where T : IJob { if (QuartzOptions is null) { throw new ArgumentNullException(nameof(QuartzOptions)); } if (scheduler == null) { scheduler = schedulerFactory?.GetScheduler().Result; } try { //检查任务是否已存在 if (await scheduler.CheckExists(new JobKey(QuartzOptions.TaskName, QuartzOptions.GroupName))) { return(QuartzResult.Error($"任务 {QuartzOptions.TaskName},任务组 {QuartzOptions.GroupName} 已存在")); } // 定义这个工作,并将其绑定到我们的IJob实现类 IJobDetail jobDetail = CreateJobDetail <T>(QuartzOptions);//JobBuilder.CreateForAsync<T>().WithIdentity(Option.TaskName, Option.GroupName).Build(); // 创建触发器 ITrigger trigger; if (QuartzOptions.IntervalType == IntervalType.Cron) { if (!CronExpression.IsValidExpression(QuartzOptions.Interval)) { return(QuartzResult.Error($"请确认表达式{QuartzOptions.Interval}是否正确!")); } trigger = QuartzOptions.CreateCronTrigger(); } else { trigger = CreateSimpleTrigger(QuartzOptions); } // 设置监听器 //JobListener listener = new JobListener(); //// IMatcher<JobKey> matcher = KeyMatcher<JobKey>.KeyEquals(job.Key); //scheduler.ListenerManager.AddJobListener(listener, GroupMatcher<JobKey>.AnyGroup()); await scheduler.ScheduleJob(jobDetail, trigger); if (QuartzOptions.TaskStatus == TriggerState.Normal) { await scheduler.Start(); } else { await schedulerFactory.Pause(QuartzOptions); } logger.LogDebug($"作业:{QuartzOptions.TaskName},目标:{QuartzOptions.TaskTarget},分组:{QuartzOptions.GroupName},状态为:{QuartzOptions.TaskStatus}"); return(QuartzResult.Ok("添加成功")); } catch (Exception ex) { logger.LogError($"添加任务出错--{ex.StackTrace}"); return(QuartzResult.Error($"添加任务出错--{ex.StackTrace}")); } }
public static bool AddSenorData(string studyId, SSInsertionData ssInsert) { //A lookup is used in the strored procedure to store the study id (int) in the database var strConn = ConfigurationManager.ConnectionStrings["Halfpint"].ToString(); using (var conn = new SqlConnection(strConn)) { try { var cmd = new SqlCommand("", conn) { CommandType = System.Data.CommandType.StoredProcedure, CommandText = ("AddSensorData") }; var param = new SqlParameter("@studyID", studyId); cmd.Parameters.Add(param); param = new SqlParameter("@Sensor_Monitor_Date", ssInsert.MonitorDate); cmd.Parameters.Add(param); param = new SqlParameter("@Sensor_Monitor_Time", ssInsert.MonitorTime); cmd.Parameters.Add(param); param = new SqlParameter("@Sensor_Monitor_ID", ssInsert.MonitorId); cmd.Parameters.Add(param); param = new SqlParameter("@Sensor_Transmitter_ID", ssInsert.TransmitterId); cmd.Parameters.Add(param); param = new SqlParameter("@Sensor_Lot", ssInsert.SensorLot); cmd.Parameters.Add(param); param = new SqlParameter("@Sensor_Inserter_First_Name", ssInsert.InserterFirstName); cmd.Parameters.Add(param); param = new SqlParameter("@Sensor_Inserter_Last_Name", ssInsert.InserterLastName); cmd.Parameters.Add(param); param = new SqlParameter("@Sensor_Location", ssInsert.SensorLocation); cmd.Parameters.Add(param); param = new SqlParameter("@P_SensorType", ssInsert.SensorType); cmd.Parameters.Add(param); param = new SqlParameter("@Sensor_Expire_Date", ssInsert.ExpirationDate); cmd.Parameters.Add(param); param = new SqlParameter("@Sensor_Reason", 1); cmd.Parameters.Add(param); param = new SqlParameter("@Sensor_Date_Created", DateTime.Now); cmd.Parameters.Add(param); param = new SqlParameter("@Sensor_Row", "1"); cmd.Parameters.Add(param); conn.Open(); cmd.ExecuteNonQuery(); } catch (Exception ex) { Nlogger.LogError(ex); return(false); } } return(true); }
// Retrieve Revit family types in Active document public IList <Element> GetRevitFamilyTypesInActiveDocument(RevitFamily famType) { NLogger.LogText("Entered GetRevitFamiliesInActiveDocument"); IList <Element> genModElements = null; try { Type RevitFamType = Type.GetType(famType.Type); var genModelTypeCollector = new FilteredElementCollector(doc); genModelTypeCollector.OfClass(RevitFamType); if (!string.IsNullOrEmpty(famType.Category)) { BuiltInCategory RevitFamilyCategory = (BuiltInCategory)Enum.Parse(typeof(BuiltInCategory), famType.Category, true); genModelTypeCollector.OfCategory(RevitFamilyCategory); } genModElements = genModelTypeCollector.ToElements(); } catch (Exception ex) { NLogger.LogError(ex); NLogger.LogText("Exit GetRevitFamiliesInActiveDocument with error"); throw (ex); } NLogger.LogText($"Extracted {genModElements.Count()} Families from Revit document"); NLogger.LogText("Exit GetRevitFamiliesInActiveDocument"); return(genModElements); }
static void Main() { try { //生成实体 Sugar sqlSugar = new Sugar(); sqlSugar.setCon(AppConfSetting.ConnectionString); sqlSugar.sugarClient.Open(); sqlSugar.sugarClient.DbFirst .IsCreateDefaultValue().IsCreateAttribute().CreateClassFile("D:\\Models", "Ris.Dal.Entitys"); sqlSugar.sugarClient.Close(); //设置应用程序处理异常方式:ThreadException处理 Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException); //处理UI线程异常 Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException); //处理非UI线程异常 AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException); #region 应用程序的主入口点 Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); //Application.Run(new DeptSettingForm()); Application.Run(new LoginForm()); #endregion } catch (Exception ex) { string str = GetExceptionMsg(ex, string.Empty); MessageBox.Show(str, "系统错误", MessageBoxButtons.OK, MessageBoxIcon.Error); NLogger.LogError(str, ex); Application.Exit(); } }
public HttpResponseMessage Properties(JObject obj) { Opts.AppName = "Metadata"; Opts.MethodName = "Properties"; Opts.FileName = Convert.ToString(obj["FileName"]); Opts.FolderName = Convert.ToString(obj["id"]); try { var workbook = new Workbook(Opts.WorkingFileName); return(Request.CreateResponse(HttpStatusCode.OK, new PropertiesResponse(workbook))); } catch (Exception e) { var message = $"{e.Message} | FileName = {Convert.ToString(obj["FileName"])}"; NLogger.LogError(App, "Properties", message, Convert.ToString(obj["id"])); var response = new Response { StatusCode = 500, Status = e.Message, FolderName = Opts.FolderName, Text = "Metadata Properties" }; return(Request.CreateResponse(HttpStatusCode.InternalServerError, response)); } }
public async Task <Response> Clear(JObject obj) { Opts.AppName = "Metadata"; Opts.MethodName = "Clear"; try { Opts.FileName = Convert.ToString(obj["FileName"]); Opts.ResultFileName = Opts.FileName; Opts.FolderName = Convert.ToString(obj["id"]); var workbook = new Workbook(Opts.WorkingFileName); workbook.BuiltInDocumentProperties.Clear(); workbook.CustomDocumentProperties.Clear(); return(await Process((inFilePath, outPath, zipOutFolder) => { workbook.Save(outPath); })); } catch (Exception e) { var message = $"{e.Message} | FileName = {Convert.ToString(obj["FileName"])}"; NLogger.LogError(App, "Clear", message, Convert.ToString(obj["id"])); return(await Task.FromResult(new Response { StatusCode = 500, Status = e.Message, FolderName = Convert.ToString(obj["id"]), Text = "Metadata Clear" })); } }
public HttpResponseMessage Download() { var zippedData = Request.Content.ReadAsByteArrayAsync().Result; var decompressString = Encoding.UTF8.GetString(Decompress(zippedData)); var obj = JObject.Parse(decompressString); var p = Convert.ToString(obj["p"]); var uid = Convert.ToString(obj["uid"]); var file = Convert.ToString(obj["file"]); var gridJsWorkbook = new GridJsWorkbook(); var folderName = Guid.NewGuid().ToString(); var outPath = AppSettings.OutputDirectory + folderName; var fullPath = outPath + "/" + file; var gridInterruptMonitor = new GridInterruptMonitor(); gridJsWorkbook.SetInterruptMonitorForSave(gridInterruptMonitor); var thread = new Thread(GridInterruptMonitor); try { thread.Start(new object[] { gridInterruptMonitor, Api.Configuration.MillisecondsTimeout, file }); gridJsWorkbook.MergeExcelFileFromJson(uid, p); Directory.CreateDirectory(outPath); gridJsWorkbook.SaveToExcelFile(fullPath); var response = new Response { StatusCode = 200, Status = "OK", FileName = file, FolderName = folderName }; return(Request.CreateResponse(HttpStatusCode.OK, response)); } catch (Exception e) { var exception = e.InnerException ?? e; var message = $"{e.Message} | File = {file} | UId = {uid} | P = {p}"; NLogger.LogError(App, "Download", message, folderName); var status = exception.Message; if (e is GridCellException gridCellException && gridCellException.Code == GridExceptionType.Interrupted) { NLogger.LogError($"Editor Download=>{folderName}=>{AppSettings.ProcessingTimedout}"); status = AppSettings.ProcessingTimedout; } var response = new Response { StatusCode = 500, Status = status, Text = "Editor Download" }; return(Request.CreateResponse(HttpStatusCode.InternalServerError, response)); } finally { thread.Interrupt(); } }
public async Task <HttpResponseMessage> Upload(string folderName) { try { var provider = new MultipartFormDataStreamProvider(AppSettings.WorkingDirectory); await Request.Content.ReadAsMultipartAsync(provider); Directory.CreateDirectory(Path.Combine(AppSettings.WorkingDirectory, folderName)); foreach (var file in provider.FileData) { var name = file.Headers.ContentDisposition.FileName.Trim('"'); var path = Path.Combine(AppSettings.WorkingDirectory, folderName, name); File.Copy(file.LocalFileName, path, true); File.Delete(file.LocalFileName); } return(Request.CreateResponse(HttpStatusCode.OK)); } catch (Exception e) { NLogger.LogError(App, "Upload", e.Message, folderName); return(Request.CreateResponse(HttpStatusCode.InternalServerError, e)); } }
public HttpResponseMessage Image(string id, string uid) { try { using (var ms = new MemoryStream()) { var img = GridJsWorkbook.GetImageFromFile(uid, id); img.Save(ms, ImageFormat.Png); var result = new HttpResponseMessage(HttpStatusCode.OK) { Content = new ByteArrayContent(ms.ToArray()) }; result.Content.Headers.ContentType = new MediaTypeHeaderValue("image/png"); return(result); } } catch (Exception e) { var message = $"{e.Message} | PicId = {id} | UId = {uid}"; NLogger.LogError(App, "Image", message, "null"); var response = new Response { StatusCode = 500, Status = e.Message, Text = "Compare Image" }; return(Request.CreateResponse(HttpStatusCode.InternalServerError, response)); } }
///<Summary> /// Search method to perform search ///</Summary> public async Task <Response> Search(string fileName, string folderName, string query) { // License.SetAsposeCellsLicense(); var taskResp = Process("SearchResults", folderName, ".txt", false, (inFilePath, outPath, zipOutFolder) => { var fn = AppSettings.WorkingDirectory + folderName + "/" + fileName; var stopWatch = new Stopwatch(); stopWatch.Start(); NLogger.LogInfo($"Search {query}=>{fn}=>Start"); var task = Task.Run(() => { SearchQuery(fileName, folderName, query, outPath); }); var isCompleted = task.Wait(Api.Configuration.MillisecondsTimeout); if (!isCompleted) { NLogger.LogError($"Search {query}=>{fn}=>{AppSettings.ProcessingTimedout}"); throw new TimeoutException(AppSettings.ProcessingTimedout); } stopWatch.Stop(); NLogger.LogInfo($"Search {query}=>{fn}=>cost seconds:{stopWatch.Elapsed.TotalSeconds}"); }); if (MFoundNothing) { taskResp.Result.FileProcessingErrorCode = FileProcessingErrorCode.NoSearchResults; } return(await taskResp); }
// Load list of Inventor Templates from user selected path, applying filter on files extension public List <FileInfo> GetInventorTemplates(string path) { NLogger.LogText("Entered GetInventorTemplates method with path {path}", path); List <FileInfo> inventorTemplates = null; List <string> fileExtensions = new List <string> { ".iam", ".ipt", ".zip" }; try { var g = Directory.EnumerateFiles(path).Select(p => new FileInfo(p)); NLogger.LogText("Retrieved Inventor files {InventorFiles}", g.ToList().Count.ToString()); inventorTemplates = g.Where(j => fileExtensions.Contains(j.Extension)).ToList(); NLogger.LogText("Filtered Inventor files {InventorFiles}", inventorTemplates.Count.ToString()); NLogger.LogText("Exit GetInventorTemplates method"); } catch (Exception ex) { NLogger.LogError($"Following error occurred in GetInventorTemplates: {ex}"); throw new UIRelevantException(LanguageHandler.GetString("msgBox_BIM360NotSync")); } return(inventorTemplates); }
private static void GetFirstLastChecksSensorDates(CgmFileInfo cgmFileInfo, int studyId) { String strConn = ConfigurationManager.ConnectionStrings["Halfpint"].ToString(); SqlDataReader rdr = null; using (var conn = new SqlConnection(strConn)) { try { var cmd = new SqlCommand("", conn) { CommandType = CommandType.StoredProcedure, CommandText = "GetChecksFirstAndLastSensorDateTime" }; var param = new SqlParameter("@studyId", studyId); cmd.Parameters.Add(param); conn.Open(); rdr = cmd.ExecuteReader(); if (rdr.Read()) { var pos = rdr.GetOrdinal("firstDate"); if (!rdr.IsDBNull(pos)) { cgmFileInfo.FirstChecksSensorDateTime = rdr.GetDateTime(pos); } pos = rdr.GetOrdinal("lastDate"); if (!rdr.IsDBNull(pos)) { cgmFileInfo.LastChecksSensorDateTime = rdr.GetDateTime(pos); } } rdr.Close(); } catch (Exception ex) { Nlogger.LogError(ex); } finally { if (rdr != null) { rdr.Close(); } } } }
static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e) { string str = GetExceptionMsg(e.Exception, e.ToString()); MessageBox.Show(str, "系统错误", MessageBoxButtons.OK, MessageBoxIcon.Error); NLogger.LogError(str, e.Exception); Application.Exit(); }
static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) { string str = GetExceptionMsg(e.ExceptionObject as Exception, e.ToString()); MessageBox.Show(str, "系统错误", MessageBoxButtons.OK, MessageBoxIcon.Error); NLogger.LogError(str); Application.Exit(); }
public static void HandleErrorInForgeResponse(string messageParam, ForgeRestResponse res) { NLogger.LogText($"Exit {messageParam} with Error"); var ex = new Exception($"Following error occurred: Response Content: {res.ResponseContent}; Response Error: {res.RetResponse.ErrorMessage}"); NLogger.LogError(ex); throw ex; }
public async Task <Responses> Compare() { var sessionId = Guid.NewGuid().ToString(); try { var taskUpload = Task.Run(() => UploadWorkbooks(sessionId)); taskUpload.Wait(Api.Configuration.MillisecondsTimeout); if (!taskUpload.IsCompleted) { NLogger.LogError($"Comparison UploadWorkbooks=>{sessionId}=>{AppSettings.ProcessingTimedout}"); throw new TimeoutException(AppSettings.ProcessingTimedout); } var docs = taskUpload.Result; if (docs == null) { return((Responses)PasswordProtectedResponse); } if (docs.Length == 0 || docs.Length > MaximumUploadFiles) { return((Responses)MaximumFileLimitsResponse); } SetDefaultOptions(docs); Opts.CreateZip = false; Directory.CreateDirectory(AppSettings.OutputDirectory + sessionId); foreach (var doc in docs) { var outFileName = Path.GetFileName(doc.FileName); var outPath = AppSettings.OutputDirectory + sessionId + "/" + outFileName; SaveDocument(doc, outPath, sessionId, GetSaveFormatType(doc.FileName)); } return(new Responses { StatusCode = 200, Status = "OK", FileName = Path.GetFileName(docs[0].FileName), FileName2 = Path.GetFileName(docs[1].FileName), FolderName = sessionId }); } catch (Exception e) { var exception = e.InnerException ?? e; NLogger.LogError(App, "Compare", exception.Message, sessionId); return(new Responses { StatusCode = 500, Status = exception.Message, FolderName = sessionId, Text = "Compare" }); } }
private static IEnumerable <SiteInfoShort> GetSitesForCompletedSubjects() { var list = new List <SiteInfoShort>(); SqlDataReader rdr = null; var strConn = ConfigurationManager.ConnectionStrings["Halfpint"].ToString(); using (var conn = new SqlConnection(strConn)) { try { var cmd = new SqlCommand("", conn) { CommandType = CommandType.StoredProcedure, CommandText = ("GetSitesForCompletedSubjects") }; conn.Open(); rdr = cmd.ExecuteReader(); while (rdr.Read()) { var ss = new SiteInfoShort { Id = rdr.GetInt32(1), SiteCode = rdr.GetString(2) }; list.Add(ss); } rdr.Close(); } catch (Exception ex) { Nlogger.LogError(ex); } finally { if (rdr != null) { rdr.Close(); } } } return(list); }
public async Task <Response> Editor() { var sessionId = Guid.NewGuid().ToString(); try { var taskUpload = Task.Run(() => UploadWorkbooks(sessionId)); taskUpload.Wait(Api.Configuration.MillisecondsTimeout); if (!taskUpload.IsCompleted) { NLogger.LogError($"Editor UploadWorkbooks=>{sessionId}=>{AppSettings.ProcessingTimedout}"); throw new TimeoutException(AppSettings.ProcessingTimedout); } var docs = taskUpload.Result; if (docs == null) { return(PasswordProtectedResponse); } if (docs.Length == 0 || docs.Length > MaximumUploadFiles) { return(MaximumFileLimitsResponse); } SetDefaultOptions(docs); Opts.AppName = "Editor"; Opts.MethodName = "Editor"; Opts.ZipFileName = docs.Length > 1 ? "Editor documents" : Path.GetFileNameWithoutExtension(docs[0].FileName); return(await Process((inFilePath, outPath, zipOutFolder) => { var stopWatch = new Stopwatch(); stopWatch.Start(); NLogger.LogInfo($"{App}=>{string.Join(",", docs.Select(t => t.FileName))}=>Start"); var tasks = docs.Select(doc => Task.Factory.StartNew(() => { SaveDocument(doc, outPath, zipOutFolder, GetSaveFormatType(doc.FileName)); })).ToArray(); Task.WaitAll(tasks); stopWatch.Stop(); NLogger.LogInfo($"{App}=>{string.Join(",", docs.Select(t => t.FileName))}=>cost seconds:{stopWatch.Elapsed.TotalSeconds}"); })); } catch (Exception e) { var exception = e.InnerException ?? e; NLogger.LogError(App, "Editor", exception.Message, sessionId); return(new Response { StatusCode = 500, Status = exception.Message, FolderName = sessionId, Text = "Editor" }); } }
/// <summary> /// On Exception /// </summary> public override void OnException(HttpActionExecutedContext context) { var actionName = (context.ActionContext?.ActionDescriptor as ReflectedHttpActionDescriptor)?.ActionName ?? new StackTrace(context.Exception).GetFrame(0).GetMethod().Name; NLogger.LogError(actionName, actionName, context.Exception.Message, "null"); context.Response = new HttpResponseMessage(System.Net.HttpStatusCode.InternalServerError) { ReasonPhrase = actionName }; }
public ActionResult TemplateUpload(HttpPostedFileBase file) { try { //throw new Exception("This is a test error!"); if (file != null && file.ContentLength > 0) { var fileName = "Checks_tmpl.xlsm"; var path = Path.Combine(Server.MapPath("~/ssTemplate"), fileName); file.SaveAs(path); } } catch (Exception ex) { nlogger.LogError(ex.Message); return(RedirectToAction("TemplateUploadFailed")); } return(RedirectToAction("TemplateUploadSuccess")); }
// Load or attach to Inventor Process public /*async Task*/ void StartInventorApplication() { NLogger.LogText("Entered StartInventorApplication"); try { try { NLogger.LogText("StartInventorApplication - Try to attach to an active Inventor process"); // Get active inventor object //await Task.Run(() => //{ m_InventorApplication = Marshal.GetActiveObject("Inventor.Application") as Inventor.Application; //}); NLogger.LogText("StartInventorApplication - Attached sucessfully to an active Inventor process"); } catch (COMException ex) { NLogger.LogText("StartInventorApplication - Error in attaching to the Inventor process"); NLogger.LogError(ex); try { NLogger.LogText("StartInventorApplication - Try to activate an Inventor process"); // If not, start a new instance Type invAppType = Type.GetTypeFromProgID("Inventor.Application"); //await Task.Run(() => //{ m_InventorApplication = (Application)Activator.CreateInstance(invAppType); m_InventorApplication.Visible = false; started = true; //}); NLogger.LogText("StartInventorApplication - Inventor process activated sucessfully"); } catch (Exception ex2) { NLogger.LogText("StartInventorApplication - Error in activating the Inventor process"); NLogger.LogError(ex2); } } } catch (Exception e) { NLogger.LogError(e); } }
public static int SaveStaffEnrollmentPage(EnrollmentContentModel ecm) { var strConn = ConfigurationManager.ConnectionStrings["Halfpint"].ToString(); using (var conn = new SqlConnection(strConn)) { try { var cmd = new SqlCommand("", conn) { CommandType = System.Data.CommandType.StoredProcedure, CommandText = ("SaveStaffEnrollmentPage") }; var param = new SqlParameter("@enrollmentContent", ecm.EnrollmentContent); cmd.Parameters.Add(param); param = new SqlParameter("@announcementContent", ecm.AnnouncementContent); cmd.Parameters.Add(param); conn.Open(); cmd.ExecuteNonQuery(); } catch (Exception ex) { Nlogger.LogError(ex); return(0); } } return(1); }
public async Task <Response> Search(string query) { var sessionId = Guid.NewGuid().ToString(); const string action = "Search text"; try { var taskUpload = Task.Run(() => UploadWorkbooks(sessionId)); taskUpload.Wait(Api.Configuration.MillisecondsTimeout); if (!taskUpload.IsCompleted) { NLogger.LogError($"Search UploadWorkbooks=>{sessionId}=>{AppSettings.ProcessingTimedout}"); throw new TimeoutException(AppSettings.ProcessingTimedout); } var docs = taskUpload.Result; if (docs == null) { return(PasswordProtectedResponse); } if (docs.Length == 0 || docs.Length > MaximumUploadFiles) { return(MaximumFileLimitsResponse); } SetDefaultOptions(docs); Opts.AppName = "Search"; Opts.MethodName = "Search"; Opts.OutputType = ".xlsx"; Opts.ResultFileName = "Search Results"; Opts.CreateZip = false; var fileName = Path.GetFileName(docs[0].FileName); var folderName = docs[0].FolderName; return(await Search(fileName, folderName, query)); } catch (Exception e) { var exception = e.InnerException ?? e; var message = $"{exception.Message} | query = {query}"; NLogger.LogError(App, "Search", message, sessionId); return(new Response { StatusCode = 500, Status = exception.Message, FolderName = sessionId, Text = action }); } }
public async Task <Response> Download(JObject obj) { Opts.AppName = "Metadata"; Opts.MethodName = "Download"; try { Opts.FileName = Convert.ToString(obj["FileName"]); Opts.ResultFileName = Opts.FileName; Opts.FolderName = Convert.ToString(obj["id"]); var workbook = new Workbook(Opts.WorkingFileName); var pars = obj["properties"]["BuiltIn"].ToObject <List <DocProperty> >(); SetBuiltInProperties(workbook, pars); pars = obj["properties"]["Custom"].ToObject <List <DocProperty> >(); SetCustomProperties(workbook, pars); return(await Process((inFilePath, outPath, zipOutFolder) => { var stopWatch = new Stopwatch(); stopWatch.Start(); NLogger.LogInfo($"Excel Metadata=>{outPath}=>Start"); var task = Task.Run(() => { workbook.Save(outPath); }); var isCompleted = task.Wait(Api.Configuration.MillisecondsTimeout); if (!isCompleted) { NLogger.LogError($"Excel Metadata=>{outPath}=>{AppSettings.ProcessingTimedout}"); throw new TimeoutException(AppSettings.ProcessingTimedout); } stopWatch.Stop(); NLogger.LogInfo($"Excel Metadata=>{outPath}=>cost seconds:{stopWatch.Elapsed.TotalSeconds}"); })); } catch (Exception e) { var exception = e.InnerException ?? e; var message = $"{exception.Message} | FileName = {Convert.ToString(obj["FileName"])}"; NLogger.LogError(App, "Download", message, Convert.ToString(obj["id"])); return(await Task.FromResult(new Response { StatusCode = 500, Status = exception.Message, FolderName = Convert.ToString(obj["id"]), Text = "Metadata Download" })); } }
private static void AssembleCellsData(string inFilePath, string outPath, string templateFilename, string datasourceFilename, string datasourceName) { var dirPath = Path.GetDirectoryName(inFilePath) + "/"; var dataXlsx = dirPath + datasourceFilename; // var dataDir = Path.GetDirectoryName(dataFolderName) + "/"; // var dataXlsx = dataDir + datasourceFilename; var wb = new Workbook(dataXlsx); var ws = wb.Worksheets[0]; var totalRows = ws.Cells.LastCell.Row + 1; var totalColumns = ws.Cells.LastCell.Column + 1; var dt = ws.Cells.ExportDataTable(0, 0, totalRows, totalColumns, true); dt.TableName = datasourceName; var templateXlsx = dirPath + templateFilename; // var tempDir = Path.GetDirectoryName(tempFolderName) + '/'; // var templateXlsx = tempDir + templateFilename; var wbTemplate = new Workbook(templateXlsx); var wbd = new WorkbookDesigner(wbTemplate); wbd.SetDataSource(dt); wbd.Process(); var stopWatch = new Stopwatch(); stopWatch.Start(); NLogger.LogInfo($"Assemble=>dataXlsx:{dataXlsx}||templateXlsx:{templateXlsx}=>Start"); var task = Task.Run(() => { wbTemplate.Save(outPath); }); var isCompleted = task.Wait(Api.Configuration.MillisecondsTimeout); if (!isCompleted) { NLogger.LogError($"Assemble=>dataXlsx:{dataXlsx}||templateXlsx:{templateXlsx}=>{AppSettings.ProcessingTimedout}"); throw new TimeoutException(AppSettings.ProcessingTimedout); } stopWatch.Stop(); NLogger.LogInfo($"Assemble=>dataXlsx:{dataXlsx}||templateXlsx:{templateXlsx}=>cost seconds:{stopWatch.Elapsed.TotalSeconds}"); }
public async Task <ReportResult> Error([FromBody] ReportModel model) { try { return(await Task.Run(() => ReportService.Submit(model))); } catch (Exception e) { var exception = e.InnerException ?? e; NLogger.LogError("Report", "Error", exception.Message, "null"); return(new ReportResult { StatusCode = 500, Status = exception.Message }); } }
public HttpResponseMessage NewWorkbook() { var folderName = Guid.NewGuid().ToString(); try { const string outfileName = "book1.xlsx"; var outputDirectory = AppSettings.OutputDirectory + folderName; if (!Directory.Exists(outputDirectory)) { Directory.CreateDirectory(outputDirectory); } var outPath = outputDirectory + "/" + outfileName; var workbook = new Workbook(); workbook.Worksheets[0].Cells["A50"].PutValue(""); workbook.Worksheets[0].Cells.StandardHeight = 20; workbook.Save(outPath); var response = new Response { StatusCode = 200, Status = "OK", FileName = outfileName, FolderName = folderName }; return(Request.CreateResponse(HttpStatusCode.OK, response)); } catch (Exception e) { NLogger.LogError(App, "NewWorkbook", e.Message, folderName); var response = new Response { StatusCode = 500, Status = e.Message, Text = "Editor New Workbook" }; return(Request.CreateResponse(HttpStatusCode.InternalServerError, response)); } }
public HttpResponseMessage UpdateCell(JObject obj) { var p = Convert.ToString(obj["p"]); var uid = Convert.ToString(obj["uid"]); string ret = null; try { var isCompleted = Task.Run(() => { var gwb = new GridJsWorkbook(); ret = gwb.UpdateCell(p, uid); }).Wait(Api.Configuration.MillisecondsTimeout); if (!isCompleted || string.IsNullOrEmpty(ret)) { NLogger.LogError($"Editor UpdateCell {uid}=>{AppSettings.ProcessingTimedout}"); throw new TimeoutException(AppSettings.ProcessingTimedout); } return(new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent(ret) }); } catch (Exception e) { var exception = e.InnerException ?? e; var message = $"{exception.Message} | UId = {uid} | P = {p}"; NLogger.LogError(App, "UpdateCell", message, "null"); var response = new Response { StatusCode = 500, Status = exception.Message, Text = "Editor Update" }; return(Request.CreateResponse(HttpStatusCode.InternalServerError, response)); } }
/// <summary> /// Remove annotations in document /// </summary> /// <param name="doc"></param> /// <param name="outPath"></param> private static void RemoveAnnotations(DocumentInfo doc, string outPath) { try { var(filename, folder) = PrepareFolder(doc, outPath); // doc.Workbook.Save($"{folder}/{filename}"); var wb = doc.Workbook; var sb = new StringBuilder(); foreach (var ws in wb.Worksheets) { foreach (var cm in ws.Comments) { var cellName = CellsHelper.CellIndexToName(cm.Row, cm.Column); var str = $"Sheet Name: \"{ws.Name}\", Cell Name: {cellName}, Comment Note: \r\n\"{cm.Note}\""; sb.AppendLine(str); sb.AppendLine(); } } File.WriteAllText($"{folder}/comments.txt", sb.ToString()); foreach (var ws in wb.Worksheets) { ws.Comments.Clear(); } // wb.Save(outPath); wb.Save($"{folder}/{filename}"); } catch (Exception e) { NLogger.LogError(App, "RemoveAnnotations", e.Message, outPath); } }