Example #1
0
 public void Approve(string sn, string action, NameValueCollection dataFields)
 {
     try
     {
         K2Helper.Approve(sn, action, dataFields);
     }
     catch (Exception ex)
     {
         DBManager.RecoreErrorProfile(ex, "WorkListDAL.Approve", DBManager.GetCurrentUserAD());
     }
 }
Example #2
0
 public void Delegate(string sn, string targetUser)
 {
     try
     {
         K2Helper.Delegate(sn, targetUser);
     }
     catch (Exception ex)
     {
         DBManager.RecoreErrorProfile(ex, "WorkListDAL.Delegate", DBManager.GetCurrentUserAD());
     }
 }
Example #3
0
 public void Release(string sn)
 {
     try
     {
         K2Helper.Release(sn);
     }
     catch (Exception ex)
     {
         DBManager.RecoreErrorProfile(ex, "WorkListDAL.Release", DBManager.GetCurrentUserAD());
     }
 }
Example #4
0
 public void Sleep(string sn, int second)
 {
     try
     {
         K2Helper.Sleep(sn, second);
     }
     catch (Exception ex)
     {
         DBManager.RecoreErrorProfile(ex, "WorkListDAL.Sleep", DBManager.GetCurrentUserAD());
     }
 }
Example #5
0
 //we can also use static methods
 public static string GetActivityStatus(int processInstanceID, string activityName)
 {
     using (SourceCode.Field.Core.Helper.K2Helper helper = new K2Helper("dlx"))
     {
         Dictionary <string, object> Data = new Dictionary <string, object>();
         Data.Add("Process Instance ID", processInstanceID.ToString());
         Data.Add("Activity Name", activityName);
         DataTable dt = helper.SmartObjectClient().SmartObjectGetList(Data, "Activity_Instance", "List");
         return(dt.Rows[0].Field <string>("Status"));
     }
 }
 //we can also use static methods
 public static string GetActivityStatus(int processInstanceID, string activityName)
 {
     using (SourceCode.Field.Core.Helper.K2Helper helper = new K2Helper("dlx"))
     {
         Dictionary<string, object> Data = new Dictionary<string, object>();
         Data.Add("Process Instance ID", processInstanceID.ToString());
         Data.Add("Activity Name", activityName);
         DataTable dt = helper.SmartObjectClient().SmartObjectGetList(Data, "Activity_Instance", "List");
         return dt.Rows[0].Field<string>("Status");
     }
 }
Example #7
0
        /// <summary>
        /// ASSUMPTION: IPCs have the same (otherwise unique) folio as their parents
        /// - not always the case, but no other way of detecting IPC
        /// This uses the parent Process instance ID to get the folio
        /// We then get a list of processes with that folio and exclude the parent.
        /// </summary>
        /// <param name="ParentProcessInstanceID">pid of the parent</param>
        /// <returns>-1 if ipc child is not found, otherwise the processinstanceid</returns>
        public static int GetIPCProcessInstanceByFolio(string K2Server, int ParentProcessInstanceID, string ProcessFullName)
        {
            using (K2Helper helper = new K2Helper(K2Server))
            {
                string processFolder;
                string processName;
                SplitPathIntoFolderAndName(ProcessFullName, out processFolder, out processName);

                Dictionary <string, object> Data = new Dictionary <string, object>();
                Data.Add("ProcessInstanceID", ParentProcessInstanceID.ToString());
                DataTable dt = helper.SmartObjectClient().SmartObjectGetList(Data, "Process_Instance", "List");
                if (dt.Rows.Count == 0)
                {
                    return((int)ReturnCodes.NoProcessInstanceFound);
                }
                else
                {
                    foreach (DataRow dr in dt.Rows)
                    {
                        string folio = dr.Field <string>("Folio");
                        Data = new Dictionary <string, object>();
                        Data.Add("Folio", folio); //where for art thou folio?
                        Data.Add("ProcessName", processName);
                        Data.Add("Folder", processFolder);

                        dt = helper.SmartObjectClient().SmartObjectGetList(Data, "Process_Instance", "List");
                        if (dt.Rows.Count == 0)
                        {
                            return((int)ReturnCodes.NoProcessInstanceFound);
                        }
                        else
                        {
                            foreach (DataRow row in dt.Rows)
                            {
                                if (row.Field <int>("ProcessInstanceID") != ParentProcessInstanceID)
                                {
                                    return(row.Field <int>("ProcessInstanceID"));
                                }
                            }
                            return((int)ReturnCodes.NoProcessInstanceFound);
                        }
                    }

                    return((int)ReturnCodes.NoProcessInstanceFound);
                }
            }
        }
        public void CreateTravelObject(Process p, string num)
        {
            using (SourceCode.Field.Core.Helper.K2Helper helper = new K2Helper("dlx"))
            {
                Dictionary<string, object> Data = new Dictionary<string, object>();
                Data.Add("PersonName", "Adam Castle");
                Data.Add("Amount", num);
                string TravelRequestsID = helper.SmartObjectClient().SmartObjectCreate(Data, "TravelRequestsID", "TravelRequests");

                //Lets create a new data field, so when our process starts it will start with the new travel request ID
                CoreDataField df = new CoreDataField();
                df.Name = "TravelRequestsID";
                df.Value = TravelRequestsID;

                p.Activities[0].DataFields.Add(df.Name,df);
            }
        }
