コード例 #1
0
        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);
            }
        }
コード例 #2
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);
            }
        }