protected void Application_Start() { objFileLog.WriteLine(LogType.Info, "App start", "Global.asax", "App_Start", string.Empty); XmlConfigurator.Configure(); log.Info("Vibrant Web Application started."); ViewEngines.Engines.Clear(); ViewEngines.Engines.Add(new RazorViewEngine()); AreaRegistration.RegisterAllAreas(); WebApiConfig.Register(GlobalConfiguration.Configuration); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); AuthConfig.RegisterAuth(); //timer.AutoReset = true; //timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed); //timer.Enabled = true; var SEM = new SEMController(); SEM.SetTimerValue(); //Resource Allocation Auto mail var resource = new ResourceController(); // resource.SetTimerValue(); var travel = new TravelController(); travel.SetTimerValue(); //Confirmation Process Auto mail var Confirmation = new ConfirmationProcessController(); Confirmation.SetTimerValue(); Application["LeaveBalanceWF"] = ""; Application["AttendanceWF"] = ""; Application["LeaveUpLoadWF"] = ""; Application["WokflowRuntime"] = ""; var workflowRuntime = Application["WokflowRuntime"] as WorkflowRuntime; if (workflowRuntime == null) { workflowRuntime = new WorkflowRuntime(); workflowRuntime.WorkflowIdled += workflowRuntime_WorkflowIdled; workflowRuntime.WorkflowLoaded += workflowRuntime_WorkflowLoaded; workflowRuntime.WorkflowUnloaded += workflowRuntime_WorkflowUnloaded; workflowRuntime.WorkflowPersisted += workflowRuntime_WorkflowPersisted; workflowRuntime.WorkflowCompleted += delegate { }; workflowRuntime.WorkflowTerminated += delegate(object sender1, WorkflowTerminatedEventArgs e1) { Debug.WriteLine(e1.Exception.Message); }; // Add the Persistance Service //WorkflowPersistenceService workflowPersistanceService = new SqlWorkflowPersistenceService(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString); //workflowRuntime.AddService(workflowPersistanceService); WorkflowSchedulerService workflowSchedulerService = new DefaultWorkflowSchedulerService(); workflowRuntime.AddService(workflowSchedulerService); //System.Workflow.Runtime.Hosting. SqlTrackingService trackingService = new SqlTrackingService(connectionString2); //System.Workflow.Runtime.Tracking.SqlTrackingService workflowTrackingService = new System.Workflow.Runtime.Tracking.SqlTrackingService(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString); //workflowRuntime.AddService(workflowTrackingService); // Add the External Data Exchange Service var dataExchangeService = new ExternalDataExchangeService(); workflowRuntime.AddService(dataExchangeService); LeaveBalanceService objLeaveBalanceService; LeaveDetailsService objLeaveDetailsService; OutOfOfficeService objOutOfOfficeService; CompensationService objCompensationService; SignInSignOutService objSignInSignOutService; AttendanceCheckerService objAttendanceCheckerService; LeaveUploadService objLeaveUploadService; // Add a new instance of the LeaveBalanceService to the External Data Exchange Service objLeaveBalanceService = new LeaveBalanceService(); objLeaveDetailsService = new LeaveDetailsService(); objOutOfOfficeService = new OutOfOfficeService(); objCompensationService = new CompensationService(); objSignInSignOutService = new SignInSignOutService(); objAttendanceCheckerService = new AttendanceCheckerService(); objLeaveUploadService = new LeaveUploadService(); //Adding our services to ExternalDataExchangeService dataExchangeService.AddService(objLeaveBalanceService); dataExchangeService.AddService(objLeaveDetailsService); dataExchangeService.AddService(objOutOfOfficeService); dataExchangeService.AddService(objCompensationService); dataExchangeService.AddService(objSignInSignOutService); dataExchangeService.AddService(objAttendanceCheckerService); dataExchangeService.AddService(objLeaveUploadService); // Start the Workflow services //workflowRuntime.UnloadOnIdle = true; workflowRuntime.StartRuntime(); Application["WokflowRuntime"] = workflowRuntime; //System.Web.HttpContext.Current.Cache["WokflowRuntime"]=workflowRuntime; //System.Web.HttpContext.Current.Cache["WokflowRuntime"]=workflowRuntime; objFileLog.WriteLine(LogType.Info, "App start finished", "Global.asax", "App_Start", string.Empty); } }
protected void grvSISOApproval_RowUpdating(object sender, GridViewUpdateEventArgs e) { try { Label lblDate = (Label)grvSISOApproval.Rows[e.RowIndex].FindControl("lblDate"); string strDate = lblDate.Text.ToString(); //for workflow... Label lblWorkflowID = ((Label)grvSISOApproval.Rows[e.RowIndex].FindControl("lblSignInSignOutWFID")); // To write code if "" then dont fill value in model for WorkflowID if (lblWorkflowID.Text != "") { objSignInSignOutModel.WorkflowID = new Guid(lblWorkflowID.Text); } //Status DropDownList ddlStatus1 = (DropDownList)grvSISOApproval.Rows[e.RowIndex].FindControl("ddlStatusdEdit"); objSignInSignOutModel.StatusID = Convert.ToInt32(ddlStatus1.SelectedValue); //InTime DropDownList ddlSignInTimeH1 = (DropDownList)grvSISOApproval.Rows[e.RowIndex].FindControl("ddlInTimeHours"); DropDownList ddlSignInTimeM1 = (DropDownList)grvSISOApproval.Rows[e.RowIndex].FindControl("ddlInTimeMins"); string strInTime = ddlSignInTimeH1.SelectedValue.ToString() + ":" + ddlSignInTimeM1.SelectedValue.ToString() + ":00"; objSignInSignOutModel.SignInTime = Convert.ToDateTime(strInTime + " " + strDate.ToString()); //Out Time Label lblOutDate = (Label)grvSISOApproval.Rows[e.RowIndex].FindControl("lblOutDate"); string strOutDate = lblOutDate.Text.ToString(); Label lblOutTimeH1 = (Label)grvSISOApproval.Rows[e.RowIndex].FindControl("lblSignOutTime"); if (lblOutTimeH1.Text.ToString() != "") { DropDownList ddlOutTimeHours = (DropDownList)grvSISOApproval.Rows[e.RowIndex].FindControl("ddlOutTimeHours"); DropDownList ddlOutTimeMinutes = (DropDownList)grvSISOApproval.Rows[e.RowIndex].FindControl("ddlOutTimeMins"); string strOutTime = ddlOutTimeHours.SelectedValue.ToString() + ":" + ddlOutTimeMinutes.SelectedValue.ToString() + ":00"; objSignInSignOutModel.SignOutTime = Convert.ToDateTime(strOutTime + " " + strOutDate.ToString()); } else { objSignInSignOutModel.SignOutTime = Convert.ToDateTime(null); } //Approver's comments TextBox txtApproversComments = (TextBox)grvSISOApproval.Rows[e.RowIndex].FindControl("txtApproversComments"); objSignInSignOutModel.ApproverComments = txtApproversComments.Text.ToString(); //Id Label lblID = (Label)grvSISOApproval.Rows[e.RowIndex].FindControl("lblID"); objSignInSignOutModel.SignInSignOutID = Convert.ToInt32(lblID.Text); if ((objSignInSignOutModel.SignOutTime < objSignInSignOutModel.SignInTime) && (lblOutTimeH1.Text.ToString() != "")) { lblErrorMess.Text = "Sign Out Time cannot be smaller than the Sign In Time"; } else { lblErrorMess.Text = ""; UpdateStatus(objSignInSignOutModel); // StartWorkflow if (objSignInSignOutModel.StatusID == 2) { lblSuccess.Text = "Record updated successfully."; UpdateEmployeeLeaveAndComp(); try { WorkflowRuntime wr = (WorkflowRuntime)Application["WokflowRuntime"]; if (objSignInSignOutModel.WorkflowID != null || objSignInSignOutModel.WorkflowID.ToString() != "") { WorkflowInstance wi = wr.GetWorkflow(objSignInSignOutModel.WorkflowID); wi.Resume(); SignInSignOutService objSignInSignOutService = (SignInSignOutService)wr.GetService(typeof(SignInSignOutService)); objSignInSignOutService.RaiseApproveEvent(wi.InstanceId); } } catch (V2Exceptions) { try { Response.Redirect("SignInSignOutApproval.aspx"); } catch (System.Threading.ThreadAbortException ex) { throw; } } catch (System.Exception) { try { Response.Redirect("SignInSignOutApproval.aspx"); } catch (System.Threading.ThreadAbortException ex) { throw; } } } if (objSignInSignOutModel.StatusID == 3) { lblSuccess.Text = "Record updated successfully."; try { WorkflowRuntime wr = (WorkflowRuntime)Application["WokflowRuntime"]; if (objSignInSignOutModel.WorkflowID != null || objSignInSignOutModel.WorkflowID.ToString() != "") { WorkflowInstance wi = wr.GetWorkflow(objSignInSignOutModel.WorkflowID); wi.Resume(); SignInSignOutService objSignInSignOutService = (SignInSignOutService)wr.GetService(typeof(SignInSignOutService)); objSignInSignOutService.RaiseRejectEvent(wi.InstanceId); } } catch (V2Exceptions) { try { Response.Redirect("SignInSignOutApproval.aspx"); } catch (System.Threading.ThreadAbortException ex) { throw; } } catch (System.Exception) { try { Response.Redirect("SignInSignOutApproval.aspx"); } catch (System.Threading.ThreadAbortException ex) { throw; } } } // End WorkFlow grvSISOApproval.EditIndex = -1; Response.Redirect("SignInSignOutApproval.aspx"); } } catch (System.Threading.ThreadAbortException ex) { throw; } catch (V2Exceptions ex) { throw; } catch (System.Exception ex) { FileLog objFileLog = FileLog.GetLogger(); objFileLog.WriteLine(LogType.Error, ex.Message, "SignInSignOutApproval.aspx.cs", "grvSISOApproval_RowUpdating", ex.StackTrace); throw new V2Exceptions(ex.ToString(), ex); } }