Example #9
0
        public void CreateTravelObject(Process p, string num)
        {
            using (SourceCode.Field.Core.Helper.K2Helper helper = new K2Helper("dlx"))
            {
                Dictionary <string, object> Data = new Dictionary <string, object>();
                Data.Add("PersonName", "Adam Castle");
                Data.Add("Amount", num);
                string TravelRequestsID = helper.SmartObjectClient().SmartObjectCreate(Data, "TravelRequestsID", "TravelRequests");

                //Lets create a new data field, so when our process starts it will start with the new travel request ID
                CoreDataField df = new CoreDataField();
                df.Name  = "TravelRequestsID";
                df.Value = TravelRequestsID;

                p.Activities[0].DataFields.Add(df.Name, df);
            }
        }
Example #10
0
        //EDGAR 6/1/2010
        #region Edgar additions

        private bool BuildCompileAndSaveProject(string projectFilePath, string outputPath, EnvironmentSettingsManager environmentManager, int stepNumber)
        {
            Project           project;
            DeploymentPackage package;
            bool result = false;

            #region 4. Build

            LogHelper.LogMessage(String.Format("\n{0}.1 Beginning Build", stepNumber));
            LogHelper.LogMessage("   -- Loading project file: " + projectFilePath);
            project = new Project();
            project.Load(projectFilePath);

            LogHelper.LogMessage("   -- Building Project");
            result = K2Helper.CompileK2Project(project);

            if (!result)
            {
                throw new Exception("The Project did not Compile successfully.\n");
            }

            #endregion

            #region 5. Deployment Package Creation

            LogHelper.LogMessage(String.Format("\n{0}.2 Creating the Deployment Package", stepNumber));
            package = K2Helper.CreateDeploymentPackage(
                project, environmentManager, DeployLabel, DeployDescription, testOnly);

            #endregion

            #region 6. Save Deployment Package

            LogHelper.LogMessage(String.Format("\n{0}.3. Saving Deployment Package to '" + OutputPath + "'", stepNumber));
            FileHelper fileHelper = new FileHelper();
            fileHelper.DeleteDirectory(outputPath);

            package.Save(outputPath, "K2DeploymentPackage");
            LogHelper.LogMessage("   -- Package Saved");

            #endregion

            return(result);
        }
