示例#1
0
        /// <summary>
        /// 使用SHA256加密
        /// </summary>
        /// <param name="enumCase">大小寫</param>
        /// <param name="strPlaintext">明文</param>
        /// <returns>密文</returns>
        public static string EncryptSHA256(CaseEnum enumCase, string strPlaintext)
        {
            SHA256 _sha256 = new SHA256CryptoServiceProvider();

            byte[] _byteBufferArray = Encoding.UTF8.GetBytes(strPlaintext);
            byte[] _byteSHAArray    = SHA256Managed.Create().ComputeHash(_byteBufferArray);

            StringBuilder _sb = new StringBuilder();

            for (int i = 0; i < _byteSHAArray.Length; i++)
            {
                switch (enumCase)
                {
                case CaseEnum.Lowercase:
                    _sb.Append(_byteSHAArray[i].ToString("x2"));
                    break;

                case CaseEnum.Uppercase:
                    _sb.Append(_byteSHAArray[i].ToString("X2"));
                    break;
                }
            }

            return(_sb.ToString());
        }
示例#2
0
        private void RunAssertion(CaseEnum caseEnum, String uniqueFields, String whereClause, bool unique, IndexAssertionEventSend assertion)
        {
            String eplUnique = INDEX_CALLBACK_HOOK +
                               "select * from ";

            if (caseEnum == CaseEnum.UNIDIRECTIONAL || caseEnum == CaseEnum.UNIDIRECTIONAL_3STREAM)
            {
                eplUnique += "SSB1 as ssb1 unidirectional ";
            }
            else
            {
                eplUnique += "SSB1#lastevent as ssb1 ";
            }
            eplUnique += ", SSB2#unique(" + uniqueFields + ") as ssb2 ";
            if (caseEnum == CaseEnum.UNIDIRECTIONAL_3STREAM || caseEnum == CaseEnum.MULTIDIRECTIONAL_3STREAM)
            {
                eplUnique += ", SupportBean#lastevent ";
            }
            eplUnique += whereClause;

            EPStatement stmtUnique = _epService.EPAdministrator.CreateEPL(eplUnique);

            stmtUnique.Events += _listener.Update;

            SupportQueryPlanIndexHook.AssertJoinOneStreamAndReset(unique);

            _epService.EPRuntime.SendEvent(new SupportBean("JOINEVENT", 1));
            assertion.Invoke();

            stmtUnique.Dispose();
        }
示例#3
0
        private string RenameClass(string className, CaseEnum caseEnum)
        {
            var newClassName = className.ChangeCase(caseEnum);

            AddItem(className, newClassName);
            return(newClassName);
        }
示例#4
0
        /// <summary>
        /// Change case of class with its parent and related Property Type
        /// </summary>
        /// <param name="list">Class list</param>
        /// <param name="caseEnum">caseEnum</param>
        /// <returns></returns>
        public static ModelChangeCase RenameClasses(List <ClassTemplate> list, CaseEnum caseEnum)
        {
            var cc = new ModelChangeCase();

            if (caseEnum == CaseEnum.None)
            {
                return(cc);
            }

            //rename classes
            list.Update(c =>
            {
                c.Name = cc.RenameClass(c.Name, caseEnum);
                return(c);
            });
            //rename Parent
            list.Update(c =>
            {
                c.BaseType = cc.RenameParent(c.BaseType);
                return(c);
            });
            //rename properties type
            cc.RenamePropertiesType(list);
            return(cc);
        }
示例#5
0
        public void StringToCaseEnumTest(string val, CaseEnum expected)
        {
            var enumValue = val.ToEnum <CaseEnum>();

            //Assert
            Assert.That(enumValue, Is.EqualTo(expected));
        }
示例#6
0
        public void DeclensionName(string phrase, CaseEnum caseEnum)
        {
            OriginalData originalData = new OriginalData(phrase, caseEnum);
            var          result       = _declension.DeclensionOfName(originalData);

            Assert.True(result.Success);
        }
示例#7
0
        public void DeclensionPhraseError(string phrase, CaseEnum caseEnum)
        {
            OriginalData originalData = new OriginalData(phrase, caseEnum);
            var          result       = _declension.DeclensionOfPhrase(originalData);

            Assert.False(result.Success);
        }
