public static IMvcResult AsMVCResult(this ActionResult actionResult) { IMvcResult mvcResult = new MvcResult(); var properties = actionResult.GetType().GetProperties(); if (properties != null) { mvcResult.Controller = (string)properties.Where(p => p.Name == "Controller").First().GetValue(actionResult, null); mvcResult.Action = (string)properties.Where(p => p.Name == "Action").First().GetValue(actionResult, null); mvcResult.RouteValueDictionary = (RouteValueDictionary)properties.Where(p => p.Name == "RouteValueDictionary").First().GetValue(actionResult, null); } return mvcResult; }
/// <summary> /// implement for real calling to mvc /// </summary> /// <param name="query"> </param> /// <returns> </returns> protected override MvcResult InternalCall(MvcQuery query) { var ctx = new MvcContext(); var sw = new StringWriter(); ctx.Output = sw; query.Setup("http://localhost/", ctx); var handler = Container.Get<IMvcHandler>(); var result = new MvcResult(); try { handler.ProcessRequest(ctx); result.ActionResult = ctx.ActionResult; result.Content = sw.ToString(); result.ETag = ctx.Etag; result.LastModified = ctx.LastModified; result.Status = ctx.StatusCode; result.Error = ctx.Error; } catch (Exception e) { result.Error = e; } return result; }
public override void SaveDataFields(MvcPostValue MvcPost, MvcResult result) { if (this.ActionContext.ActivityCode == "Activity25") { if (MvcPost.Command == "Submit") { var projectNum = ActionContext.BizObject.GetValue("ProjectNum"); var projectId = ActionContext.BizObject.GetValue("ProjectId"); var projectMember = (BizObject[])ActionContext.BizObject.GetValue("ProjectMember"); if (projectMember != null) { for (int i = 0; i < projectMember.Length; i++) { var fullName = projectMember[i]["FullName"].ToString(); var userRole = projectMember[i]["UserRole"].ToString(); var department = projectMember[i]["Department"].ToString(); var profession = projectMember[i]["Profession"].ToString(); var jobTitle = projectMember[i]["JobTitle"].ToString(); var qualification = projectMember[i]["Qualification"].ToString(); var userId = projectMember[i]["UserId"].ToString(); System.Data.DataTable resultDt = OThinker.H3.Controllers.AppUtility.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteDataTable(" INSERT INTO ProjectMember(ProjectNum," + " ProjectId, FullName, UserRole, Department, Profession, JobTitle, Qualification, UserId)" + "VALUES( '" + projectNum + "','" + projectId + "','" + fullName + "','" + userRole + "','" + department + "','" + profession + "','" + jobTitle + "','" + qualification + "','" + userId + "')"); } } } } //保存后执行操作, base.SaveDataFields(MvcPost, result); }
public override void Submit(MvcPostValue MvcPostValue, MvcResult MvcResult) { if (this.ActionContext.ActivityCode == "submit") { var smid = ActionContext.BizObject.GetValue("SMId"); String sql = "SELECT sd.Type, sd.MaterialName, sd.Model, sd.Note, sd.Num, sd.Price, sd.Cost FROM I_SpecialMaterials sm " + "LEFT JOIN I_SpMaterialDetails sd ON sm.ObjectID = sd.ParentObjectID " + "WHERE sm.ObjectID = " + "'" + smid + "'"; System.Data.DataTable dt = OThinker.H3.Controllers.AppUtility.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteDataTable(sql); if (dt.Rows.Count > 0) { for (int i = 0; i < dt.Rows.Count; i++) { var name = dt.Rows[i]["MaterialName"].ToString(); var model = dt.Rows[i]["Model"].ToString(); var num = dt.Rows[i]["Num"].ToString(); //库存减去领用数量 System.Data.DataTable dt2 = OThinker.H3.Controllers.AppUtility.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteDataTable("UPDATE I_Consumables " + "SET Num =Num" + "-'" + num + "'" + " WHERE Model=" + "'" + model + "'" + "AND SName=" + "'" + name + "'"); } } } base.Submit(MvcPostValue, MvcResult); }
public override void SaveDataFields(MvcPostValue MvcPost, MvcResult result) { if (MvcPost.Command == "Submit") { base.SaveDataFields(MvcPost, result); BizObject[] list = this.ActionContext.InstanceData["ProjectMembers"].Value as BizObject[]; if (list != null || !"".Equals(list)) { for (int i = 0; i < list.Length; i++) { String UserId = list[i].GetValue("UserId"); String Name = list[i].GetValue("FullName"); String PersonRole = list[i].GetValue("PersonRole"); String Department = list[i].GetValue("Department"); String Profession = list[i].GetValue("Profession"); String JobTitle = list[i].GetValue("JobTitle"); String GNVQ = list[i].GetValue("GNVQ"); String AppointmentDate = list[i].GetValue("AppointmentDate"); String ResidentDate = list[i].GetValue("ResidentDate"); } } // var i = list.Length(); } }
/// <summary> /// 保存表单数据到引擎中 /// </summary> /// <param name="Args"></param> public override void SaveDataFields(MvcPostValue MvcPost, MvcResult result) { // 保存后,后台执行事件 base.SaveDataFields(MvcPost, result); }
/// <summary> /// 保存表单数据到引擎中 /// </summary> /// <param name="Args"></param> public override void SaveDataFields(MvcPostValue MvcPost, MvcResult result) { try { MvcDataItem type = new MvcDataItem(); MvcPost.BizObject.DataItems.TryGetValue("APPLICANT_TYPE", out type); var dataJson = JsonConvert.SerializeObject(MvcPost.BizObject.DataItems); var r = JsonConvert.DeserializeObject <List <System.Collections.Generic.Dictionary <object, object> > >(JsonConvert.SerializeObject(type.V)); if (r.Count() > 0) { var name = r[0]["NAME1"] + string.Empty; string msg = ""; bool isInject = new DongZheng.H3.WebApi.Controllers.XssAttribute().IsContainXSSCharacter(name, out msg); if (isInject) { result.Successful = false; result.Errors.Add("检测到SQL敏感字符"); return; } isInject = new DongZheng.H3.WebApi.Controllers.SqlInjectAttribute().IsSqlInjectCharacter(name, out msg); if (isInject) { result.Successful = false; result.Errors.Add("检测到XSS敏感字符"); return; } } } catch (Exception ex) { } // 保存后,后台执行事件 base.SaveDataFields(MvcPost, result); string Command = Request["Command"] + string.Empty; //1.判断是否成功保存 if (result.Successful && Command.ToLower() == MvcController.Button_Submit) { var version = 1; var tokenId = 1; var fields = this.ActionContext.Schema.Fields; var sheetDataType = this.ActionContext.SheetDataType; var clientActivity = (H3.WorkflowTemplate.ClientActivity) this.ActionContext.ActivityTemplate; var context = this.ActionContext.Engine.InstanceManager.GetInstanceContext(this.ActionContext.InstanceId); if (context != null) { var tokens = context.GetTokens("Activity2", Instance.TokenState.Unspecified).OrderByDescending(p => p.CreatedTime); version = tokens.Count() == 0 ? 1 : tokens.Count(); tokenId = tokens.Count() == 0 ? 1 : tokens.FirstOrDefault().TokenId; } var instanceId = this.ActionContext.InstanceId; //2.记录数据变动日志 Task.Run(() => { var trackResult = new DataLogger().DataTrack(MvcPost, fields, sheetDataType, clientActivity); string sql = "insert into H3.c_fidatatrack(objectid,instanceid,verson,activitycode,datatrack,tokenid,createdtime) values('" + Guid.NewGuid().ToString() + "','" + instanceId + "','" + version + "','Activity2',:content,'" + tokenId + "',to_date('" + DateTime.Now + "','yyyy/mm/dd HH24:MI:SS'))"; try { var i = 0; string connectionCode = "Engine"; var dbObject = AppUtility.Engine.SettingManager.GetBizDbConnectionConfig(connectionCode); OracleConnection connection = new OracleConnection(dbObject.DbConnectionString); connection.Open(); OracleCommand Cmd = new OracleCommand(sql, connection); OracleParameter Temp = new OracleParameter("content", OracleType.NClob); Temp.Direction = ParameterDirection.Input; Temp.Value = trackResult; Cmd.Parameters.Add(Temp); i = Cmd.ExecuteNonQuery(); connection.Close(); } catch (Exception ex) { AppUtility.Engine.LogWriter.Write("保存风控报告数据异常:" + ex.ToString()); } }).GetAwaiter(); } }
public override void SaveDataFields(MvcPostValue MvcPost, MvcResult result) { MvcPost.BizObject.DataItems.SetValue("aaaaaa", "21"); base.SaveDataFields(MvcPost, result); }