Example #11
0
        public static string GetProcessDataFieldValue(string K2Server, int processInstanceID, string dataFieldName)
        {
            //TODO: this currently opens a connection to wf server twice
            using (K2Helper helper = new K2Helper(K2Server))
            {
                Dictionary <string, object> Data = new Dictionary <string, object>();
                Data.Add("ProcessInstanceID", processInstanceID);
                Data.Add("DataName", dataFieldName);
                //////////Data.Add("ProcessName", "Underwriting\\Supplementary\\Setup");



                DataTable dt = helper.SmartObjectClient().SmartObjectGetList(Data, "Process_Data", "List", true);

                foreach (DataRow dr in dt.Rows)
                {
                    return(dr.Field <string>("DataValue"));
                }
                throw new Exception(string.Format("Cannot find datafield {0} for PI: {1}", dataFieldName, processInstanceID));
            }
        }
Example #12
0
        public static string GetActivityStatus(string K2Server, int processInstanceID, string activityName)
        {
            using (K2Helper helper = new K2Helper(K2Server))
            {
                Dictionary <string, object> Data = new Dictionary <string, object>();
                Data.Add("ProcessInstanceID", processInstanceID.ToString());
                Data.Add("ActivityName", activityName);
                DataTable dt = helper.SmartObjectClient().SmartObjectGetList(Data, "Activity_Instance", "List");

                DateTime latestTime = DateTime.MinValue;
                string   lastestAndGreatestStatus = string.Empty;
                foreach (DataRow dr in dt.Rows)
                {
                    DateTime currentTime = dr.Field <DateTime>("StartDate");
                    if (currentTime > latestTime)
                    {
                        lastestAndGreatestStatus = dr.Field <string>("Status");
                        latestTime = currentTime;
                    }
                }
                return(lastestAndGreatestStatus); //empty string if not found
            }
        }
Example #13
0
        /// <summary>
        /// When overridden in a derived class, executes the task.
        /// </summary>
        /// <returns>
        /// true if the task successfully executed; otherwise, false.
        /// </returns>
        public override bool Execute()
        {
            EnvironmentSettingsManager environmentManager;

            string newProjectFilePath = string.Empty;
            bool   result             = false;

            int currentStep = 0;


            // below if block added to check for and purge old cache file if it exists
            if (BinFileToDelete != string.Empty)
            {
                if (System.IO.File.Exists(BinFileToDelete))
                {
                    try
                    {
                        System.IO.File.Delete(BinFileToDelete);
                    }
                    catch (System.IO.IOException e)
                    {
                        LogHelper.LogMessage("\n\n*****Environment Cache Could Not Be Deleted*******\n");
                        LogHelper.LogMessage(e.Message.ToString());
                    }
                }
            }


            LogHelper.LogMessage("\n\n*****     BEGIN       *******\n");

            try
            {
                //check if file exists
                //delete file

                #region 1. Validation
                LogHelper.LogStep(++currentStep, "Validating");
                ValidateK2Project();

                #endregion

                #region 2. Gather Environment Information
                LogHelper.LogStep(++currentStep, "Preparing Environment");
                LogHelper.LogMessage("   -- Getting K2 Environment Manager");

                environmentManager =
                    K2Helper.GetEnvironmentManager(ConnectionString, Environment, UseEnvironmentCache);

                #endregion

                #region 3. File Preparation
                LogHelper.LogStep(++currentStep, "Preparing Project files");

                //Edgar
                Dictionary <string, string> dictFiles = null;
                //check if the user want to compile the project as a whole or artifacts individually
                if (CompileProjectArtifactsIndividually)
                {
                    dictFiles = GetNewProjectFiles(ref newProjectFilePath);
                    LogHelper.LogMessage("\n3.1 Project files created in Temporary folder");

                    //we next need to create backup of the original file
                    FileHelper fileHelper = new FileHelper();

                    fileHelper.CopyFile(newProjectFilePath, newProjectFilePath + ".bak", true);
                    LogHelper.LogMessage("File has been backed up = " + newProjectFilePath);

                    foreach (KeyValuePair <string, string> kvp in dictFiles)
                    {
                        //  currentStep += 1;
                        string artifactName  = kvp.Key;
                        string newOutputPath = outputPath + @"\" + artifactName;

                        //we need to replace the original file w/ this one.
                        fileHelper.ReplaceFile(newProjectFilePath, kvp.Value);

                        //it will always compile the the project under the original name;
                        result       = BuildCompileAndSaveProject(newProjectFilePath, newOutputPath, environmentManager, currentStep);
                        currentStep += 1;
                    }

                    fileHelper = null;
                }
                else
                {
                    //default behavior as originally coded
                    newProjectFilePath = GetNewProjectFile();
                    LogHelper.LogMessage("\n3.1 Project files created in Temporary folder");

                    BuildCompileAndSaveProject(newProjectFilePath, outputPath, environmentManager, currentStep);
                    currentStep += 1;
                }
                //Edgar//
                #endregion

/*
 #region 7. Execute Deployment Package
 *
 *
 *              // Execute the Deployment Package
 *              LogHelper.LogMessage("\nExecuting deployment package...");
 *              results = package.Execute();
 *
 *              // Record success result
 *              result = results.Successful;
 *              LogHelper.LogMessage("\nSuccessful = " + result);
 *
 *
 #endregion
 */

                result = true;
            }
            catch (Exception ex)
            {
                LogHelper.LogMessage(ex.ToString());
                throw;
            }
            finally
            {
                LogHelper.LogMessage("\n*****       END       *******\n\n");
            }


            return(result);
        }