示例#8
0
        public static string ChangeCase(this string text, CaseEnum caseEnum)
        {
            switch (caseEnum)
            {
            case CaseEnum.Pas:
                return(text.ToPascalCase());

            case CaseEnum.Camel:
                return(text.ToCamelCase());

            default:
                return(text);
            }
        }
        private void TryAssertionVirtualDW(
            RegressionEnvironment env,
            CaseEnum caseEnum,
            string uniqueFields,
            string whereClause,
            bool unique,
            IndexAssertionEventSend assertion)
        {
            SupportQueryPlanIndexHook.Reset();
            SupportVirtualDWForge.UniqueKeys = new HashSet<string>(Arrays.AsList(uniqueFields.SplitCsv()));

            var path = new RegressionPath();
            env.CompileDeploy("create window MyVDW.test:vdw() as SupportBean", path);
            var window = (SupportVirtualDW) GetFromContext(env, "/virtualdw/MyVDW");
            var supportBean = new SupportBean("S1", 101);
            supportBean.DoublePrimitive = 102;
            supportBean.LongPrimitive = 103;
            window.Data = Collections.SingletonSet<object>(supportBean);

            var eplUnique = IndexBackingTableInfo.INDEX_CALLBACK_HOOK +
                            "@Name('s0') select * from ";

            if (caseEnum == CaseEnum.UNIDIRECTIONAL) {
                eplUnique += "SupportSimpleBeanOne as ssb1 unidirectional ";
            }
            else {
                eplUnique += "SupportSimpleBeanOne#lastevent as ssb1 ";
            }

            eplUnique += ", MyVDW as vdw ";
            eplUnique += whereClause;

            env.CompileDeploy(eplUnique, path).AddListener("s0");

            // assert query plan
            SupportQueryPlanIndexHook.AssertJoinOneStreamAndReset(unique);

            // run assertion
            assertion.Invoke();

            env.UndeployAll();
            SupportVirtualDWForge.UniqueKeys = null;
        }
示例#10
0
        /// <summary>
        /// 使用ASE256解密
        /// </summary>
        /// <param name="enumCase">大小寫</param>
        /// <param name="enumCipherMode">區塊加密模式,常用為 CBC</param>
        /// <param name="enumPaddingMode">指定填補類型,常用為 PKCS7</param>
        /// <param name="strCiphertext">密文</param>
        /// <param name="strKey">Key</param>
        /// <param name="strIV">IV</param>
        /// <returns>名文</returns>
        public static string DecryptAES256(CaseEnum enumCase, CipherMode enumCipherMode, PaddingMode enumPaddingMode, string strCiphertext, string strKey, string strIV)
        {
            StringBuilder _sb = new StringBuilder();

            if (!string.IsNullOrEmpty(strCiphertext))
            {
                byte[] _byteCiphertext = Encoding.UTF8.GetBytes(strCiphertext);
                byte[] _byteKey        = Encoding.UTF8.GetBytes(strKey);
                byte[] _byteIV         = Encoding.UTF8.GetBytes(strIV);

                byte[] _byteDecryptValue;
                using (var _aes = Aes.Create())
                {
                    _aes.Mode    = enumCipherMode;
                    _aes.Padding = enumPaddingMode;
                    _aes.Key     = _byteKey;
                    _aes.IV      = _byteIV;

                    using (var _decryptor = _aes.CreateDecryptor())
                    {
                        _byteDecryptValue = _decryptor.TransformFinalBlock(_byteCiphertext, 0, _byteCiphertext.Length);
                    }
                }

                if (_byteDecryptValue != null)
                {
                    switch (enumCase)
                    {
                    case CaseEnum.Lowercase:
                        _sb.Append(BitConverter.ToString(_byteDecryptValue)?.Replace("-", string.Empty)?.ToLower());
                        break;

                    case CaseEnum.Uppercase:
                        _sb.Append(BitConverter.ToString(_byteDecryptValue)?.Replace("-", string.Empty)?.ToUpper());
                        break;
                    }
                }
            }
            return(_sb.ToString());
        }
示例#11
0
        private void RunAssertionVirtualDw(CaseEnum caseEnum, String uniqueFields, String whereClause, bool unique, IndexAssertionEventSend assertion)
        {
            SupportVirtualDWFactory.UniqueKeys = new HashSet <String>(uniqueFields.SplitCsv());
            _epService.EPAdministrator.CreateEPL("create window MyVDW.test:vdw() as SupportBean");
            var window      = (SupportVirtualDW)GetFromContext("/virtualdw/MyVDW");
            var supportBean = new SupportBean("S1", 101);

            supportBean.DoublePrimitive = 102;
            supportBean.LongPrimitive   = 103;
            window.Data = supportBean.AsSingleton();

            var eplUnique = IndexBackingTableInfo.INDEX_CALLBACK_HOOK + "select * from ";

            if (caseEnum == CaseEnum.UNIDIRECTIONAL)
            {
                eplUnique += "SSB1 as ssb1 unidirectional ";
            }
            else
            {
                eplUnique += "SSB1.std:lastevent() as ssb1 ";
            }
            eplUnique += ", MyVDW as vdw ";
            eplUnique += whereClause;

            var stmtUnique = _epService.EPAdministrator.CreateEPL(eplUnique);

            stmtUnique.Events += _listener.Update;

            // assert query plan
            SupportQueryPlanIndexHook.AssertJoinOneStreamAndReset(unique);

            // run assertion
            assertion.Invoke();

            _epService.EPAdministrator.DestroyAllStatements();
        }
