protected override async Task OnMessageActivityAsync(ITurnContext <IMessageActivity> turnContext, CancellationToken cancellationToken) { var activity = turnContext.Activity.AsMessageActivity(); // For demo purposes, I am just using the hard-coded one. string userId = "274dc4c7-0e94-46e3-86ce-ce9f141d8ad4"; var customer = await FlowHelper.GetFlowOutput(userId); string imageUrl = $"https://dev.virtualearth.net/REST/v1/Imagery/Map/Road/{customer.Address}/16?key=At-9uaLoghwXOeWXbc1bmz4XLcczj0hzL7YeBweBRr0Zx8BFIO9cl6XCU_Jj4sCw"; var url = MapMaker.Process(imageUrl, "map"); // There's an issue which will be looked by the community. Button button = new Button(); button.Title = "Navigate"; button.OpenUrlAction = new OpenUrlAction() { Url = $"https://www.google.com/maps/search/?api=1&query={customer.Address}" }; Button[] buttons = { button }; var card = new GoogleBasicCard() { Content = new GoogleBasicCardContent() { Title = $"Home Delivery - {customer.Name}", Subtitle = customer.Address, FormattedText = "Kindly note that the customer requested for a call before arrival", Image = new Image() { // Compression issue of an image, have to look into it later on. Url = $"<temp url>" }, Buttons = buttons, Display = ImageDisplayOptions.DEFAULT }, }; activity.Text = $"You have to deliver a debit card for a new customer. You can reach him at {customer.MobileNumber}"; turnContext.GoogleSetCard(card); await turnContext.SendActivityAsync(activity); }
public ActionResult GetPageDetailList(string keyword = null, string Depart = null, int page = 1, string sidx = "", string sord = "asc") { //取得按钮权限 List <string> BtnList = FlowHelper.GetBtnAuthorityForPage("明细权限"); ViewBag.BtnList = BtnList; #region 通过存储过程获得数据 PageInfo pager = new PageInfo(); pager.PageSize = 50; pager.CurrentPageIndex = Math.Max(1, page); StringBuilder strSql = new StringBuilder(" 1=1"); if (!string.IsNullOrWhiteSpace(keyword)) { strSql.Append(" and (ModelName like '%" + keyword + "%' or PageName like '%" + keyword + "%')"); } string tableName = "tblPageDetail"; string orderBy = "ModelName,PageName,DetailName"; if (!string.IsNullOrWhiteSpace(sidx)) { orderBy = sidx + " " + sord; } int totalCount = 0; string queryFields = "TblRcdId, ModelName,PageName,DetailName,Remark"; string where = strSql.ToString(); DataTable ds = DBContext.DataDecision.QueryPageByProc(tableName, orderBy, out totalCount, queryFields, where, pager.CurrentPageIndex, pager.PageSize); List <tblPageDetail> result = new List <tblPageDetail>(); result = ds.ToList <tblPageDetail>(); //添加序号 CommExtension.AddXuHao(result, pager.PageSize, pager.CurrentPageIndex); #endregion jqGridData RM = new jqGridData(); RM.page = pager.CurrentPageIndex; RM.rows = result; RM.total = (totalCount % pager.PageSize == 0 ? totalCount / pager.PageSize : totalCount / pager.PageSize + 1); RM.records = totalCount; return(Json(RM, JsonRequestBehavior.AllowGet)); }
protected void FV_Strategy_DataBound(object sender, EventArgs e) { ((HtmlGenericControl)this.FV_Strategy.FindControl("lStrategy")).InnerText = FlowHelper.GetFlowStrategyLabel(this.ModuleType); if (FlowCode != null && FlowCode != string.Empty) { Flow flow = (Flow)((FormView)sender).DataItem; com.Sconit.Control.CodeMstrDropDownList ddlStrategy = (com.Sconit.Control.CodeMstrDropDownList) this.FV_Strategy.FindControl("ddlStrategy"); Literal lblFlowStrategy = (Literal)this.FV_Strategy.FindControl("lblFlowStrategy"); lblFlowStrategy.Text = FlowHelper.GetFlowStrategyLabel(this.ModuleType) + ":"; if (flow.FlowStrategy != null) { ddlStrategy.Text = flow.FlowStrategy; } else { ddlStrategy.Text = string.Empty; } } }
protected void Page_Load(object sender, EventArgs e) { this.lblFlow.Text = FlowHelper.GetFlowLabel(this.ModuleType) + ":"; if (IsSupplier) { this.tbFlow.ServiceParameter = "string:" + this.CurrentUser.Code + ",bool:true,bool:false,bool:true,bool:false,bool:true,bool:true,string:" + BusinessConstants.PARTY_AUTHRIZE_OPTION_FROM; } else if (this.ModuleType == BusinessConstants.CODE_MASTER_ORDER_TYPE_VALUE_PROCUREMENT) { this.tbFlow.ServiceParameter = "string:" + this.CurrentUser.Code + ",bool:true,bool:false,bool:true,bool:false,bool:true,bool:true,string:" + BusinessConstants.PARTY_AUTHRIZE_OPTION_TO; } else if (this.ModuleType == BusinessConstants.CODE_MASTER_ORDER_TYPE_VALUE_DISTRIBUTION) { this.tbFlow.ServiceParameter = "string:" + this.CurrentUser.Code + ",bool:false,bool:true,bool:true,bool:false,bool:false,bool:false,string:" + BusinessConstants.PARTY_AUTHRIZE_OPTION_FROM; } //else if (this.ModuleType == BusinessConstants.CODE_MASTER_ORDER_TYPE_VALUE_TRANSFER) //{ // this.tbFlow.ServiceParameter = "string:" + this.CurrentUser.Code + ",bool:false,bool:false,bool:true,bool:false"; //} //else if (this.ModuleType == BusinessConstants.CODE_MASTER_ORDER_TYPE_VALUE_PRODUCTION) //{ // this.tbFlow.ServiceParameter = "string:" + this.CurrentUser.Code + ",bool:false,bool:false,bool:false,bool:true"; //} //else if (this.ModuleType == BusinessConstants.ORDER_MODULETYPE_VALUE_SUPPLIERDISTRIBUTION) //{ // this.tbFlow.ServiceParameter = "string:" + this.CurrentUser.Code + ",bool:true,bool:false,bool:false,bool:false"; // if (this.tbFlow.Text.Trim() == string.Empty) // { // IList<Flow> flowList = TheFlowMgr.GetFlowList(this.CurrentUser.Code, true, false, false, false, true, true, "from"); // if (flowList != null && flowList.Count > 0) // { // this.tbFlow.Text = flowList[0].Code; // DoSearch(); // } // } //} }
protected void Page_Load(object sender, EventArgs e) { this.lblFlow.Text = FlowHelper.GetFlowLabel(this.ModuleType) + ":"; if (this.ModuleType == BusinessConstants.CODE_MASTER_ORDER_TYPE_VALUE_PROCUREMENT) { this.lblParty.Text = "${Reports.CSLoc.PartyFrom}:"; this.tbParty.ServicePath = "SupplierMgr.service"; this.tbParty.ServiceMethod = "GetSupplier"; this.tbParty.ServiceParameter = "string:" + this.CurrentUser.Code; this.tbFlow.ServiceParameter = "string:" + this.CurrentUser.Code + ",bool:true,bool:false,bool:false,bool:false,bool:true,bool:true,string:" + BusinessConstants.PARTY_AUTHRIZE_OPTION_TO; } else if (this.ModuleType == BusinessConstants.CODE_MASTER_ORDER_TYPE_VALUE_DISTRIBUTION) { this.lblParty.Text = "${Reports.CSLoc.PartyTo}:"; this.tbParty.ServicePath = "CustomerMgr.service"; this.tbParty.ServiceMethod = "GetCustomer"; this.tbParty.ServiceParameter = "string:" + this.CurrentUser.Code; this.tbFlow.ServiceParameter = "string:" + this.CurrentUser.Code + ",bool:false,bool:true,bool:false,bool:false,bool:false,bool:false,string:" + BusinessConstants.PARTY_AUTHRIZE_OPTION_FROM; } }
public ActionResult GetPageResult(string keyword = null, int page = 1, int rows = 50, string sidx = "", string sord = "") { SystemServiceFactory factory = new SystemServiceFactory(); ISystemService service = factory.GetInstance(); SubPageResult <tblAdOrder> result = new SubPageResult <tblAdOrder>(); string LoginName = CurrentHelper.CurrentUser.User.LoginName; string Authority = FlowHelper.GetBusinessAuthority("订单查询"); switch (Authority) { case "查看所有": result = service.GetSchedulePageResult(LoginName, keyword, page, rows, sidx, sord); break; case "查看下级": result = service.GetSchedulePageResultForMeUnderling(LoginName, keyword, page, rows, sidx, sord); break; default: result = service.GetSchedulePageResultForMe(LoginName, keyword, page, rows, sidx, sord);; break; } return(Json(result, JsonRequestBehavior.AllowGet)); }
public ActionResult Index() { List <string> BtnList = FlowHelper.GetBtnAuthorityForPage("页面访问统计"); ViewBag.BtnList = BtnList; #region 暂时不用 //if (!string.IsNullOrEmpty(startDate) && startDate != DateTime.Now.ToString()) //{ // if (!string.IsNullOrEmpty(str_cdt)) // { // str_cdt += "and EndDate>='" + startDate + "'"; // } // else // { // str_cdt += "EndDate>='" + startDate + "'"; // } //} //if (!string.IsNullOrEmpty(endDate) && endDate != DateTime.Now.ToString()) //{ // if (!string.IsNullOrEmpty(str_cdt)) // { // str_cdt += "and EndDate<='" + endDate + "'"; // } // else // { // str_cdt += "EndDate<='" + endDate + "'"; // } //} //StartTime = StartTime == null ? (DateTime.Now.AddMonths(-12).ToShortDateString()) : (StartTime); //EndTime = EndTime == null ? (DateTime.Now.ToShortDateString()) : (EndTime); //ViewData["StartTime"] = StartTime; //ViewData["EndTime"] = EndTime; #endregion return(View()); }
public ActionResult GetFunctionalDataList(string Module_Name = "", string Group_Name = "", string Right_Name = "", int page = 1, int rows = 20, string sidx = "", string sord = "asc") { StringBuilder strSql = new StringBuilder(" 1=1"); if (!string.IsNullOrWhiteSpace(Module_Name)) { strSql.Append(" and Module_Name like '%" + Module_Name + "%'"); } if (!string.IsNullOrWhiteSpace(Group_Name)) { strSql.Append(" and Group_Name like '%" + Group_Name + "%'"); } if (!string.IsNullOrWhiteSpace(Right_Name)) { strSql.Append(" and Right_Name like '%" + Right_Name + "%'"); } string where = strSql.ToString(); whe = where; string orderBy = "module_id,group_id,right_Id"; jqGridData RM = FlowHelper.GetJqGridDataList <FunctionalAuthority>(where, orderBy, page, rows, sidx, sord); return(Json(RM, JsonRequestBehavior.AllowGet)); }
public IconPicker(ModEntry mod, int x, int y, int width, int height, Action <CategoryIcon> onPick) : base(mod) { this.onPick = onPick; initialize(x, y, width, height); Flow = new( this, (int)Math.Ceiling(xPositionOnScreen + 16.0), (int)Math.Ceiling(yPositionOnScreen + 16.0), (int)Math.Ceiling(width - 16.0), (int)Math.Ceiling(height - 32.0) ); btnPageUp = Flow.btnPageUp; btnPageDown = Flow.btnPageDown; FlowComponents = Flow.DynamicComponents; var builder = FlowHelper.Builder(); for (int i = 0; i < 17; i++) { Rectangle rect = new(10 * i, 428, 10, 10); SpriteInfo sprite = new(Game1.mouseCursors, rect); builder.Sprite(sprite, scale: 3, onClick: (_, _, _) => { Pick(GameTexture.MouseCursors, rect); return(true); }); } for (int iy = 0; iy < 5; iy++) { for (int ix = 0; ix < 6; ix++) { Rectangle rect = new(ix * 16, 624 + iy * 16, 16, 16); SpriteInfo sprite = new(Game1.mouseCursors, rect); builder.Sprite(sprite, scale: 3, onClick: (_, _, _) => { Pick(GameTexture.MouseCursors, rect); return(true); }); } } Texture2D?emoji = SpriteHelper.GetTexture(GameTexture.Emoji); if (emoji is not null) { for (int iy = 0; iy < 14; iy++) { for (int ix = 0; ix < 14; ix++) { Rectangle rect = new(ix * 9, iy * 9, 9, 9); SpriteInfo sprite = new(emoji, rect); builder.Sprite(sprite, scale: 3, onClick: (_, _, _) => { Pick(GameTexture.Emoji, rect); return(true); }); } } } Flow.Set(builder.Build()); if (Game1.options.SnappyMenus) { snapToDefaultClickableComponent(); } }
public JsonResult Create(Flow_FormContentModel model) { //当前的Form模版 Flow_FormModel formModel = formBLL.GetById(model.FormId); //初始化部分数据 model.Id = ResultHelper.NewId; model.CreateTime = ResultHelper.NowTime; model.UserId = GetUserId(); model.Title = formModel.Name; model.TimeOut = DateTime.Now.AddDays(30); if (model != null && ModelState.IsValid) { //内容提交数据库 if (formContentBLL.Create(ref errors, model)) { try { List <Flow_StepModel> stepModelList = stepBLL.GetList(ref setNoPagerAscBySort, model.FormId); //查询步骤 int listCount = stepModelList.Count(); bool IsEnd = false; //循环表单的所有步骤 for (int i = 0; i < listCount; i++) { string nextStep = ""; Flow_StepModel stepModel = stepModelList[i]; //获得步骤对应的规则 List <Flow_StepRuleModel> stepRuleModelList = stepRuleBLL.GetList(stepModel.Id); //获取规则判断流转方向 foreach (Flow_StepRuleModel stepRuleModel in stepRuleModelList) { //获取需要判断的数值,比如请假天数 string val = new FlowHelper().GetFormAttrVal(stepRuleModel.AttrId, formModel, model); //有满足流程结束的条件,判断请假天数是否处于这个规则内 if (!JudgeVal(stepRuleModel.AttrId, val, stepRuleModel.Operator, stepRuleModel.Result)) { //如果符合规则,判断是否还有下一步 if (stepRuleModel.NextStep != "0") { //跳转后的下一步 for (int j = 0; j < listCount; j++) { //看看当前步骤是哪一步 if (stepModelList[j].Id == nextStep) { i = j;//跳到分支后的下一步,从这一步开始循环 continue; } } } else { IsEnd = true; continue; } } } #region 插入步骤 //插入步骤审核表 Flow_FormContentStepCheckModel stepCheckModel = new Flow_FormContentStepCheckModel(); stepCheckModel.Id = ResultHelper.NewId; stepCheckModel.ContentId = model.Id; stepCheckModel.StepId = stepModel.Id; stepCheckModel.State = (int)FlowStateEnum.Progress; stepCheckModel.StateFlag = false;//true此步骤审核完成 stepCheckModel.CreateTime = ResultHelper.NowTime; stepCheckModel.IsEnd = IsEnd; stepCheckModel.IsCustom = stepModel.FlowRule == (int)FlowRuleEnum.Customer ? true : false; if (stepCheckBLL.Create(ref errors, stepCheckModel))//新建步骤成功 { InsertChecker(model, i, stepModel, stepCheckModel); } if (IsEnd)//如果是最后一步就无需要下面继续了 { break; } #endregion } LogHandler.WriteServiceLog(GetUserId(), "Id" + model.Id + ",AttrA" + model.AttrA, "成功", "创建", "Flow_FormContent"); return(Json(JsonHandler.CreateMessage(1, Resource.InsertSucceed))); } catch (Exception ex) { //创建失败,删除表单 formContentBLL.Delete(ref errors, model.Id); return(Json(JsonHandler.CreateMessage(0, Resource.InsertFail + "流程发生异常,请联系管理员"))); } } else { string ErrorCol = errors.Error; LogHandler.WriteServiceLog(GetUserId(), "Id" + model.Id + ",AttrA" + model.AttrA + "," + ErrorCol, "失败", "创建", "Flow_FormContent"); return(Json(JsonHandler.CreateMessage(0, Resource.InsertFail + ErrorCol))); } } else { return(Json(JsonHandler.CreateMessage(0, Resource.InsertFail))); } }
public JsonResult Create(Flow_FormContentModel model) { model.Id = ResultHelper.NewId; model.CreateTime = ResultHelper.NowTime; model.UserId = GetUserId(); if (model != null && ModelState.IsValid) { if (formContentBLL.Create(ref errors, model)) { //当前的Form模版 Flow_FormModel formModel = formBLL.GetById(model.FormId); //创建成功后把步骤取出 List <Flow_StepModel> stepModelList = stepBLL.GetList(ref setNoPagerAscBySort, model.FormId); //查询步骤 bool IsEnd = false; foreach (Flow_StepModel stepModel in stepModelList) { List <Flow_StepRuleModel> stepRuleModelList = stepRuleBLL.GetList(stepModel.Id); //获取规则判断流转方向 foreach (Flow_StepRuleModel stepRuleModel in stepRuleModelList) { string val = new FlowHelper().GetFormAttrVal(stepRuleModel.AttrId, formModel, model); //有满足不流程结束的条件 if (!JudgeVal(stepRuleModel.AttrId, val, stepRuleModel.Operator, stepRuleModel.Result)) { if (stepRuleModel.NextStep != "0") { IsEnd = false; } } } //插入步骤审核表 Flow_FormContentStepCheckModel stepCheckModel = new Flow_FormContentStepCheckModel(); stepCheckModel.Id = ResultHelper.NewId; stepCheckModel.ContentId = model.Id; stepCheckModel.StepId = stepModel.Id; stepCheckModel.State = 2; //0不通过1通过2审核中 stepCheckModel.StateFlag = false; //true此步骤审核完成 stepCheckModel.CreateTime = ResultHelper.NowTime; stepCheckModel.IsEnd = IsEnd; //是否流程的最后一步 if (formContentStepCheckBLL.Create(ref errors, stepCheckModel)) //新建步骤成功 { //获得流转规则下的审核人员 List <string> userIdList = GetStepCheckMemberList(stepModel.Id, model.Id); if (userIdList.Count > 0) { foreach (string userId in userIdList) { //批量建立步骤审核人表 Flow_FormContentStepCheckStateModel stepCheckStateModel = new Flow_FormContentStepCheckStateModel(); stepCheckStateModel.Id = ResultHelper.NewId; stepCheckStateModel.StepCheckId = stepCheckModel.Id; stepCheckStateModel.UserId = userId; stepCheckStateModel.CheckFlag = 2; stepCheckStateModel.Reamrk = ""; stepCheckStateModel.TheSeal = ""; stepCheckStateModel.CreateTime = ResultHelper.NowTime; stepCheckStateBLL.Create(ref errors, stepCheckStateModel); } } } if (IsEnd)//如果是最后一步就无需要下面继续了 { break; } IsEnd = true; } LogHandler.WriteServiceLog(GetUserId(), "Id" + model.Id + ",AttrA" + model.AttrA, "成功", "创建", "Flow_FormContent"); return(Json(JsonHandler.CreateMessage(1, Suggestion.InsertSucceed))); } else { string ErrorCol = errors.Error; LogHandler.WriteServiceLog(GetUserId(), "Id" + model.Id + ",AttrA" + model.AttrA + "," + ErrorCol, "失败", "创建", "Flow_FormContent"); return(Json(JsonHandler.CreateMessage(0, Suggestion.InsertFail + ErrorCol))); } } else { return(Json(JsonHandler.CreateMessage(0, Suggestion.InsertFail))); } }
private async Task RunInternal(IProgress <ProgressReport> progress) { this.progress = progress; await Task.Run(() => { ItemWorker[] startDesignerItems = GetStartDesignerItems(); ItemWorker[] endDesignerItems = GetEndDesignerItems(); // Start starteritems foreach (ItemWorker item in startDesignerItems) { ExecuteDesignerItem(item); } while (true) { // Continously check if all items finished already List <ItemWorker> unfinishedItemWorkers = itemWorkers.Where(t => t.DesignerItem.State != ItemState.Stopped && t.DesignerItem.State != ItemState.Error && t.DesignerItem.State != ItemState.NotExecuted).ToList(); if (unfinishedItemWorkers.Count == 0) { if (RunCompleted != null) { RunCompleted(this, new EventArgs()); } break; } // Check if a new item can be started List <ItemWorker> finishedItems = itemWorkers.Where(t => t.DesignerItem.State == ItemState.Stopped || t.DesignerItem.State == ItemState.Error || t.DesignerItem.State == ItemState.NotExecuted).ToList(); foreach (ItemWorker itemWorker in unfinishedItemWorkers.Where(t => t.DesignerItem.State == ItemState.Initialized)) { // Initialize bool newItemCanBeStarted = true; // If not all incoming connections to the item are from finished items, the item may not be started IEnumerable <ConnectionBase> incomingConnections = FlowHelper.GetIncomingConnections(itemWorker.DesignerItem.ID, connectionList); foreach (ConnectionBase connection in incomingConnections) { if (finishedItems.Where(t => t.DesignerItem.ID == connection.SourceID).Count() == 0) { newItemCanBeStarted = false; } } if (newItemCanBeStarted == true) { // Check if all incoming connection allow an execution bool allowExecution_PreviousErrorTest = FlowHelper.AllowExecution_OnPreviousErrorTest(itemWorker, this.itemWorkers, this.connectionList); bool allowExecution_PreviousItemNotSuccessfulOnErrorlineTest = FlowHelper.AllowExecution_PreviousStepNotSuccessfulOnErrorlineTest(itemWorker, this.itemWorkers, this.connectionList); bool allowExecution_activeItem = itemWorker.Configuration.Status == StepExecutionStatus.Active; if (allowExecution_PreviousErrorTest && allowExecution_PreviousItemNotSuccessfulOnErrorlineTest && allowExecution_activeItem) { ExecuteDesignerItem(itemWorker); } else { DoNotExecuteDesignerItem(itemWorker); } } } System.Threading.Thread.Sleep(200); } this.runLog.EndTime = DateTime.Now; string serializedRunLog = ConfigurationSerializer.SerializeObject(runLog, new Type [] {}); ConfigurationFileHandler.SaveStringToFile("runLog.xml", this.runLog.RunLogPath, serializedRunLog); }); }
protected void ODS_FlowDetail_Inserting(object sender, ObjectDataSourceMethodEventArgs e) { flowDetail = (FlowDetail)e.InputParameters[0]; Flow flow = TheFlowMgr.LoadFlow(FlowCode, true); flowDetail.Flow = flow; //seq if (flowDetail.Sequence == 0) { int seqInterval = int.Parse(TheEntityPreferenceMgr.LoadEntityPreference(BusinessConstants.ENTITY_PREFERENCE_CODE_SEQ_INTERVAL).Value); flowDetail.Sequence = seqInterval + FlowHelper.GetMaxFlowSeq(flow); } Controls_TextBox tbItemCode = (Controls_TextBox)(this.FV_FlowDetail.FindControl("tbItemCode")); Controls_TextBox tbUom = (Controls_TextBox)(this.FV_FlowDetail.FindControl("tbUom")); if (tbItemCode != null && tbItemCode.Text.Trim() != string.Empty) { flowDetail.Item = TheItemMgr.LoadItem(tbItemCode.Text.Trim()); } if (tbUom != null && tbUom.Text.Trim() != string.Empty) { flowDetail.Uom = TheUomMgr.LoadUom(tbUom.Text.Trim()); } if (this.ModuleType == BusinessConstants.CODE_MASTER_FLOW_TYPE_VALUE_PROCUREMENT || this.ModuleType == BusinessConstants.CODE_MASTER_FLOW_TYPE_VALUE_CUSTOMERGOODS || this.ModuleType == BusinessConstants.CODE_MASTER_FLOW_TYPE_VALUE_SUBCONCTRACTING) { Controls_TextBox tbLocTo = (Controls_TextBox)this.FV_FlowDetail.FindControl("tbProcurementLocTo"); if (tbLocTo != null && tbLocTo.Text.Trim() != string.Empty) { flowDetail.LocationTo = TheLocationMgr.LoadLocation(tbLocTo.Text.Trim()); } if (this.ModuleType == BusinessConstants.CODE_MASTER_FLOW_TYPE_VALUE_PROCUREMENT || this.ModuleType == BusinessConstants.CODE_MASTER_FLOW_TYPE_VALUE_SUBCONCTRACTING) { DropDownList ddlBillSettleTerm = (DropDownList)this.FV_FlowDetail.FindControl("ddlBillSettleTerm"); if (ddlBillSettleTerm.SelectedIndex != -1) { if (ddlBillSettleTerm.SelectedValue == string.Empty) { flowDetail.BillSettleTerm = null; } else { flowDetail.BillSettleTerm = ddlBillSettleTerm.SelectedValue; } } com.Sconit.Control.CodeMstrDropDownList ddlBarCodeType = (com.Sconit.Control.CodeMstrDropDownList) this.FV_FlowDetail.FindControl("ddlBarCodeType"); if (ddlBarCodeType.SelectedIndex != -1) { flowDetail.BarCodeType = ddlBarCodeType.SelectedValue; } } } else if (this.ModuleType == BusinessConstants.CODE_MASTER_FLOW_TYPE_VALUE_DISTRIBUTION) { DropDownList ddlBillSettleTerm = (DropDownList)this.FV_FlowDetail.FindControl("ddlBillSettleTerm"); if (ddlBillSettleTerm.SelectedIndex != -1) { if (ddlBillSettleTerm.SelectedValue == string.Empty) { flowDetail.BillSettleTerm = null; } else { flowDetail.BillSettleTerm = ddlBillSettleTerm.SelectedValue; } } DropDownList ddlOddShipOption = (DropDownList)this.FV_FlowDetail.FindControl("ddlOddShipOption"); if (ddlOddShipOption.SelectedIndex != -1) { flowDetail.OddShipOption = ddlOddShipOption.SelectedValue; } Controls_TextBox tbLocFrom = (Controls_TextBox)this.FV_FlowDetail.FindControl("tbDistributionLocFrom"); if (tbLocFrom != null && tbLocFrom.Text.Trim() != string.Empty) { flowDetail.LocationFrom = TheLocationMgr.LoadLocation(tbLocFrom.Text.Trim()); } flowDetail.PackagingCode = ((System.Web.UI.HtmlControls.HtmlSelect) this.FV_FlowDetail.FindControl("tbPackagingCode")).Value; flowDetail.TransModeCode = ((System.Web.UI.HtmlControls.HtmlSelect) this.FV_FlowDetail.FindControl("tbTransModeCode")).Value; } else if (this.ModuleType == BusinessConstants.CODE_MASTER_FLOW_TYPE_VALUE_PRODUCTION) { Controls_TextBox tbBom = (Controls_TextBox)this.FV_FlowDetail.FindControl("tbBom"); if (tbBom != null && tbBom.Text.Trim() != string.Empty) { flowDetail.Bom = TheBomMgr.LoadBom(tbBom.Text.Trim()); } TextBox tbBatchSize = (TextBox)this.FV_FlowDetail.FindControl("tbBatchSize"); Controls_TextBox tbLocFrom = (Controls_TextBox)this.FV_FlowDetail.FindControl("tbProductionLocFrom"); if (tbBatchSize.Text.Trim() != string.Empty) { flowDetail.BatchSize = decimal.Parse(tbBatchSize.Text.Trim()); } if (tbLocFrom != null && tbLocFrom.Text.Trim() != string.Empty) { flowDetail.LocationFrom = TheLocationMgr.LoadLocation(tbLocFrom.Text.Trim()); } Controls_TextBox tbLocTo = (Controls_TextBox)this.FV_FlowDetail.FindControl("tbProductionLocTo"); if (tbLocTo != null && tbLocTo.Text.Trim() != string.Empty) { flowDetail.LocationTo = TheLocationMgr.LoadLocation(tbLocTo.Text.Trim()); } Controls_TextBox tbCustomer = (Controls_TextBox)this.FV_FlowDetail.FindControl("tbCustomer"); if (tbCustomer != null && tbCustomer.Text.Trim() != string.Empty) { flowDetail.Customer = TheCustomerMgr.LoadCustomer(tbCustomer.Text.Trim()); } com.Sconit.Control.CodeMstrDropDownList ddlBarCodeType = (com.Sconit.Control.CodeMstrDropDownList) this.FV_FlowDetail.FindControl("ddlBarCodeType"); if (ddlBarCodeType.SelectedIndex != -1) { flowDetail.BarCodeType = ddlBarCodeType.SelectedValue; } } else if (this.ModuleType == BusinessConstants.CODE_MASTER_FLOW_TYPE_VALUE_TRANSFER) { DropDownList ddlOddShipOption = (DropDownList)this.FV_FlowDetail.FindControl("ddlOddShipOption"); if (ddlOddShipOption.SelectedIndex != -1) { flowDetail.OddShipOption = ddlOddShipOption.SelectedValue; } Controls_TextBox tbLocFrom = (Controls_TextBox)this.FV_FlowDetail.FindControl("tbTransferLocFrom"); if (tbLocFrom != null && tbLocFrom.Text.Trim() != string.Empty) { flowDetail.LocationFrom = TheLocationMgr.LoadLocation(tbLocFrom.Text.Trim()); } Controls_TextBox tbLocTo = (Controls_TextBox)this.FV_FlowDetail.FindControl("tbTransferLocTo"); if (tbLocTo != null && tbLocTo.Text.Trim() != string.Empty) { flowDetail.LocationTo = TheLocationMgr.LoadLocation(tbLocTo.Text.Trim()); } } flowDetail.CreateDate = DateTime.Now; flowDetail.CreateUser = this.CurrentUser; flowDetail.LastModifyDate = DateTime.Now; flowDetail.LastModifyUser = this.CurrentUser; flowDetail.Version = 0; }
protected void Page_Load(object sender, EventArgs e) { this.lTitle.InnerText = FlowHelper.GetFlowRoutingLabel(this.ModuleType); }
private void dotbFlow_TextChanged(string flowCode) { try { Flow currentFlow = TheFlowMgr.LoadFlow(flowCode, true, true); if (currentFlow != null) { this.FlowCode = currentFlow.Code; this.FlowType = currentFlow.Type; this.cbReleaseOrder.Checked = currentFlow.IsAutoRelease; this.cbPrintOrder.Checked = currentFlow.NeedPrintOrder; if (this.ScheduleDate.HasValue) { if (isWinTime) { DateTime winTime = FlowHelper.GetWinTime(currentFlow, this.ScheduleDate.Value); this.tbWinTime.Text = winTime.ToString("yyyy-MM-dd HH:mm"); double leadTime = currentFlow.LeadTime.HasValue ? (double)currentFlow.LeadTime.Value : 0; this.tbStartTime.Text = winTime.AddHours(-leadTime).ToString("yyyy-MM-dd HH:mm"); } else { double leadTime = currentFlow.LeadTime.HasValue ? (double)currentFlow.LeadTime.Value : 0; DateTime winTime = FlowHelper.GetWinTime(currentFlow, this.ScheduleDate.Value.AddHours(leadTime)); this.tbWinTime.Text = winTime.ToString("yyyy-MM-dd HH:mm"); this.tbStartTime.Text = winTime.AddHours(-leadTime).ToString("yyyy-MM-dd HH:mm"); } } this.hfLeadTime.Value = currentFlow.LeadTime.ToString(); this.hfEmTime.Value = currentFlow.EmTime.ToString(); // InitDetailParamater(orderHead); if (currentFlow.Type == BusinessConstants.CODE_MASTER_ORDER_TYPE_VALUE_PRODUCTION) { this.ltlShift.Text = "${MasterData.WorkCalendar.Shift}:"; this.ltlShift.Visible = true; this.ucShift.Visible = true; //this.tbScheduleTime.Visible = false; this.BindShift(currentFlow); } else if (!enableDiscon && (currentFlow.Type == BusinessConstants.CODE_MASTER_FLOW_TYPE_VALUE_DISTRIBUTION || currentFlow.Type == BusinessConstants.CODE_MASTER_FLOW_TYPE_VALUE_SUBCONCTRACTING || currentFlow.Type == BusinessConstants.CODE_MASTER_FLOW_TYPE_VALUE_PROCUREMENT)) { this.ltlShift.Visible = true; this.ltlShift.Text = "${MasterData.Order.OrderHead.SettleTime}:"; this.ucShift.Visible = false; this.tbSettleTime.Visible = true; //this.tbScheduleTime.Visible = true; this.tbSettleTime.Text = this.tbWinTime.Text; } else { this.ltlShift.Visible = false; this.ucShift.Visible = false; this.tbSettleTime.Visible = false; } IList <MrpShipPlanView> mrpShipPlanViews = TheMrpShipPlanViewMgr.GetMrpShipPlanViews((isFlow ? this.flowOrLoc : null), (!isFlow ? this.flowOrLoc : null), this.itemCode, this.EffDate, null, null); DetachedCriteria criteria = DetachedCriteria.For <ExpectTransitInventoryView>(); criteria.Add(Expression.Eq("EffectiveDate", this.EffDate)); IList <ExpectTransitInventoryView> transitInventoryViews = this.TheCriteriaMgr.FindAll <ExpectTransitInventoryView>(criteria); ScheduleView scheduleView = TheMrpShipPlanViewMgr.TransferMrpShipPlanViews2ScheduleView(mrpShipPlanViews, transitInventoryViews, this.rblFlowOrLoc.SelectedValue, this.rblDateType.SelectedValue); string qty = "Qty" + ColumnNum.ToString(); string actQty = "ActQty" + ColumnNum.ToString(); string requiredQty = "RequiredQty" + ColumnNum.ToString(); IList <ScheduleBody> scheduleBodyList = new List <ScheduleBody>(); foreach (ScheduleBody body in scheduleView.ScheduleBodys) { if (currentFlow.FlowDetails != null && currentFlow.FlowDetails.Count > 0) { var p = from det in currentFlow.FlowDetails where det.Item.Code == body.Item select det; if (p != null && p.Count() > 0) { PropertyInfo qtyProp = typeof(ScheduleBody).GetProperty(qty); PropertyInfo actQtyProp = typeof(ScheduleBody).GetProperty(actQty); PropertyInfo requiredQtyProp = typeof(ScheduleBody).GetProperty(requiredQty); body.Qty0 = (decimal)qtyProp.GetValue(body, null); body.ActQty0 = (decimal)actQtyProp.GetValue(body, null); body.RequiredQty0 = (decimal)requiredQtyProp.GetValue(body, null); scheduleBodyList.Add(body); } } } this.GV_Order.DataSource = scheduleBodyList; this.GV_Order.DataBind(); } } catch (BusinessErrorException ex) { this.ShowErrorMessage(ex); } }
public MatlController(NHibernate.ISession session, IMaterialFactory materialFactory, FlowHelper flowHelper, PalletizationHelper palletizationHelper, OpHelper opHelper, ILogger logger) { _logger = logger; _materialFactory = materialFactory; _opHelper = opHelper; _flowHelper = flowHelper; _palletizationHelper = palletizationHelper; _session = session; }
protected void Page_Load(object sender, EventArgs e) { this.lblFlow.Text = FlowHelper.GetFlowLabel(this.ModuleType); this.tbFlow.ServiceMethod = FlowHelper.GetFlowServiceMethod(this.ModuleType); this.tbFlow.ServiceParameter = "string:" + this.CurrentUser.Code; }
public ActionResult Create() { ViewBag.TypeList = FlowHelper.GetTypeSelectList("设备类型"); ViewBag.OwnerList = FlowHelper.GetTypeSelectList("业主方"); return(View()); }
/// <summary> /// This method gets called by the runtime. Use this method to add services to the container. /// </summary> /// <param name="services">The <see cref="IServiceCollection"/> specifies the contract for a collection of service descriptors.</param> /// <seealso cref="IStatePropertyAccessor{T}"/> /// <seealso cref="https://docs.microsoft.com/en-us/aspnet/web-api/overview/advanced/dependency-injection"/> /// <seealso cref="https://docs.microsoft.com/en-us/azure/bot-service/bot-service-manage-channels?view=azure-bot-service-4.0"/> public void ConfigureServices(IServiceCollection services) { var secretKey = Configuration.GetSection("botFileSecret")?.Value; var botFilePath = Configuration.GetSection("botFilePath")?.Value; if (!File.Exists(botFilePath)) { throw new FileNotFoundException($"The .bot configuration file was not found. botFilePath: {botFilePath}"); } // Loads .bot configuration file and adds a singleton that your Bot can access through dependency injection. BotConfiguration botConfig = null; try { botConfig = BotConfiguration.Load(botFilePath, secretKey); } catch { var msg = @"Error reading bot file. Please ensure you have valid botFilePath and botFileSecret set for your environment. - You can find the botFilePath and botFileSecret in the Azure App Service application settings. - If you are running this bot locally, consider adding a appsettings.json file with botFilePath and botFileSecret. - See https://aka.ms/about-bot-file to learn more about .bot file its use and bot configuration. "; throw new InvalidOperationException(msg); } services.AddSingleton(sp => botConfig ?? throw new InvalidOperationException($"The .bot configuration file could not be loaded. botFilePath: {botFilePath}")); // Retrieve current endpoint. var environment = _isProduction ? "production" : "development"; var service = botConfig.Services.FirstOrDefault(s => s.Type == "endpoint" && s.Name == environment); if (service == null && _isProduction) { // Attempt to load development environment service = botConfig.Services.Where(s => s.Type == "endpoint" && s.Name == "development").FirstOrDefault(); } if (!(service is EndpointService endpointService)) { throw new InvalidOperationException($"The .bot file does not contain an endpoint with name '{environment}'."); } // Memory Storage is for local bot debugging only. When the bot // is restarted, everything stored in memory will be gone. IStorage dataStore = new MemoryStorage(); // For production bots use the Azure Blob or // Azure CosmosDB storage providers. For the Azure // based storage providers, add the Microsoft.Bot.Builder.Azure // Nuget package to your solution. That package is found at: // https://www.nuget.org/packages/Microsoft.Bot.Builder.Azure/ // Un-comment the following lines to use Azure Blob Storage // // Storage configuration name or ID from the .bot file. // const string StorageConfigurationId = "<STORAGE-NAME-OR-ID-FROM-BOT-FILE>"; // var blobConfig = botConfig.FindServiceByNameOrId(StorageConfigurationId); // if (!(blobConfig is BlobStorageService blobStorageConfig)) // { // throw new InvalidOperationException($"The .bot file does not contain an blob storage with name '{StorageConfigurationId}'."); // } // // Default container name. // const string DefaultBotContainer = "<DEFAULT-CONTAINER>"; // var storageContainer = string.IsNullOrWhiteSpace(blobStorageConfig.Container) ? DefaultBotContainer : blobStorageConfig.Container; // IStorage dataStore = new Microsoft.Bot.Builder.Azure.AzureBlobStorage(blobStorageConfig.ConnectionString, storageContainer); // Create and add conversation state. var conversationState = new ConversationState(dataStore); services.AddSingleton(conversationState); services.AddBot <BasicEchoBotBot>(options => { options.CredentialProvider = new SimpleCredentialProvider(endpointService.AppId, endpointService.AppPassword); // Catches any errors that occur during a conversation turn and logs them to currently // configured ILogger. ILogger logger = _loggerFactory.CreateLogger <BasicEchoBotBot>(); options.OnTurnError = async(context, exception) => { logger.LogError($"Exception caught : {exception}"); await context.SendActivityAsync("Sorry, it looks like something went wrong."); }; }); List <Flow> flows = FlowHelper.InitFlow(File.ReadAllText(@"flows.json", Encoding.UTF8)); }
public JsonResult Create(Flow_FormContentModel model) { //当前的Form模版 Flow_FormModel formModel = formBLL.GetById(model.FormId); //初始化部分数据 model.Id = ResultHelper.NewId; model.CreateTime = ResultHelper.NowTime; model.UserId = GetUserId(); model.Title = formModel.Name; model.TimeOut = DateTime.Now.AddDays(30); if (model != null && ModelState.IsValid) { if (formContentBLL.Create(ref errors, model)) { //创建成功后把步骤取出 List <Flow_StepModel> stepModelList = stepBLL.GetList(ref setNoPagerAscBySort, model.FormId); //查询步骤 int listCount = stepModelList.Count(); bool IsEnd = false; for (int i = 0; i < listCount; i++) { string nextStep = ""; Flow_StepModel stepModel = stepModelList[i]; List <Flow_StepRuleModel> stepRuleModelList = stepRuleBLL.GetList(stepModel.Id); //获取规则判断流转方向 foreach (Flow_StepRuleModel stepRuleModel in stepRuleModelList) { string val = new FlowHelper().GetFormAttrVal(stepRuleModel.AttrId, formModel, model); //有满足流程结束的条件 if (!JudgeVal(stepRuleModel.AttrId, val, stepRuleModel.Operator, stepRuleModel.Result)) { if (stepRuleModel.NextStep != "0") { //获得跳转的步骤 nextStep = stepRuleModel.NextStep; //跳到跳转后的下一步 for (int j = 0; j < listCount; j++) { if (stepModelList[j].Id == nextStep) { i = j;//跳到分支后的下一步 } } } else { //nextStep=0流程结束 IsEnd = true; } } } #region 插入步骤 //插入步骤审核表 Flow_FormContentStepCheckModel stepCheckModel = new Flow_FormContentStepCheckModel(); stepCheckModel.Id = ResultHelper.NewId; stepCheckModel.ContentId = model.Id; stepCheckModel.StepId = stepModel.Id; stepCheckModel.State = (int)FlowStateEnum.Progress; stepCheckModel.StateFlag = false;//true此步骤审核完成 stepCheckModel.CreateTime = ResultHelper.NowTime; if (nextStep != "" && nextStep != "0") { stepCheckModel.IsEnd = (i == listCount) ? true : IsEnd;//是否流程的最后一步 } else { stepCheckModel.IsEnd = (i == listCount - 1) ? true : IsEnd;//是否流程的最后一步 } stepCheckModel.IsCustom = stepModel.FlowRule == (int)FlowRuleEnum.Customer ? true : false; if (stepCheckBLL.Create(ref errors, stepCheckModel))//新建步骤成功 { InsertChecker(model, i, stepModel, stepCheckModel); } #endregion #region 插入分支步骤 if (nextStep != "" && nextStep != "0") { //不是最后一个审核人 if (listCount < 1 || i != listCount - 1) { IsEnd = false; } else { IsEnd = true; } stepCheckModel = new Flow_FormContentStepCheckModel(); stepCheckModel.Id = ResultHelper.NewId; stepCheckModel.ContentId = model.Id; stepCheckModel.StepId = stepModel.Id; stepCheckModel.State = (int)FlowStateEnum.Progress; stepCheckModel.StateFlag = false; //true此步骤审核完成 stepCheckModel.CreateTime = ResultHelper.NowTime; stepCheckModel.IsEnd = IsEnd; //是否流程的最后一步 stepCheckModel.IsCustom = stepModel.FlowRule == (int)FlowRuleEnum.Customer ? true : false; if (stepCheckBLL.Create(ref errors, stepCheckModel))//新建步骤成功 { InsertChecker(model, i, stepModel, stepCheckModel); } } #endregion if (IsEnd)//如果是最后一步就无需要下面继续了 { break; } IsEnd = true; } LogHandler.WriteServiceLog(GetUserId(), "Id" + model.Id + ",AttrA" + model.AttrA, "成功", "创建", "Flow_FormContent"); return(Json(JsonHandler.CreateMessage(1, Resource.InsertSucceed))); } else { string ErrorCol = errors.Error; LogHandler.WriteServiceLog(GetUserId(), "Id" + model.Id + ",AttrA" + model.AttrA + "," + ErrorCol, "失败", "创建", "Flow_FormContent"); return(Json(JsonHandler.CreateMessage(0, Resource.InsertFail + ErrorCol))); } } else { return(Json(JsonHandler.CreateMessage(0, Resource.InsertFail))); } }
public ActionResult Create() { ViewBag.ServiceList = FlowHelper.GetTypeSelectList("服务类型"); ViewBag.DeployTypeList = GetDeployTypeList(); return(View()); }