Example #14
0
        /// <summary>
        /// When overridden in a derived class, executes the task.
        /// </summary>
        /// <returns>
        /// true if the task successfully executed; otherwise, false.
        /// </returns>
        public override bool Execute()
        {
            bool result;
            int  currentStep = 0;

            LogHelper.LogMessage("\n\n*****     BEGIN       *******\n");

            LogHelper.LogSubStepInfo("K2 Server: " + K2Server);
            LogHelper.LogSubStepInfo("K2 HostServer Port: " + K2HostServerPort.ToString());
            LogHelper.LogSubStepInfo("Service Type Guid: " + ServiceTypeGuid);
            LogHelper.LogSubStepInfo("Service Type : " + ServiceTypeSystemName);
            LogHelper.LogSubStepInfo("Service Type : " + ServiceTypeDisplayName);
            LogHelper.LogSubStepInfo("Service Type : " + ServiceTypeDescription);
            LogHelper.LogSubStepInfo("Service Type : " + ServiceTypeAssemblyPath);
            LogHelper.LogSubStepInfo("Service Type : " + serviceTypeClassName);

            try
            {
                LogHelper.LogStep(++currentStep, "Validating");
                if (!GuidHelper.IsGuid(ServiceTypeGuid))
                {
                    throw new ArgumentException("Invalid Service Type Guid");
                }

                if (!File.Exists(ServiceTypeAssemblyPath))
                {
                    throw new ArgumentException("Service Type Assembly Path is not valid.");
                }

                // Create the Guid
                Guid svcGuid = new Guid(ServiceTypeGuid);

                LogHelper.LogStep(++currentStep, "Getting K2 Service Manager");
                LogHelper.LogSubStep("Create K2 Service Manager");
                ServiceManagementServer svcMng = new ServiceManagementServer();

                using (svcMng.CreateConnection())
                {
                    LogHelper.LogSubStep("Opening Connection to K2 Server");
                    svcMng.Connection.Open(ConnectionString);
                    LogHelper.LogSubStepInfo("Connection State: " +
                                             (svcMng.Connection.IsConnected ? "Connected" : "Disconnected"));

                    LogHelper.LogStep(++currentStep, "Registering Service Type");
                    LogHelper.LogSubStep("Determining if Service Type already exists");


                    // Check if this Service Type is already registered
                    if (String.IsNullOrEmpty(svcMng.GetServiceType(svcGuid)))
                    {
                        LogHelper.LogSubStepInfo("Service Type does not exist");

                        LogHelper.LogSubStep("Getting Service Type Definition");

                        // NOTE: Registering the Service Type without this Service Type definition
                        // results in incorrect registration
                        string svcTypeDefinition =
                            K2Helper.GetK2ServiceTypeDefinition(
                                svcGuid, ServiceTypeSystemName, ServiceTypeDisplayName,
                                ServiceTypeDescription, ServiceTypeAssemblyPath, ServiceTypeClassName);

                        LogHelper.LogSubStepInfo(svcTypeDefinition);

                        LogHelper.LogSubStep("Registering new Service Type");
                        svcMng.RegisterServiceType(svcGuid, svcTypeDefinition);

                        if (String.IsNullOrEmpty(svcMng.GetServiceType(svcGuid)))
                        {
                            throw new Exception("Registration of Service Type Unsuccessful");
                        }
                        else
                        {
                            LogHelper.LogSubStepInfo("Registration of Service Type was Successful");
                        }
                    }
                    else
                    {
                        LogHelper.LogSubStepInfo("Service Type already exists");

                        LogHelper.LogSubStep("Updating existing Service Type");
                        svcMng.UpdateServiceType(
                            svcGuid, ServiceTypeSystemName, ServiceTypeDisplayName,
                            ServiceTypeDescription, ServiceTypeAssemblyPath, ServiceTypeClassName);

                        if (String.IsNullOrEmpty(svcMng.GetServiceType(svcGuid)))
                        {
                            throw new Exception("Update of Service Type Unsuccessful");
                        }
                        else
                        {
                            LogHelper.LogSubStepInfo("Update of Service Type was Successful");
                        }
                    }
                }

                result = true;
            }
            catch
            {
                throw;
            }
            finally
            {
                LogHelper.LogMessage("\n*****       END       *******\n\n");
            }


            return(result);
        }
        /// <summary>
        /// When overridden in a derived class, executes the task.
        /// </summary>
        /// <returns>
        /// true if the task successfully executed; otherwise, false.
        /// </returns>
        public override bool Execute()
        {
            bool result;
            int  currentStep = 0;

            // clean up some values
            char token = '"';

            K2Server                   = K2Helper.StripLeadingAndTailing(K2Server, token);
            ServiceInstanceGuid        = K2Helper.StripLeadingAndTailing(ServiceInstanceGuid, token);
            ServiceInstanceSystemName  = K2Helper.StripLeadingAndTailing(ServiceInstanceSystemName, token);
            ServiceInstanceDisplayName = K2Helper.StripLeadingAndTailing(ServiceInstanceDisplayName, token);
            ServiceInstanceDescription = K2Helper.StripLeadingAndTailing(ServiceInstanceDescription, token);
            ConfigKeyNames             = K2Helper.StripLeadingAndTailing(configKeyNames, token);
            ConfigKeyValues            = K2Helper.StripLeadingAndTailing(ConfigKeyValues, token);
            ConfigKeysRequired         = K2Helper.StripLeadingAndTailing(ConfigKeysRequired, token);
            ConfigKeyDelimiter         = K2Helper.StripLeadingAndTailing(ConfigKeyDelimiter, token);


            LogHelper.LogMessage("\n\n*****     BEGIN     *******\n");

            LogHelper.LogSubStepInfo("K2 Server: " + K2Server);
            LogHelper.LogSubStepInfo("K2 HostServer Port: " + K2HostServerPort.ToString());
            LogHelper.LogSubStepInfo("Service Instance Guid: " + ServiceInstanceGuid);
            LogHelper.LogSubStepInfo("Service Instance : " + ServiceInstanceSystemName);
            LogHelper.LogSubStepInfo("Service Instance : " + ServiceInstanceDisplayName);
            LogHelper.LogSubStepInfo("Service Instance : " + ServiceInstanceDescription);
            LogHelper.LogSubStepInfo("Config Key Names : " + ConfigKeyNames);
            LogHelper.LogSubStepInfo("Config Key Values : " + ConfigKeyValues);
            LogHelper.LogSubStepInfo("Config Key Reqds : " + ConfigKeysRequired);
            LogHelper.LogSubStepInfo("Config Delimiter : " + ConfigKeyDelimiter);

            try
            {
                LogHelper.LogStep(++currentStep, "Validating");

                if (!GuidHelper.IsGuid(ServiceTypeGuid))
                {
                    throw new ArgumentException("Invalid Service Type Guid");
                }

                if (!GuidHelper.IsGuid(ServiceInstanceGuid))
                {
                    throw new ArgumentException("Invalid Service Instance Guid");
                }

                // Create the Service Type Guid
                Guid svcTypeGuid = new Guid(ServiceTypeGuid);

                // Create the Service Instance Guid
                Guid svcInstanceGuid = new Guid(ServiceInstanceGuid);

                LogHelper.LogStep(++currentStep, "Getting K2 Service Manager");
                LogHelper.LogSubStep("Create K2 Service Manager");
                ServiceManagementServer svcMng = new ServiceManagementServer();

                using (svcMng.CreateConnection())
                {
                    LogHelper.LogSubStep("Opening Connection to K2 Server");
                    svcMng.Connection.Open(ConnectionString);
                    LogHelper.LogSubStepInfo("Connection State: " +
                                             (svcMng.Connection.IsConnected ? "Connected" : "Disconnected"));

                    char delim = ',';
                    if (ConfigKeyDelimiter.Length == 1)
                    {
                        delim = ConfigKeyDelimiter.ToCharArray()[0];
                    }

                    LogHelper.LogSubStep("Getting Service Instance Configuration");
                    string svcInstanceConfig = K2Helper.GetK2ServiceInstanceConfig(
                        ConfigImpersonate, ConfigKeyNames, ConfigKeyValues,
                        ConfigKeysRequired, delim);

                    LogHelper.LogSubStepInfo("Service Instance Config = ");
                    LogHelper.LogSubStepInfo(svcInstanceConfig);

                    LogHelper.LogStep(++currentStep, "Registering Service Instance");
                    LogHelper.LogSubStep("Determining if Service Instance already exists");

                    // Check if this Service Instance is already registered
                    if (!K2Helper.DetermineIfServiceInstanceExists(svcMng, svcInstanceGuid))
                    {
                        LogHelper.LogSubStepInfo("Service Instance does not exist");

                        LogHelper.LogSubStep("Registering new Service Instance");
                        svcMng.RegisterServiceInstance(
                            svcTypeGuid, svcInstanceGuid, ServiceInstanceSystemName,
                            ServiceInstanceDisplayName, ServiceInstanceDescription, svcInstanceConfig);

                        if (!K2Helper.DetermineIfServiceInstanceExists(svcMng, svcInstanceGuid))
                        {
                            throw new Exception("Registration of Service Instance Unsuccessful");
                        }
                        else
                        {
                            LogHelper.LogSubStepInfo("Registration of Service Instance was Successful");
                        }
                    }
                    else
                    {
                        LogHelper.LogSubStepInfo("Service Instance already exists");

                        LogHelper.LogSubStep("Updating existing Service Instance");

                        svcMng.UpdateServiceInstance(
                            svcTypeGuid, svcInstanceGuid, ServiceInstanceSystemName,
                            ServiceInstanceDisplayName, ServiceInstanceDescription, svcInstanceConfig);

                        if (!K2Helper.DetermineIfServiceInstanceExists(svcMng, svcInstanceGuid))
                        {
                            throw new Exception("Update of Service Instance Unsuccessful");
                        }
                        else
                        {
                            LogHelper.LogSubStepInfo("Update of Service Instance was Successful");
                        }
                    }
                }

                result = true;
            }
            catch (Exception ex)
            {
                throw ex;
                //LogHelper.LogSubStepInfo(string.Format("Got an error:{0}{1}", ex.Message, ex.StackTrace));
                //result = false;
            }
            finally
            {
                LogHelper.LogMessage("\n*****       END       *******\n\n");
            }


            return(result);
        }