示例#12
0
        /// <summary>
        /// 使用MD5加密
        /// </summary>
        /// <param name="enumCase">大小寫</param>
        /// <param name="strPlaintext">明文</param>
        /// <returns>密文</returns>
        public static string EncryptByMD5(CaseEnum enumCase, string strPlaintext)
        {
            MD5 _md5 = new MD5CryptoServiceProvider();

            byte[] _byteBufferArray = Encoding.Default.GetBytes(strPlaintext);
            byte[] _byteMD5Array    = new MD5CryptoServiceProvider().ComputeHash(_byteBufferArray);

            StringBuilder _sb = new StringBuilder();

            for (int i = 0; i < _byteMD5Array.Length; i++)
            {
                switch (enumCase)
                {
                case CaseEnum.Lowercase:
                    _sb.Append(_byteMD5Array[i].ToString("x2"));
                    break;

                case CaseEnum.Uppercase:
                    _sb.Append(_byteMD5Array[i].ToString("X2"));
                    break;
                }
            }
            return(_sb.ToString());
        }
示例#13
0
        private void RunAssertion(
            RegressionEnvironment env,
            AtomicLong milestone,
            CaseEnum caseEnum,
            string uniqueFields,
            string whereClause,
            bool unique,
            IndexAssertionEventSend assertion)
        {
            SupportQueryPlanIndexHook.Reset();
            var eplUnique = IndexBackingTableInfo.INDEX_CALLBACK_HOOK +
                            "@Name('s0') select * from ";

            if (caseEnum == CaseEnum.UNIDIRECTIONAL || caseEnum == CaseEnum.UNIDIRECTIONAL_3STREAM) {
                eplUnique += "SupportSimpleBeanOne as ssb1 unidirectional ";
            }
            else {
                eplUnique += "SupportSimpleBeanOne#lastevent as ssb1 ";
            }

            eplUnique += ", SupportSimpleBeanTwo#unique(" + uniqueFields + ") as ssb2 ";
            if (caseEnum == CaseEnum.UNIDIRECTIONAL_3STREAM || caseEnum == CaseEnum.MULTIDIRECTIONAL_3STREAM) {
                eplUnique += ", SupportBean#lastevent ";
            }

            eplUnique += whereClause;

            env.CompileDeployAddListenerMile(eplUnique, "s0", milestone.GetAndIncrement());

            SupportQueryPlanIndexHook.AssertJoinOneStreamAndReset(unique);

            env.SendEventBean(new SupportBean("JOINEVENT", 1));
            assertion.Invoke();

            env.UndeployAll();
        }
 public void StringToCaseEnumTest(string val, CaseEnum caseEnum)
 {
     Assert.AreEqual(caseEnum, val.ToCaseEnum());
 }
示例#15
0
        private void TryAssertionVirtualDW(EPServiceProvider epService, SupportUpdateListener listener, CaseEnum caseEnum, string uniqueFields, string whereClause, bool unique, IndexAssertionEventSend assertion)
        {
            SupportQueryPlanIndexHook.Reset();
            SupportVirtualDWFactory.UniqueKeys = new HashSet <string>(uniqueFields.Split(','));
            epService.EPAdministrator.CreateEPL("create window MyVDW.test:vdw() as SupportBean");
            SupportVirtualDW window = (SupportVirtualDW)GetFromContext(epService, "/virtualdw/MyVDW");
            var supportBean         = new SupportBean("S1", 101);

            supportBean.DoublePrimitive = 102;
            supportBean.LongPrimitive   = 103;
            window.Data = Collections.SingletonList <object>(supportBean);

            string eplUnique = INDEX_CALLBACK_HOOK +
                               "select * from ";

            if (caseEnum == CaseEnum.UNIDIRECTIONAL)
            {
                eplUnique += "SSB1 as ssb1 unidirectional ";
            }
            else
            {
                eplUnique += "SSB1#lastevent as ssb1 ";
            }
            eplUnique += ", MyVDW as vdw ";
            eplUnique += whereClause;

            EPStatement stmtUnique = epService.EPAdministrator.CreateEPL(eplUnique);

            stmtUnique.Events += listener.Update;

            // assert query plan
            SupportQueryPlanIndexHook.AssertJoinOneStreamAndReset(unique);

            // run assertion
            assertion.Invoke();

            epService.EPAdministrator.DestroyAllStatements();
            DestroyStmtsRemoveTypes(epService);
        }
示例#16
0
 public OriginalData(string input, CaseEnum caseEnum)
 {
     Input    = input;
     CaseEnum = caseEnum;
 }