Ejemplo n.º 1
0
        static void Main()
        {
            // Start the engine.
            using (WorkflowRuntime workflowRuntime = new WorkflowRuntime())
            {
                workflowRuntime.StartRuntime();

                // Load the workflow type.
                Type type = typeof(SuspendAndTerminateWorkflow);

                workflowRuntime.WorkflowCompleted  += OnWorkflowCompletion;
                workflowRuntime.WorkflowSuspended  += OnWorkflowSuspend;
                workflowRuntime.WorkflowResumed    += OnWorkflowResume;
                workflowRuntime.WorkflowTerminated += OnWorkflowTerminate;

                WorkflowInstance workflowInstance = workflowRuntime.CreateWorkflow(type);
                workflowInstance.Start();

                waitHandle.WaitOne();

                if (workflowSuspended)
                {
                    Console.WriteLine("\r\nResuming Workflow Instance");
                    workflowInstance.Resume();
                    waitHandle.WaitOne();
                }

                workflowRuntime.StopRuntime();
            }
        }
Ejemplo n.º 2
0
 protected void btnLUStop_Click(object sender, EventArgs e)
 {
     try
     {
         WorkflowRuntime  workflowRuntime = (WorkflowRuntime)Application["WokflowRuntime"];
         WorkflowInstance instance        = workflowRuntime.GetWorkflow(new Guid(Application["LeaveUpLoadWF"].ToString()));
         instance.Resume();
         objLeaveUploadService = (LeaveUploadService)workflowRuntime.GetService(typeof(LeaveUploadService));
         objLeaveUploadService.RaiseStopEvent(instance.InstanceId);
         Application["LeaveUpLoadWF"]    = "";
         btnLUStart.Enabled              = true;
         btnLUStop.Enabled               = false;
         btnLURefreshLeaveCredit.Enabled = false;
     }
     catch (V2Exceptions ex)
     {
         throw;
     }
     catch (System.Exception ex)
     {
         Application["LeaveUpLoadWF"] = "";
         FileLog objFileLog = FileLog.GetLogger();
         objFileLog.WriteLine(LogType.Error, ex.Message, "LeaveApplicationForm.aspx.cs", "StartWorkflow", ex.StackTrace);
         throw new V2Exceptions(ex.ToString(), ex);
     }
 }
Ejemplo n.º 3
0
        /// <summary>
        /// Resumes asynchronous execution of
        /// the current workflow.
        /// </summary>
        public void BeginResumeWorkflow()
        {
            InitializeRuntime();

            if (!_workflowRuntime.IsStarted)
            {
                _workflowRuntime.StartRuntime();
            }

            // execute workflow
            _instance.Resume();
            _status = WorkflowStatus.Executing;
        }
        /// <summary>
        /// Resumes the specified context.
        /// </summary>
        /// <param name="context">The context.</param>
        protected virtual void Resume(BusinessContext context)
        {
            // Load WorkflowInstanceEntity
            WorkflowInstanceEntity wf = (WorkflowInstanceEntity)BusinessManager.Load(WorkflowInstanceEntity.ClassName, context.GetTargetPrimaryKeyId().Value);

            // Check Wf State
            if (wf.State != (int)BusinessProcessState.Suspended)
            {
                throw new InvalidOperationException();
            }

            WorkflowInstance instance = GlobalWorkflowRuntime.WorkflowRuntime.GetWorkflow((Guid)wf.PrimaryKeyId.Value);

            instance.Resume();
            GlobalWorkflowRuntime.RunWorkflow(instance);

            //wf.State = (int)BusinessProcessState.Active;
            //BusinessManager.Update(wf);
        }
Ejemplo n.º 5
0
        void container1()
        {
            // Load the workflow type.
            Type type = typeof(SuspendAndTerminateWorkflow);

            workflowInstance = workflowRuntime.CreateWorkflow(type);

            //<snippet170>
            workflowRuntime.WorkflowSuspended += OnWorkflowSuspend;
            //</snippet170>
            //<snippet171>
            workflowRuntime.WorkflowResumed += OnWorkflowResume;
            //</snippet171>

            //<snippet172>
            if (workflowSuspended)
            {
                Console.WriteLine("\r\nResuming Workflow Instance");
                workflowInstance.Resume();
                waitHandle.WaitOne();
            }
            //</snippet172>
        }
