protected override async Task <Action <NativeActivityContext> > ExecuteAsync(NativeActivityContext context, CancellationToken cancellationToken)
        {
            // Inputs
            var timeout             = TimeoutMS.Get(context);
            var orchestratorName    = OrchestratorName.Get(context);
            var clientID            = ClientID.Get(context);
            var userKey             = UserKey.Get(context);
            var tenantName          = TenantName.Get(context);
            var existingAccessToken = ExistingAccessToken.Get(context);

            // Set a timeout on the execution
            var task = ExecuteWithTimeout(context, cancellationToken);

            if (await Task.WhenAny(task, Task.Delay(timeout, cancellationToken)) != task)
            {
                throw new TimeoutException(Resources.Timeout_Error);
            }
            await task;

            return((ctx) => {
                // Schedule child activities
                if (Body != null)
                {
                    ctx.ScheduleAction <IObjectContainer>(Body, _objectContainer, OnCompleted, OnFaulted);
                }

                // Outputs
                AccessToken.Set(ctx, null);
            });
        }
示例#2
0
        protected override void Execute(NativeActivityContext context)
        {
            EncryptionHelper encryptionHelper = new EncryptionHelper();

            string assetName  = AssetName.Get(context);
            string assetValue = AssetValue.Get(context);


            string tenantName         = TenantName.Get(context);
            string groupName          = GroupName.Get(context);
            string loginPassword      = LoginPassword.Get(context);
            string domainNameUserName = DomainNameUserName.Get(context);

            string[] struserDomain = null;
            if (domainNameUserName.Contains("/"))
            {
                struserDomain = domainNameUserName.Split('/');
            }
            else if (domainNameUserName.Contains("\\"))
            {
                struserDomain = domainNameUserName.Split('\\');
            }
            string strDomainName = struserDomain[0];
            string strUserName   = struserDomain[1];


            string encodePwd = string.Empty;

            byte[] encode = new byte[loginPassword.Length];
            encode        = Encoding.UTF8.GetBytes(loginPassword);
            encodePwd     = Convert.ToBase64String(encode);
            loginPassword = encodePwd;
            DataTable result = null;

            //consoleExecutionLog.AppendText("Calling Service");
            Logger.ServiceReference1.BOTServiceClient ser = new Logger.ServiceReference1.BOTServiceClient();
            result = ser.LoginUser(strDomainName, strUserName, loginPassword, tenantName, groupName);
            //consoleExecutionLog.AppendText("Got Data");

            if (result != null && result.Rows.Count > 0)
            {
                try
                {
                    int groupid  = int.Parse(result.Rows[0]["groupid"].ToString());
                    int TenantId = int.Parse(result.Rows[0]["tenantid"].ToString());

                    string resultGetKey = ser.getKey();



                    if (resultGetKey != null)
                    {
                        string EncryptedAssetValue     = encryptionHelper.Encrypt(assetValue, resultGetKey);
                        int    resultGetAddAssetStatus = ser.AddAssets(assetName, EncryptedAssetValue, TenantId, groupid, strUserName);
                        if (resultGetAddAssetStatus == 1)
                        {
                            Result.Set(context, true);
                            Log.Logger.LogData("Asset added to Asset Management successfully by activity Add Asset", LogLevel.Info);
                        }
                        else if (resultGetAddAssetStatus == -1)
                        {
                            Result.Set(context, false);
                            Log.Logger.LogData("Asset already exists in Asset Management in activity Add Asset", LogLevel.Info);
                        }
                        else
                        {
                            Result.Set(context, false);
                            Log.Logger.LogData("Asset does not validate(exist) in activity Add Asset", LogLevel.Info);
                        }
                    }
                    else
                    {
                        Log.Logger.LogData("Enter Key does not validate(exist) in activity Add Asset", LogLevel.Info);
                    }
                }
                catch (Exception ex)
                {
                    Log.Logger.LogData(ex.Message + " in activity Add Asset", LogLevel.Error);
                }
            }
            else
            {
                Log.Logger.LogData("User does not validate(exist) in activity Get Credentials", LogLevel.Info);
            }
        }
示例#3
0
        protected override void Execute(NativeActivityContext context)
        {
            EncryptionHelper encryptionHelper = new EncryptionHelper();
            string           assetName        = AssetName.Get(context);
            //    string key = Key.Get(context);
            //  bool Private = Private1.Get(context);

            string tenantName         = TenantName.Get(context);
            string groupName          = GroupName.Get(context);
            string loginPassword      = LoginPassword.Get(context);
            string domainNameUserName = DomainNameUserName.Get(context);

            string[] struserDomain = null;
            if (domainNameUserName.Contains("/"))
            {
                struserDomain = domainNameUserName.Split('/');
            }
            else if (domainNameUserName.Contains("\\"))
            {
                struserDomain = domainNameUserName.Split('\\');
            }
            string strDomainName = struserDomain[0];
            string strUserName   = struserDomain[1];


            string encodePwd = string.Empty;

            byte[] encode = new byte[loginPassword.Length];
            encode        = Encoding.UTF8.GetBytes(loginPassword);
            encodePwd     = Convert.ToBase64String(encode);
            loginPassword = encodePwd;
            DataTable result = null;

            //consoleExecutionLog.AppendText("Calling Service");
            Logger.ServiceReference1.BOTServiceClient ser = new Logger.ServiceReference1.BOTServiceClient();
            result = ser.LoginUser(strDomainName, strUserName, loginPassword, tenantName, groupName);
            //consoleExecutionLog.AppendText("Got Data");

            if (result != null && result.Rows.Count > 0)
            {
                //int keySize = 256;
                try
                {
                    int groupid  = int.Parse(result.Rows[0]["groupid"].ToString());
                    int TenantId = int.Parse(result.Rows[0]["tenantid"].ToString());

                    string resultGetKey = ser.getKey();

                    //int resultKeyExist = ser.KeyExist(key);

                    if (resultGetKey != null)
                    {
                        DataTable resultGetCredentials = ser.GetAssetsActivity(assetName, groupid, TenantId);
                        if (resultGetCredentials != null && resultGetCredentials.Rows.Count > 0)
                        {
                            string assetval = resultGetCredentials.Rows[0]["value"].ToString();
                            //Private = false;
                            //if (Private == false)    Commenting Private
                            //{ }
                            // password = Decrypt(password, key, keySize);

                            assetval = encryptionHelper.Decrypt(assetval, resultGetKey);


                            AssetValue.Set(context, assetval);
                        }
                        else
                        {
                            Log.Logger.LogData("Asset does not validate(exist) in activity Get Asset", LogLevel.Info);
                        }
                    }
                    else
                    {
                        Log.Logger.LogData("Enter Key does not validate(exist) in activity Get Asset", LogLevel.Info);
                    }
                }
                catch (Exception ex)
                {
                    Log.Logger.LogData(ex.Message + " in activity Get Asset", LogLevel.Error);
                }
            }
            else
            {
                Log.Logger.LogData("User does not validate(exist) in activity Get Credentials", LogLevel.Info);
            }
        }