public async Task <ActionResult <WorkflowSetting> > Handle([FromBody] SaveWorkflowSettingRequest request, [FromRoute] ApiVersion apiVersion, CancellationToken cancellationToken) { var workflowSettingsId = request.Id; var workflowBlueprintId = request.WorkflowBlueprintId; var key = request.Key; var workflowSettings = !string.IsNullOrWhiteSpace(workflowSettingsId) ? await _workflowSettingsStore.FindByWorkflowBlueprintIdAndKeyAsync(workflowBlueprintId, key, cancellationToken) : default; if (workflowSettings == null) { workflowSettings = new WorkflowSetting { Id = !string.IsNullOrWhiteSpace(workflowSettingsId) ? workflowSettingsId : _idGenerator.Generate(), }; } workflowSettings.WorkflowBlueprintId = request.WorkflowBlueprintId.Trim(); workflowSettings.Key = request.Key.Trim(); workflowSettings.Value = request.Value?.Trim(); await _workflowSettingsStore.SaveAsync(workflowSettings, cancellationToken); return(CreatedAtAction("Handle", "Get", new { id = workflowSettings.Id, apiVersion = apiVersion.ToString() }, workflowSettings)); }
public async Task AddAsync(WorkflowSetting entity, CancellationToken cancellationToken = default) { await _mediator.Publish(new WorkflowSettingsSaving(entity), cancellationToken); await _store.AddAsync(entity, cancellationToken); await _mediator.Publish(new WorkflowSettingsSaved(entity), cancellationToken); }
private WorkflowSetting Initialize(WorkflowSetting workflowSetting) { if (string.IsNullOrWhiteSpace(workflowSetting.Id)) { workflowSetting.Id = _idGenerator.Generate(); } return(workflowSetting); }
public JsonResult SetCustomSetting(string InstanceID, string SchemaCode, string SettingName, string SettingValue) { int n = WorkflowSetting.SetCustomSettingValue(InstanceID, SchemaCode, SettingName, SettingValue); if (n == 0) { AppUtility.Engine.LogWriter.Write("SetCustomSetting失败,0行受影响"); return(Json(new { Success = false, EffectNumber = n }, JsonRequestBehavior.AllowGet)); } return(Json(new { Success = true, EffectNumber = n }, JsonRequestBehavior.AllowGet)); }
/// <summary> /// Convert HTML URL to PDF /// </summary> /// <param name="url">The HTTP or HTTPS URL</param> /// <param name="name">Name of the PDF file</param> /// <returns></returns> public async Task <bool> ConvertPdf2Word() { IsProgressRingActive = true; ProgressVisible = Visibility.Visible; var workflowSetting = new WorkflowSetting(); var wfConvertPdfToWord = workflowSetting.AddNewConvertPdfToWordTask(); wfConvertPdfToWord.Revision = 1; wfConvertPdfToWord.KeepInputFile = false; Stream stream = await mInputFile.OpenStreamForReadAsync(); var job = await mClient.StartNewJobAsync(workflowSetting, stream, mInputFile.Name); try { // Wait until job execution is completed and return PDF file var job_rsl = await job.WaitForJobExecutionCompletionAsync(); // Save the job result to memory, and then prompt to save on disk using (var memoryStream = new MemoryStream()) { await job_rsl.FileData.Stream.CopyToAsync(memoryStream); byte[] outputBytes = memoryStream.ToArray(); var outputFile = await PromptSaveDialoge(mInputFile.Name); await FileIO.WriteBytesAsync(outputFile, outputBytes); } } catch (Exception ex) { // swallow exception } finally { IsProgressRingActive = false; ProgressVisible = Visibility.Collapsed; } return(false); }
public async Task <WorkflowSetting> LoadSettingAsync(string workflowBlueprintId, string key, CancellationToken cancellationToken = default) { var providers = _workflowSettingsProviders; var value = new WorkflowSetting(); foreach (var provider in providers) { var providerValue = await provider.GetWorkflowSettingAsync(workflowBlueprintId, key, cancellationToken); if (providerValue.Value != null) { value = providerValue; } } return(value); }
public WorkflowSettingsSaved(WorkflowSetting workflowSetting) : base(workflowSetting) { }
public JsonResult GetCustomSetting(string InstanceID, string SettingName) { return(Json(WorkflowSetting.GetCustomSettingValue(InstanceID, SettingName), JsonRequestBehavior.AllowGet)); }
public Task DeleteAsync(WorkflowSetting entity, CancellationToken cancellationToken) => _store.DeleteAsync(entity, cancellationToken);
public async Task AddAsync(WorkflowSetting entity, CancellationToken cancellationToken = default) { entity = Initialize(entity); await _store.AddAsync(entity, cancellationToken); }
public async Task UpdateAsync(WorkflowSetting entity, CancellationToken cancellationToken) { entity = Initialize(entity); await _store.UpdateAsync(entity, cancellationToken); }
public WorkflowSettingsDeleted(WorkflowSetting workflowSetting) : base(workflowSetting) { }
public ActionResult Index(int?clientId, int?productId) { try { ViewBag.Error = ""; #region Client Product productItem Session Check var userClientSession = (AppSession)Session["_UserClientSession_"]; if (userClientSession == null || userClientSession.ClientId < 1 || userClientSession.ProductId < 1 || userClientSession.ProductItemId < 1) { return(RedirectToAction("Index", "Dashboard")); } var ClientId = clientId ?? userClientSession.ClientId; var ProductId = productId ?? userClientSession.ProductId; var ProductItemId = userClientSession.ProductItemId; #endregion #region Current User session check var userData = MvcApplication.GetUserData(User.Identity.Name); if (userData == null || userData.UserId < 1) { ViewBag.Error = "Session Has Expired! Please Re-Login"; return(View(new List <WorkflowSettingObj>())); } #endregion #region Check if workflow list if null else return to view if (Session["_WorkflowSettingList_"] is List <WorkflowSettingObj> WorkflowSetting && WorkflowSetting.Any()) { return(View(WorkflowSetting.Where(m => m.ClientId == ClientId && m.ProductId == ProductId).ToList())); } #endregion #region Request and response validations var searchObj = new WorkflowSettingSearchObj { AdminUserId = userData.UserId, WorkflowSettingId = 0, Status = -2 }; var retVal = WorkflowSettingServices.LoadWorkflowSettings(searchObj, userData.Username); if (retVal?.Status == null) { ViewBag.Error = " WorkflowSetting list is empty!"; return(View(new List <WorkflowSettingObj>())); } if (!retVal.Status.IsSuccessful) { ViewBag.Error = string.IsNullOrEmpty(retVal.Status.Message.FriendlyMessage) ? " WorkflowSetting list is empty!" : retVal.Status.Message.FriendlyMessage; return(View(new List <WorkflowSettingObj>())); } if (retVal.WorkflowSettings == null || !retVal.WorkflowSettings.Any()) { ViewBag.Error = " WorkflowSetting list is empty!"; return(View(new List <WorkflowSettingObj>())); } #endregion #region Initialize list into session var WorkflowSettings = retVal.WorkflowSettings.OrderBy(m => m.WorkflowSettingId).ToList(); Session["_WorkflowSettingList_"] = WorkflowSettings.Where(m => m.ClientId == ClientId && m.ProductId == ProductId && m.ProductItemId == ProductItemId).ToList(); #endregion var clientProdWorkflowSettings = WorkflowSettings.Where(m => m.ClientId == ClientId && m.ProductId == ProductId).ToList(); return(View(clientProdWorkflowSettings)); } catch (Exception ex) { ViewBag.Error = ex.Message; UtilTools.LogE(ex.StackTrace, ex.Source, ex.Message); return(View(new List <WorkflowSettingObj>())); } }
/// <summary> /// Convert HTML URL to PDF /// </summary> /// <param name="url">The HTTP or HTTPS URL</param> /// <param name="name">Name of the PDF file</param> /// <returns></returns> public async Task <bool> ConvertHTML2PDF(string name) { if (string.IsNullOrWhiteSpace(URL)) { return(false); } // Check if URL is valid HTTP or HTTPS Uri uriResult; bool result = Uri.TryCreate(URL, UriKind.Absolute, out uriResult) && (uriResult.Scheme == Uri.UriSchemeHttp || uriResult.Scheme == Uri.UriSchemeHttps); if (result == false) { return(false); } IsProgressRingActive = true; ProgressVisible = Visibility.Visible; var workflowSetting = new WorkflowSetting(); var wfConvertToPDF = workflowSetting.AddNewConvertToPdfTask(); string ddd = @"{ ""Url"": """ + URL + @""" }"; // @"{ ""Url"": ""https://www.pdftron.com/"" }"; byte[] byteArray = Encoding.UTF8.GetBytes(ddd); MemoryStream stream = new MemoryStream(byteArray); var job = await mClient.StartNewJobAsync(workflowSetting, stream, "pdftron.bclurl"); try { // Wait until job execution is completed and return PDF file var job_rsl = await job.WaitForJobExecutionCompletionAsync(); var folder = ApplicationData.Current.LocalFolder; StorageFile outputFile = await folder.CreateFileAsync(name + ".pdf", CreationCollisionOption.ReplaceExisting); using (var memoryStream = new MemoryStream()) { await job_rsl.FileData.Stream.CopyToAsync(memoryStream); byte[] outputBytes = memoryStream.ToArray(); await FileIO.WriteBytesAsync(outputFile, outputBytes); } // Open PDFDoc on PDFViewer PDFDoc doc = new PDFDoc(outputFile); PDFViewCtrl.SetDoc(doc); } catch (Exception ex) { // swallow exception } finally { IsProgressRingActive = false; ProgressVisible = Visibility.Collapsed; } return(false); }
public WorkflowSettingsNotification(WorkflowSetting workflowSetting) => WorkflowSetting = workflowSetting;
public JsonResult QueryModelInfo(string InstanceId) { #region 校验参数 if (string.IsNullOrEmpty(InstanceId)) { ResponseData <string> rspData = new ResponseData <string>(); rspData.Code = "-1"; rspData.Message = "InstanceId为空"; rspData.Success = false; return(Json(rspData)); } InstanceContext context = AppUtility.Engine.InstanceManager.GetInstanceContext(InstanceId); if (context == null) { ResponseData <string> rspData = new ResponseData <string>(); rspData.Code = "-1"; rspData.Message = "InstanceId错误"; rspData.Success = false; return(Json(rspData)); } if (context.BizObjectSchemaCode != "APPLICATION") { ResponseData <string> rspData = new ResponseData <string>(); rspData.Code = "-1"; rspData.Message = "非APPLICATION流程"; rspData.Success = false; return(Json(rspData)); } #endregion #region 查询Vin码 string sql_getvin = $"select VIN_NUMBER from i_application where objectid='{context.BizObjectId}'"; string Vin = AppUtility.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteScalar(sql_getvin) + string.Empty; if (string.IsNullOrEmpty(Vin)) { ResponseData <string> rspData = new ResponseData <string>(); rspData.Code = "-1"; rspData.Message = "Vin为空"; rspData.Success = false; return(Json(rspData)); } #endregion Vin = Vin.ToUpper(); int validDays = 30; int.TryParse(ConfigurationManager.AppSettings["Che300_ModelValidDays"] + string.Empty, out validDays); var queryid = WorkflowSetting.GetCustomSettingValue(InstanceId, QUERY_ID); //是否有过查询记录; if (string.IsNullOrEmpty(queryid)) { if (context.State == InstanceState.Finished) { ResponseData <List <Model2> > rspData = new ResponseData <List <Model2> >(); rspData.Code = "1"; rspData.Message = "ok"; rspData.Success = true; rspData.Data = new List <Model2>(); return(Json(rspData)); } //历史是否有过查询过的记录; string sql = $"select * from c_che300_model_by_vin where vinnumber='{Vin}' and querytime >to_date('{DateTime.Now.AddDays(-validDays).ToString()}','yyyy-MM-dd HH24:mi:ss') order by querytime desc"; DataTable dt = AppUtility.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteDataTable(sql); //有记录 if (dt != null && dt.Rows.Count > 0) { queryid = dt.Rows[0]["queryid"] + string.Empty; List <Model2> models = GetModelInfoByQueryId(queryid); ResponseData <List <Model2> > rspData = new ResponseData <List <Model2> >(); rspData.Code = "1"; rspData.Message = "ok"; rspData.Success = true; rspData.Data = models; return(Json(rspData)); } else//没有记录 { string methodUrl = ConfigurationManager.AppSettings["Che300_IdentifyModelByVIN"] + string.Empty; string token = ConfigurationManager.AppSettings["Che300_API_Token"] + string.Empty; var result = HttpHelper.GetWebRequest($"{methodUrl}?vin={Vin}&token={token}"); if (string.IsNullOrEmpty(result)) { ResponseData <string> rspData = new ResponseData <string>(); rspData.Code = "-1"; rspData.Message = "查询超时,请刷新页面重试"; rspData.Success = false; return(Json(rspData)); } try { IdentifyModelByVINResult identifyModelByVINResult = JsonConvert.DeserializeObject <IdentifyModelByVINResult>(result); if (identifyModelByVINResult.status == "1") { #region Save Data to DB queryid = Guid.NewGuid().ToString(); var modelInfos = identifyModelByVINResult.modelInfo.OrderByDescending(a => a.model_price).ToList(); modelInfos.ForEach(a => { a.model_price = a.model_price * 10000; }); SaveModelToDB(Vin, queryid, modelInfos); WorkflowSetting.SetCustomSettingValue(InstanceId, "APPLICATION", QUERY_ID, queryid); #endregion ResponseData <List <Model2> > rspData = new ResponseData <List <Model2> >(); rspData.Code = "1"; rspData.Message = "ok"; rspData.Success = true; rspData.Data = modelInfos; return(Json(rspData)); } else { ResponseData <string> rspData = new ResponseData <string>(); rspData.Code = "-1"; rspData.Message = $"[ErrorCode:{identifyModelByVINResult.status}] " + identifyModelByVINResult.error_msg; rspData.Success = false; return(Json(rspData)); } } catch (Exception ex) { ResponseData <string> rspData = new ResponseData <string>(); rspData.Code = "-1"; rspData.Message = ex.Message; rspData.Success = false; return(Json(rspData)); } } } else//有查询记录,直接返回查询记录; { ResponseData <List <Model2> > rspData = new ResponseData <List <Model2> >(); rspData.Code = "1"; rspData.Message = "ok"; rspData.Success = true; rspData.Data = GetModelInfoByQueryId(queryid); return(Json(rspData)); } }