Ejemplo n.º 6
0
 protected void btnOnDemandAttendencCheck_Click(object sender, EventArgs e)
 {
     try
     {
         WorkflowRuntime  workflowRuntime = (WorkflowRuntime)Application["WokflowRuntime"];
         WorkflowInstance instance        = workflowRuntime.GetWorkflow(new Guid(Application["AttendanceWF"].ToString()));
         instance.Resume();
         objAttendanceCheckerService = (AttendanceCheckerService)workflowRuntime.GetService(typeof(AttendanceCheckerService));
         objAttendanceCheckerService.RaiseOnDemandAttendanceCheckEvent(instance.InstanceId);
         GetWorkFlowStatus();
     }
     catch (V2Exceptions ex)
     {
         throw;
     }
     catch (System.Exception ex)
     {
         Application["AttendanceWF"] = "";
         FileLog objFileLog = FileLog.GetLogger();
         objFileLog.WriteLine(LogType.Error, ex.Message, "LeaveApplicationForm.aspx.cs", "StartWorkflow", ex.StackTrace);
         throw new V2Exceptions(ex.ToString(), ex);
     }
 }
        public void ResumeShouldResume()
        {
            // Arrange
            using (var testdb = new SqlWorkflowInstanceStoreTest())
            {
                var view = new TestWorkflowView(testdb.CreateInstanceStore());
                var model = new WorkflowModel(view);
                var wi = new WorkflowInstance(model);
                wi.New();

                // Act
                wi.Resume(StateTrigger.T1);

                // Assert
                Assert.AreEqual(StateMachineExample.State2, wi.StateTracker.CurrentState);
            }
        }
Ejemplo n.º 8
0
        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);
            }
        }
Ejemplo n.º 9
0
        protected void gvCompensationApprovals_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            try
            {
                GridViewRow row = gvCompensationApprovals.Rows[e.RowIndex];

                Label lblTMmember = row.FindControl("lblEditUserID") as Label;

                objCompensationModel.UserID = Convert.ToInt32(lblTMmember.Text.ToString());

                Label lblEditCompensationID = row.FindControl("lblEditCompensationID") as Label;
                objCompensationModel.CompensationID = Convert.ToInt32(lblEditCompensationID.Text);

                Label lblCompensationWFID = row.FindControl("lblCompensationWFID") as Label;
                if (lblCompensationWFID.Text != "")
                {
                    objCompensationModel.WorkFlowID = new Guid(lblCompensationWFID.Text);
                }

                Label lblgrvEditUserName = row.FindControl("lblgrvEditUserName") as Label;

                TextBox txtEditAppliedFor = row.FindControl("txtgrvAppliedFor") as TextBox;

                DropDownList ddlStatusID = row.FindControl("ddlgrvStatusName") as DropDownList;
                objCompensationModel.StatusID = Convert.ToInt32(ddlStatusID.SelectedValue);
                if (ddlStatusID.Visible == false)
                {
                    WfApprovedLocked = true;
                }

                Label lblEditgrvReason = row.FindControl("lblEditgrvReason") as Label;

                objCompensationModel.Resason = lblEditgrvReason.Text.Trim();

                TextBox ApproverComments = row.FindControl("txtgrvApproverComments") as TextBox;
                objCompensationModel.ApproverComments = Convert.ToString(ApproverComments.Text.ToString());

                objCompensationModel.RequestedOn = Convert.ToDateTime(DateTime.Now.ToShortDateString());

                objCompensationModel.CompensationTo = Convert.ToDateTime(txtEditAppliedFor.Text.Trim());

                objLeaveDeatilsModel.UserID = Convert.ToInt32(lblTMmember.Text.ToString());
                //Getting All the Holidays Details
                //dsHolidaysList = objHolidayBOL.bindData();
                objHolidayModel.UserID    = objCompensationModel.UserID;
                objHolidayModel.StartDate = Convert.ToDateTime(txtEditAppliedFor.Text.Trim());
                objHolidayModel.EndDate   = Convert.ToDateTime(txtEditAppliedFor.Text.Trim());
                dsHolidaysList            = objHolidayBOL.bindHolidaysForLeaveApprovals(objHolidayModel);

                //For Getting ConfigDate from Database
                dsConfigItem = objCompensationBOL.GetCompensationDetails(objCompensationModel);
                ConfigDate   = Convert.ToDateTime(dsConfigItem.Tables[1].Rows[0]["ConfigItemValue"].ToString());

                FromDate = Convert.ToDateTime(txtEditAppliedFor.Text.Trim());
                Boolean isCompLeaveApproved = false;
                rowsAffected = objCompensationBOL.CheckSignInForCompensation(objCompensationModel);

                objRosterPlanningModel.UserId = Convert.ToInt32(lblTMmember.Text.ToString());
                dsEmployeeRole = ObjRosterPlanningBOL.GetEmployeeRole(objRosterPlanningModel);
                foreach (DataRow rowRole in dsEmployeeRole.Tables[0].Rows)
                {
                    if (rowRole["RoleName"].ToString().Equals("Shift"))
                    {
                        isShiftEmployee = true;
                        break;
                    }
                }
                if (rowsAffected > 0)
                {
                    if (!isShiftEmployee)
                    {
                        // This is checking the total list of holiday in current year provided by V2.
                        for (int k = 0; k < dsHolidaysList.Tables[0].Rows.Count; k++)
                        {
                            if (FromDate.ToString() == dsHolidaysList.Tables[0].Rows[k]["HolidayDate"].ToString())
                            {
                                isCompLeaveApproved = true;
                                break;
                            }
                        }

                        // This is to check whether the working day is a WeekDay.
                        if (FromDate.DayOfWeek.ToString() == "Saturday" || FromDate.DayOfWeek.ToString() == "Sunday")
                        {
                            isCompLeaveApproved = true;
                        }
                    }
                    else
                    {
                        objRosterPlanningModel.FromDate = Convert.ToDateTime(FromDate);
                        objRosterPlanningModel.ToDate   = Convert.ToDateTime(FromDate);

                        dsEmployeeShiftDetail = ObjRosterPlanningBOL.GetEmployeeShiftDetail(objRosterPlanningModel);
                        for (int k = 0; k < dsEmployeeShiftDetail.Tables[1].Rows.Count; k++)
                        {
                            if (FromDate.ToString() == dsEmployeeShiftDetail.Tables[1].Rows[k]["HolidayDate"].ToString())
                            {
                                isCompLeaveApproved = true;
                                break;
                            }
                        }
                        for (int i = 0; i < dsEmployeeShiftDetail.Tables[0].Rows.Count; i++)
                        {
                            if (Convert.ToDateTime(FromDate.ToString()) == Convert.ToDateTime(dsEmployeeShiftDetail.Tables[0].Rows[i]["WeekOff1"].ToString()) || (Convert.ToDateTime(FromDate.ToString()) == Convert.ToDateTime(dsEmployeeShiftDetail.Tables[0].Rows[i]["WeekOff2"].ToString())))
                            {
                                isCompLeaveApproved = true;
                                break;
                            }
                        }
                    }
                    if (isCompLeaveApproved)
                    {
                        // Compensatory Leave Approved Successfully.
                        objCompensationModel.AppliedFor = Convert.ToDateTime(FromDate.ToString());
                        UpdateCompenstionDetails();
                        gvCompensationApprovals.EditIndex = -1;
                        lblError.Visible   = true;
                        lblSuccess.Visible = true;
                        lblSuccess.Text    = "Compensatory Leave details are updated successfully";
                        lblError.Text      = "";

                        if (ddlStatusID.SelectedValue == Convert.ToString("2"))
                        {
                            //Here delete the all records of related CompensationID
                            objLeaveTransDetailsModel.UserID         = Convert.ToInt32(lblTMmember.Text.ToString());
                            objLeaveTransDetailsModel.CompensationID = Convert.ToInt32(lblEditCompensationID.Text);

                            //Here Adding Leave records to LeaveTransaction table
                            objLeaveTransDetailsModel.UserID         = Convert.ToInt32(lblTMmember.Text.ToString());
                            objLeaveTransDetailsModel.CompensationID = Convert.ToInt32(lblEditCompensationID.Text);

                            objLeaveTransDetailsModel.TransactionDate = Convert.ToDateTime(DateTime.Now.ToShortDateString());
                            objLeaveTransDetailsModel.Description     = "Compensatory Leave:" + lblEditgrvReason.Text.ToString();
                            objLeaveTransDetailsModel.Quantity        = Convert.ToDecimal(1);
                            objLeaveTransDetailsModel.LeaveType       = Convert.ToBoolean(0);

                            AddCompensationTransactionDetails();
                            UpdateEmployeeLeaveAndComp();
                        }
                        if (ddlStatusID.SelectedValue == Convert.ToString("3"))
                        {
                            //Here delete the all records of related CompensationID
                            objLeaveTransDetailsModel.UserID         = Convert.ToInt32(lblTMmember.Text.ToString());
                            objLeaveTransDetailsModel.CompensationID = Convert.ToInt32(lblEditCompensationID.Text);
                            DeleteCompensationTransactionDetails();
                            UpdateEmployeeLeaveAndComp();

                            //Here Adding Leave records to Compensation table
                            objCompensationModel.AppliedFor = Convert.ToDateTime(txtEditAppliedFor.Text.Trim());
                            objCompensationModel.StatusID   = Convert.ToInt32(3);
                            UpdateCompenstionDetails();
                            lblSuccess.Visible = true;
                            lblSuccess.Text    = "Compensatory Leave Details are Rejected";
                        }
                    }
                }
                else
                {
                    // Compensatory Leave Approved Unsuccessfully.
                    lblError.Visible = true;
                    lblError.Text    = "The entry for the day you are approving Compensatory Leave for is in Pending Status.Kindly approve that";
                    lblSuccess.Text  = "";
                    return;
                }

                if (WfApprovedLocked == false)
                {
                    if (objCompensationModel.StatusID == 2)
                    {
                        try
                        {
                            WorkflowRuntime wr = (WorkflowRuntime)Application["WokflowRuntime"];
                            if (objCompensationModel.WorkFlowID != null || objCompensationModel.WorkFlowID.ToString() != "")
                            {
                                WorkflowInstance wi = wr.GetWorkflow(objCompensationModel.WorkFlowID);
                                wi.Resume();
                                CompensationService objCompensationService = (CompensationService)wr.GetService(typeof(CompensationService));
                                objCompensationService.RaiseApproveEvent(wi.InstanceId);
                            }
                        }
                        catch (V2Exceptions)
                        {
                            try
                            {
                                Response.Redirect("CompensationApproval.aspx");
                            }
                            catch (System.Threading.ThreadAbortException ex)
                            {
                                throw;
                            }
                        }
                        catch (System.Exception)
                        {
                            try
                            {
                                Response.Redirect("CompensationApproval.aspx");
                            }
                            catch (System.Threading.ThreadAbortException ex)
                            {
                                throw;
                            }
                        }
                    }
                    if (objCompensationModel.StatusID == 3)
                    {
                        try
                        {
                            WorkflowRuntime wr = (WorkflowRuntime)Application["WokflowRuntime"];
                            if (objCompensationModel.WorkFlowID != null || objCompensationModel.WorkFlowID.ToString() != "")
                            {
                                WorkflowInstance wi = wr.GetWorkflow(objCompensationModel.WorkFlowID);
                                wi.Resume();
                                CompensationService objCompensationService = (CompensationService)wr.GetService(typeof(CompensationService));
                                objCompensationService.RaiseRejectEvent(wi.InstanceId);
                            }
                        }
                        catch (V2Exceptions)
                        {
                            try
                            {
                                Response.Redirect("CompensationApproval.aspx");
                            }
                            catch (System.Threading.ThreadAbortException ex)
                            {
                                throw;
                            }
                        }
                        catch (System.Exception)
                        {
                            try
                            {
                                Response.Redirect("CompensationApproval.aspx");
                            }
                            catch (System.Threading.ThreadAbortException ex)
                            {
                                throw;
                            }
                        }
                    }
                    if (objCompensationModel.StatusID == 4)
                    {
                        try
                        {
                            WorkflowRuntime wr = (WorkflowRuntime)Application["WokflowRuntime"];
                            if (objCompensationModel.WorkFlowID != null || objCompensationModel.WorkFlowID.ToString() != "")
                            {
                                WorkflowInstance wi = wr.GetWorkflow(objCompensationModel.WorkFlowID);
                                wi.Resume();
                                CompensationService objCompensationService = (CompensationService)wr.GetService(typeof(CompensationService));
                                objCompensationService.RaiseCancelEvent(wi.InstanceId);
                            }
                        }
                        catch (V2Exceptions)
                        {
                            try
                            {
                                Response.Redirect("CompensationApproval.aspx");
                            }
                            catch (System.Threading.ThreadAbortException ex)
                            {
                                throw;
                            }
                        }
                        catch (System.Exception)
                        {
                            try
                            {
                                Response.Redirect("CompensationApproval.aspx");
                            }
                            catch (System.Threading.ThreadAbortException ex)
                            {
                                throw;
                            }
                        }
                    }
                }
                else
                {
                    if (objCompensationModel.StatusID == 2)
                    {
                        //Sending a Mail to Employee after Updating compensatory Leaves
                        if (WfApprovedLocked == true)
                        {
                            objLeaveDeatilsModel.UserID = Convert.ToInt32(lblTMmember.Text.ToString());
                            SendingMailToReportingPerson();
                        }
                    }
                }

                Response.Redirect("CompensationApproval.aspx");
            }
            catch (System.Threading.ThreadAbortException ex)
            {
                throw;
            }
            catch (V2Exceptions ex)
            {
                throw;
            }
            catch (System.Exception ex)
            {
                if (ex.Message.CompareTo("Already Compensation applied for this date.") != 0)
                {
                    lblError.Visible = false;
                    FileLog objFileLog = FileLog.GetLogger();
                    objFileLog.WriteLine(LogType.Error, ex.Message, "CompensationApproval.aspx.cs", "btnSubmit", ex.StackTrace);
                    throw new V2Exceptions(ex.ToString(), ex);
                }
                else
                {
                    lblError.Visible = true;

                    lblError.Text   = "User has already applied for compensatory leave for this date";
                    lblSuccess.Text = "";
                }
            }
        }