public async Task TestCodeGeneration(string resourceBaseName, Language language)
        {
            var inputResourceName = "BrightstarDB.CodeGeneration.Tests.GeneratorTestsResources." + resourceBaseName + "Input_" + language.ToString() + ".txt";
            var outputResourceName = "BrightstarDB.CodeGeneration.Tests.GeneratorTestsResources." + resourceBaseName + "Output_" + language.ToString() + ".txt";

            using (var inputStream = this.GetType().Assembly.GetManifestResourceStream(inputResourceName))
            using (var outputStream = this.GetType().Assembly.GetManifestResourceStream(outputResourceName))
            using (var outputStreamReader = new StreamReader(outputStream))
            {
                var workspace = new AdhocWorkspace();
                var projectId = ProjectId.CreateNewId();
                var versionStamp = VersionStamp.Create();
                var projectInfo = ProjectInfo.Create(
                    projectId,
                    versionStamp,
                    "AdhocProject",
                    "AdhocProject",
                    language.ToSyntaxGeneratorLanguageName(),
                    metadataReferences: new[]
                    {
                        MetadataReference.CreateFromFile(typeof(object).Assembly.Location),
                        MetadataReference.CreateFromFile(typeof(Uri).Assembly.Location),
                        MetadataReference.CreateFromFile(typeof(BrightstarException).Assembly.Location)
                    });
                var project = workspace.AddProject(projectInfo);
                workspace.AddDocument(projectId, "Source.cs", SourceText.From(inputStream));
                var solution = workspace.CurrentSolution;

                var results = await Generator
                    .GenerateAsync(
                        language,
                        solution,
                        "BrightstarDB.CodeGeneration.Tests",
                        interfacePredicate: x => true);
                var result = results
                    .Aggregate(
                        new StringBuilder(),
                        (current, next) => current.AppendLine(next.ToString()),
                        x => x.ToString());

                var expectedCode = outputStreamReader.ReadToEnd();

                // make sure version changes don't break the tests
                expectedCode = expectedCode.Replace("$VERSION$", typeof(BrightstarException).Assembly.GetName().Version.ToString());

                //// useful when converting generated code to something that can be pasted into an expectation file
                //var sanitisedResult = result.Replace("1.10.0.0", "$VERSION$");
                //System.Diagnostics.Debug.WriteLine(sanitisedResult);

                Assert.AreEqual(expectedCode, result);
            }
        }
        // TODO: VB is totally borked - calls to syntaxGenerator.WithStatements don't seem to add the statements! Will need to look into this at a later date
        //[InlineData("SimpleInterface", Language.VisualBasic)]
        //[InlineData("InterfaceWithGenericMethods", Language.VisualBasic)]
        //[InlineData("GenericInterface", Language.VisualBasic)]
        //[InlineData("InterfaceWithNonMockableMembers", Language.VisualBasic)]
        //[InlineData("PartialInterface", Language.VisualBasic)]
        //[InlineData("InheritingInterface", Language.VisualBasic)]
        public async Task can_generate_simple_mock(string resourceBaseName, Language language)
        {
            var inputResourceName = "PCLMock.UnitTests.CodeGeneration.GeneratorFixtureResources." + resourceBaseName + "Input_" + language.ToString() + ".txt";
            var outputResourceName = "PCLMock.UnitTests.CodeGeneration.GeneratorFixtureResources." + resourceBaseName + "Output_" + language.ToString() + ".txt";

            using (var inputStream = this.GetType().Assembly.GetManifestResourceStream(inputResourceName))
            using (var outputStream = this.GetType().Assembly.GetManifestResourceStream(outputResourceName))
            using (var outputStreamReader = new StreamReader(outputStream))
            {
                var workspace = new AdhocWorkspace();
                var projectId = ProjectId.CreateNewId();
                var versionStamp = VersionStamp.Create();
                var projectInfo = ProjectInfo.Create(
                    projectId,
                    versionStamp,
                    "AdhocProject",
                    "AdhocProject",
                    language.ToSyntaxGeneratorLanguageName(),
                    metadataReferences: new[]
                    {
                        MetadataReference.CreateFromFile(typeof(object).Assembly.Location),
                        MetadataReference.CreateFromFile(typeof(Uri).Assembly.Location),
                        MetadataReference.CreateFromFile(typeof(MockBase<>).Assembly.Location)
                    });
                var project = workspace.AddProject(projectInfo);
                workspace.AddDocument(projectId, "Source.cs", SourceText.From(inputStream));
                var solution = workspace.CurrentSolution;

                var results =
                    (await Generator.GenerateMocksAsync(
                        language,
                        solution,
                        x => true,
                        x => "The.Namespace",
                        x => "Mock"));
                var result = results
                    .Single()
                    .ToString();

                var expectedCode = outputStreamReader.ReadToEnd();

                // make sure version changes don't break the tests
                expectedCode = expectedCode.Replace("$VERSION$", typeof(MockBase<>).Assembly.GetName().Version.ToString());

                // useful when converting generated code to something that can be pasted into an expectation file
                var sanitisedResult = result.Replace(typeof(MockBase<>).Assembly.GetName().Version.ToString(), "$VERSION$");

                Assert.Equal(expectedCode, result);
            }
        }
Exemple #3
0
        public static void SetLanguage(Language language)
        {
            GlobalData.Current.Language = language;

            RegistryKey regKey = Registry.CurrentUser.OpenSubKey(GlobalData.RegPathBase, true);
            regKey.SetValue(GlobalData.RegValueLanguage, language.ToString());
        }
		internal static string Get(Language lang)
		{
			var type = typeof(Language);
			var member = type.GetField(lang.ToString());
			var attr = member.GetCustomAttributes(typeof(CountryCodeAttribute), false)[0] as CountryCodeAttribute;
			return attr.Code;
		}
        /// <summary>
        /// 字符资源
        /// </summary>
        /// <param name="currentLanguage">当前语言</param>
        public void InitLanguage(Language currentLanguage)
        {
            string tag = string.Empty;
            string text = string.Empty;
            string fileName = string.Format("Language\\{0}.xml", currentLanguage.ToString());
            XmlTextReader reader = new XmlTextReader(fileName);
            while (reader.Read())
            {
                switch (reader.NodeType)
                {
                    case XmlNodeType.Element: // The node is an element.
                        if (reader.Name == "Language")
                        {
                            continue;
                        }
                        tag = reader.Name.Trim();
                        text = reader.ReadInnerXml().Trim();
                        if (!string.IsNullOrEmpty(tag) && !string.IsNullOrEmpty(text))
                        {
                            _stringDic.Add(tag, text);
                            //System.Diagnostics.Debug.WriteLine(tag + ",");
                        }
                        break;
                }

            }
        }
        public static FunctionTree BuildFunctionTree(Guid userId,Language language)
        {
            FunctionTree tree = new FunctionTree();
            using (SqlConnection sqlConnection = DataAccess.GetSqlConnection())
            {
                SqlCommand command = sqlConnection.CreateCommand();
                command.CommandText = "[dbo].[FunctionTree_GetData]";
                command.CommandType = System.Data.CommandType.StoredProcedure;
                command.Parameters.Add(new SqlParameter("@userId", userId));
                command.Parameters.Add(new SqlParameter("@language", language.ToString()));
                SqlDataReader reader = command.ExecuteReader();
                while (reader.Read())
                {
                    Category category = new Category();
                    category.CategoryType = (ModuleCategoryType)reader.GetValue(0);
                    category.CategoryDescription = reader.GetValue(1).ToString();
                    tree.Categories.Add(category);

                }
                reader.NextResult();
                while (reader.Read())
                {
                    Module module = new Module();
                    module.Type = (ModuleType)reader.GetValue(0);
                    module.ModuleDescription = reader.GetValue(1).ToString();
                    module.Category = (ModuleCategoryType)reader.GetValue(2);
                    tree.Modules.Add(module);
                }
            }
            return tree;
        }
 public static string GetLanguageFileExtension(Language language)
 {
     var type = typeof(Language);
     var memInfo = type.GetMember(language.ToString());
     var attributes = memInfo[0].GetCustomAttributes(typeof(FileExtensionAttribute), false);
     return ((FileExtensionAttribute)attributes[0]).Extension;
 }
Exemple #8
0
        public static void RunLocalBacktest(string algorithm, Dictionary<string, string> expectedStatistics, Language language)
        {
            var statistics = new Dictionary<string, string>();

            Composer.Instance.Reset();

            try
            {
                // set the configuration up
                Config.Set("algorithm-type-name", algorithm);
                Config.Set("live-mode", "false");
                Config.Set("environment", "");
                Config.Set("messaging-handler", "QuantConnect.Messaging.Messaging");
                Config.Set("job-queue-handler", "QuantConnect.Queues.JobQueue");
                Config.Set("api-handler", "QuantConnect.Api.Api");
                Config.Set("result-handler", "QuantConnect.Lean.Engine.Results.BacktestingResultHandler");
                Config.Set("algorithm-language", language.ToString());
                Config.Set("algorithm-location", "QuantConnect.Algorithm." + language + ".dll");

                var debugEnabled = Log.DebuggingEnabled;

                var logHandlers = new ILogHandler[] {new ConsoleLogHandler(), new FileLogHandler("regression.log", false)};
                using (Log.LogHandler = new CompositeLogHandler(logHandlers))
                using (var algorithmHandlers = LeanEngineAlgorithmHandlers.FromConfiguration(Composer.Instance))
                using (var systemHandlers = LeanEngineSystemHandlers.FromConfiguration(Composer.Instance))
                {
                    Log.DebuggingEnabled = true;

                    Log.LogHandler.Trace("");
                    Log.LogHandler.Trace("{0}: Running " + algorithm + "...", DateTime.UtcNow);
                    Log.LogHandler.Trace("");

                    // run the algorithm in its own thread

                    var engine = new Lean.Engine.Engine(systemHandlers, algorithmHandlers, false);
                    Task.Factory.StartNew(() =>
                    {
                        string algorithmPath;
                        var job = systemHandlers.JobQueue.NextJob(out algorithmPath);
                        engine.Run(job, algorithmPath);
                    }).Wait();

                    var backtestingResultHandler = (BacktestingResultHandler)algorithmHandlers.Results;
                    statistics = backtestingResultHandler.FinalStatistics;
                    
                    Log.DebuggingEnabled = debugEnabled;
                }
            }
            catch (Exception ex)
            {
                Log.LogHandler.Error("{0} {1}", ex.Message, ex.StackTrace);
            }

            foreach (var stat in expectedStatistics)
            {
                Assert.AreEqual(true, statistics.ContainsKey(stat.Key), "Missing key: " + stat.Key);
                Assert.AreEqual(stat.Value, statistics[stat.Key], "Failed on " + stat.Key);
            }
        }
Exemple #9
0
 /// <summary>
 /// 获取用户信息
 /// </summary>
 /// <param name="accessToken">调用接口凭证</param>
 /// <param name="openId">普通用户的标识,对当前公众号唯一</param>
 /// <param name="lang">返回国家地区语言版本,zh_CN 简体,zh_TW 繁体,en 英语</param>
 /// <returns></returns>
 public static UserInfoJson Info(string accessToken, string openId, Language lang = Language.zh_CN)
 {
     //微信公众平台获取用户信息接口地址
     string urlFormat = "https://api.weixin.qq.com/cgi-bin/user/info?access_token={0}&openid={1}&lang={2}";
     return ApiHelper.Get<UserInfoJson>(accessToken, urlFormat, openId, lang.ToString());
     //错误时微信会返回错误码等信息,JSON数据包示例如下(该示例为AppID无效错误):
     //{"errcode":40013,"errmsg":"invalid appid"}
 }
 public override string Get(Language from, Language to, string text)
 {
     string res;
     if (_cache.TryGetValue(from.ToString() + "|" + to.ToString() + "|" + text, out res))
     {
         return res;
     }
     return null;
 }
Exemple #11
0
        /// <summary>
        /// 获取用户信息
        /// </summary>
        /// <param name="accessToken">调用接口凭证</param>
        /// <param name="openId">普通用户的标识,对当前公众号唯一</param>
        /// <param name="lang">返回国家地区语言版本,zh_CN 简体,zh_TW 繁体,en 英语</param>
        /// <returns></returns>
        public static UserInfoJson Info(string accessToken, string openId, Language lang = Language.zh_CN)
        {
            string url = string.Format("https://api.weixin.qq.com/cgi-bin/user/info?access_token={0}&openid={1}&lang={2}",
                accessToken, openId, lang.ToString());
            return HttpUtility.Get.GetJson<UserInfoJson>(url);

            //错误时微信会返回错误码等信息,JSON数据包示例如下(该示例为AppID无效错误):
            //{"errcode":40013,"errmsg":"invalid appid"}
        }
 public static string FormatLanguageEnum(Language? lang)
 {
     if (lang == Language.xpiglatin)
     {
         return "x-pig-latin";
     }
     if (lang == Language.zhtw)
     {
         return "zh-tw";
     }
     return lang.ToString();
 }
Exemple #13
0
 public string GetPathToDocumentationSamplesDirectory(Language language, string documentationVersion)
 {
     switch (language)
     {
         case Language.Csharp:
             return Path.Combine(PathToDocumentationDirectory, documentationVersion, "Samples", "csharp", "Raven.Documentation.Samples");
         case Language.Java:
             return Path.Combine(PathToDocumentationDirectory, documentationVersion, "Samples", "java", "src", "test", "java", "net", "ravendb");
         default:
             throw new NotSupportedException(language.ToString());
     }
 }
 // methods
 public void fetchAndSave(Language lng)
 {
     words = (lng == Language.Lazca) ? getLazcaWords ("A","B","C","C1","C2","D","E","F","G","Gy","G1","H","I","J","K","K1","Ky","Ky1","L","M","N","O","P","P1","R","S","S1","T","T1","U","V","X","X1","Y","Z","Z1","3","31") : getTurckeWords("A-C","D-J","K-R","S-Z");
     // null check
     if(words==null) {
         Console.WriteLine ("HATA: {0} hic bir kelime bulunamadi",lng.ToString());
         return;
     }
     StringBuilder wordlistHTML = new StringBuilder ("{\"wordlist\":[");
     int counter=0;
     foreach (var item in words) {
         if(item.Key==null || item.Value==null){
             Console.WriteLine ("HATA: Bir kelimede terslik var");
             break;
         }
         wordlistHTML.Append ("\""+  Regex.Replace(item.Key.Trim(), @"\t|\n|\r", " ").Trim() +"\",");
         writeToDisk(lng.ToString() + "_" + counter + ".html" , item.Value);
         counter++;
     }
     wordlistHTML.Append ("\"END\"]}");
     writeToDisk("datalist"+lng.ToString()+".json" , wordlistHTML.ToString());
 }
Exemple #15
0
 private static string ConvertLanguageToCssClass(Language language)
 {
     switch (language)
     {
         case Language.Csharp:
             return "language-csharp";
         case Language.Java:
             return "language-java";
         case Language.Http:
             return "language-javascript";
         default:
             throw new NotSupportedException(language.ToString());
     }
 }
Exemple #16
0
 private static string ConvertLanguageToDisplayName(Language language)
 {
     switch (language)
     {
         case Language.Csharp:
             return "C#";
         case Language.Java:
             return "Java";
         case Language.Http:
             return "HTTP";
         default:
             throw new NotSupportedException(language.ToString());
     }
 }
Exemple #17
0
 /// <summary>
 /// Get a list of all champions synchronously.
 /// </summary>
 /// <param name="region">Region from which to retrieve the data.</param>
 /// <param name="championData">Data to retrieve.</param>
 /// <param name="language">Language of the data to be retrieved.</param>
 /// <returns>A ChampionListStatic object containing all champions.</returns>
 public ChampionListStatic GetChampions(Region region, ChampionData championData = ChampionData.none
     , Language language = Language.en_US)
 {
     var wrapper = Cache.Get<ChampionListStaticWrapper>(ChampionsCacheKey);
     if (wrapper == null || language != wrapper.Language || championData != wrapper.ChampionData)
     {
         var json = requester.CreateRequest(string.Format(ChampionRootUrl, region.ToString())
             , new List<string>() { string.Format("locale={0}", language.ToString())
                 , championData == ChampionData.none ? string.Empty 
                     : string.Format("champData={0}", championData.ToString()) });
         var champs = JsonConvert.DeserializeObject<ChampionListStatic>(json);
         wrapper = new ChampionListStaticWrapper(champs, language, championData);
         Cache.Add<ChampionListStaticWrapper>(ChampionsCacheKey, wrapper);
     }
     return wrapper.ChampionListStatic;
 }
		/// <summary>
		/// Main function used to translate words
		/// </summary>
		/// <param name="destinationLanguage">Which language to use fro translation</param>
		/// <returns>Return the translated string mathcing destination language or an error string</returns>
		public string Translate (Language destinationLanguage)
		{
			if (m_LocalizedStrings != null)
			{
				for (int i = 0; i < m_LocalizedStrings.Count; i++)
				{
					XmlTranslatorLocalizedElement CurrentElement = (XmlTranslatorLocalizedElement)m_LocalizedStrings.Items[i];
					if (CurrentElement.LanguageUsed.Language == destinationLanguage)
					{
						return CurrentElement.TranslatedString.String;
					}
				}
			}
			
			return string.Format (CultureInfo.InvariantCulture, "NOT_FOUND_{0}_{1}", this.InternalName, destinationLanguage.ToString());
		}
Exemple #19
0
        /// <summary>
        /// 初始化方法
        /// </summary>
        /// <param name="textXML">指定xml</param>
        /// <param name="language">设定从xml中加载的语言</param>
        public static void Init(XElement textXML, Language language)
        {
            string Lname = language.ToString();

            var collection = from node in textXML.Elements("Item")
                             where node.Attribute("ID") != null
                             select new
                             {
                                 ID = int.Parse(node.Attribute("ID").Value),
                                 Content = node.Attribute(Lname) == null ? null : node.Attribute(Lname).Value
                             };

            foreach (var item in collection)
            {
                if (item.Content == null)
                {
                    continue;
                }

                text[item.ID] = item.Content;
            }
        }
Exemple #20
0
 /// <summary>
 /// Get a list of all summoner spells asynchronously.
 /// </summary>
 /// <param name="region">Region from which to retrieve the data.</param>
 /// <param name="summonerSpellData">Data to retrieve.</param>
 /// <param name="language">Language of the data to be retrieved.</param>
 /// <returns>A SummonerSpellListStatic object containing all summoner spells.</returns>
 public async Task<SummonerSpellListStatic> GetSummonerSpellsAsync(Region region
     , SummonerSpellData summonerSpellData = SummonerSpellData.none, Language language = Language.en_US)
 {
     var wrapper = Cache.Get<SummonerSpellListStaticWrapper>(SummonerSpellsCacheKey);
     if (wrapper == null || wrapper.Language != language || wrapper.SummonerSpellData != summonerSpellData)
     {
         var json = await requester.CreateRequestAsync(string.Format(SummonerSpellRootUrl, region.ToString())
             , new List<string>() { string.Format("locale={0}", language.ToString())
                 , summonerSpellData == SummonerSpellData.none ? string.Empty
                     : string.Format("spellData={0}", summonerSpellData.ToString()) });
         var spells = await JsonConvert.DeserializeObjectAsync<SummonerSpellListStatic>(json);
         wrapper = new SummonerSpellListStaticWrapper(spells, language, summonerSpellData);
         Cache.Add<SummonerSpellListStaticWrapper>(SummonerSpellsCacheKey, wrapper);
     }
     return wrapper.SummonerSpellListStatic;
 }
Exemple #21
0
 /// <summary>
 /// Get a rune asynchronously.
 /// </summary>
 /// <param name="region">Region from which to retrieve the data.</param>
 /// <param name="runeId">Id of the rune to retrieve.</param>
 /// <param name="runeData">Data to retrieve.</param>
 /// <param name="language">Language of the data to be retrieved.</param>
 /// <returns>A rune.</returns>
 public async Task<RuneStatic> GetRuneAsync(Region region, int runeId, RuneData runeData = RuneData.none
     , Language language = Language.en_US)
 {
     var wrapper = Cache.Get<RuneStaticWrapper>(RuneCacheKey + runeId);
     if (wrapper != null && wrapper.Language == language && wrapper.RuneData == RuneData.all)
     {
         return wrapper.RuneStatic;
     }
     else
     {
         var listWrapper = Cache.Get<RuneListStaticWrapper>(RunesCacheKey);
         if (listWrapper != null && listWrapper.Language == language && listWrapper.RuneData == runeData)
         {
             if (listWrapper.RuneListStatic.Runes.ContainsKey(runeId))
             {
                 return listWrapper.RuneListStatic.Runes[runeId];
             }
             else
             {
                 return null;
             }
         }
         else
         {
             var json = await requester.CreateRequestAsync(string.Format(RuneRootUrl, region.ToString())
                 + string.Format(IdUrl, runeId)
                 , new List<string>() { string.Format("locale={0}", language.ToString())
                     , runeData == RuneData.none ? string.Empty
                         : string.Format("runeData={0}", runeData.ToString()) });
             var rune = await JsonConvert.DeserializeObjectAsync<RuneStatic>(json);
             Cache.Add<RuneStaticWrapper>(RuneCacheKey + runeId, new RuneStaticWrapper(rune, language, runeData));
             return rune;
         }
     }
 }
Exemple #22
0
 /// <summary>
 /// Get a list of all runes asynchronously.
 /// </summary>
 /// <param name="region">Region from which to retrieve the data.</param>
 /// <param name="runeData">Data to retrieve.</param>
 /// <param name="language">Language of the data to be retrieved.</param>
 /// <returns>A RuneListStatic object containing all runes.</returns>
 public async Task<RuneListStatic> GetRunesAsync(Region region, RuneData runeData = RuneData.none
     , Language language = Language.en_US)
 {
     var wrapper = Cache.Get<RuneListStaticWrapper>(RunesCacheKey);
     if (wrapper == null || language != wrapper.Language | runeData != wrapper.RuneData)
     {
         var json = await requester.CreateRequestAsync(string.Format(RuneRootUrl, region.ToString())
             , new List<string>() { string.Format("locale={0}", language.ToString())
                 , runeData == RuneData.none ? string.Empty
                     : string.Format("runeListData={0}", runeData.ToString()) });
         var runes = await JsonConvert.DeserializeObjectAsync<RuneListStatic>(json);
         wrapper = new RuneListStaticWrapper(runes, language, runeData);
         Cache.Add<RuneListStaticWrapper>(RunesCacheKey, wrapper);
     }
     return wrapper.RuneListStatic;
 }
Exemple #23
0
 /// <summary>
 /// Get a mastery asynchronously.
 /// </summary>
 /// <param name="region">Region from which to retrieve the data.</param>
 /// <param name="masteryId">Id of the mastery to retrieve.</param>
 /// <param name="masteryData">Data to retrieve.</param>
 /// <param name="language">Language of th data to be retrieved.</param>
 /// <returns>A mastery.</returns>
 public async Task<MasteryStatic> GetMasteryAsync(Region region, int masteryId
     , MasteryData masteryData = MasteryData.none, Language language = Language.en_US)
 {
     var wrapper = Cache.Get<MasteryStaticWrapper>(MasteryCacheKey + masteryId);
     if (wrapper != null && wrapper.Language == language && wrapper.MasteryData == masteryData)
     {
         return wrapper.MasteryStatic;
     }
     else
     {
         var listWrapper = Cache.Get<MasteryListStaticWrapper>(MasteriesCacheKey);
         if (listWrapper != null && listWrapper.Language == language && listWrapper.MasteryData == masteryData)
         {
             if (listWrapper.MasteryListStatic.Masteries.ContainsKey(masteryId))
             {
                 return listWrapper.MasteryListStatic.Masteries[masteryId];
             }
             else
             {
                 return null;
             }
         }
         else
         {
             var json = await requester.CreateRequestAsync(string.Format(MasteryRootUrl, region.ToString())
                 + string.Format(IdUrl, masteryId.ToString())
                 , new List<string>() { string.Format("locale={0}", language.ToString())
                     , masteryData == MasteryData.none ? string.Empty
                         : string.Format("masteryData={0}", masteryData.ToString()) });
             var mastery = await JsonConvert.DeserializeObjectAsync<MasteryStatic>(json);
             Cache.Add<MasteryStaticWrapper>(MasteryCacheKey + masteryId
                 , new MasteryStaticWrapper(mastery, language, masteryData));
             return mastery;
         }
     }
 }
Exemple #24
0
 /// <summary>
 /// Get a list of all masteries asynchronously.
 /// </summary>
 /// <param name="region">Region from which to retrieve the data.</param>
 /// <param name="masteryData">Data to retrieve.</param>
 /// <param name="language">Language of the data to be retrieved.</param>
 /// <returns>An MasteryListStatic object containing all masteries.</returns>
 public async Task<MasteryListStatic> GetMasteriesAsync(Region region
     , MasteryData masteryData = MasteryData.none, Language language = Language.en_US)
 {
     var wrapper = Cache.Get<MasteryListStaticWrapper>(MasteriesCacheKey);
     if (wrapper == null || language != wrapper.Language || masteryData != wrapper.MasteryData)
     {
         var json = await requester.CreateRequestAsync(string.Format(MasteryRootUrl, region.ToString())
             , new List<string>() { string.Format("locale={0}", language.ToString())
                 , masteryData == MasteryData.none ? string.Empty
                     : string.Format("masteryListData={0}", masteryData.ToString()) });
         var masteries = await JsonConvert.DeserializeObjectAsync<MasteryListStatic>(json);
         wrapper = new MasteryListStaticWrapper(masteries, language, masteryData);
         Cache.Add<MasteryListStaticWrapper>(MasteriesCacheKey, wrapper);
     }
     return wrapper.MasteryListStatic;
 }
Exemple #25
0
 /// <summary>
 /// Get a list of all items synchronously.
 /// </summary>
 /// <param name="region">Region from which to retrieve the data.</param>
 /// <param name="itemData">Data to retrieve.</param>
 /// <param name="language">Language of the data to be retrieved.</param>
 /// <returns>An ItemListStatic object containing all items.</returns>
 public async Task<ItemListStatic> GetItemsAsync(Region region, ItemData itemData = ItemData.none
     , Language language = Language.en_US)
 {
     var wrapper = Cache.Get<ItemListStaticWrapper>(ItemsCacheKey);
     if (wrapper == null || language != wrapper.Language || itemData != wrapper.ItemData)
     {
         var json = await requester.CreateRequestAsync(string.Format(ItemRootUrl, region.ToString())
             , new List<string>() { string.Format("locale={0}", language.ToString())
                 , itemData == ItemData.none ? string.Empty
                     : string.Format("itemListData={0}", itemData.ToString()) });
         var items = await JsonConvert.DeserializeObjectAsync<ItemListStatic>(json);
         wrapper = new ItemListStaticWrapper(items, language, itemData);
         Cache.Add<ItemListStaticWrapper>(ItemsCacheKey, wrapper);
     }
     return wrapper.ItemListStatic;
 }
Exemple #26
0
 public static string ToString(Language value)
 {
     return value.ToString().Replace('_', '-');
 }
 public static FunctionTree BuildFunctionTree(Guid userId, Language language)
 {
     FunctionTree tree = new FunctionTree();
     try
     {
         using (SqlConnection sqlConnection = DataAccess.GetInstance().GetSqlConnection())
         {
             SqlCommand command = sqlConnection.CreateCommand();
             command.CommandText = "[dbo].[FunctionTree_GetData]";
             command.CommandType = System.Data.CommandType.StoredProcedure;
             command.Parameters.Add(new SqlParameter("@userId", userId));
             command.Parameters.Add(new SqlParameter("@language", language.ToString()));
             SqlDataReader reader = command.ExecuteReader();
             while (reader.Read())
             {
                 Category category = new Category();
                 category.CategoryType = (ModuleCategoryType)Enum.Parse(typeof(ModuleCategoryType), reader["CategoryCode"].ToString());
                 category.CategoryDescription = reader["Description"].ToString();
                 tree.Categories.Add(category);
             }
             reader.NextResult();
             while (reader.Read())
             {
                 Module module = new Module();
                 module.Type = (ModuleType)Enum.Parse(typeof(ModuleType), reader["ModuleCode"].ToString());
                 module.ModuleDescription = reader["Description"].ToString();
                 module.Category = (ModuleCategoryType)Enum.Parse(typeof(ModuleCategoryType), reader["parentCode"].ToString());
                 tree.Modules.Add(module);
             }
         }
         return tree;
     }
     catch (Exception ex)
     {
         Logger.AddEvent(TraceEventType.Error, "UserDataAccess.BuildFunctionTree error:\r\n{0}", ex.ToString());
         return tree;
     }
 }
Exemple #28
0
 /// <summary>
 /// Get a summoner spell asynchronously.
 /// </summary>
 /// <param name="region">Region from which to retrieve the data.</param>
 /// <param name="summonerSpell">Summoner spell to retrieve.</param>
 /// <param name="summonerSpellData">Data to retrieve.</param>
 /// <param name="language">Language of the data to be retrieved.</param>
 /// <returns>A summoner spell.</returns>
 public async Task<SummonerSpellStatic> GetSummonerSpellAsync(Region region, SummonerSpell summonerSpell
     , SummonerSpellData summonerSpellData = SummonerSpellData.none, Language language = Language.en_US)
 {
     var wrapper = Cache.Get<SummonerSpellStaticWrapper>(SummonerSpellCacheKey + summonerSpell.ToCustomString());
     if (wrapper != null && wrapper.SummonerSpellData == summonerSpellData && wrapper.Language == language)
     {
         return wrapper.SummonerSpellStatic;
     }
     else
     {
         var listWrapper = Cache.Get<SummonerSpellListStaticWrapper>(SummonerSpellsCacheKey);
         if (listWrapper != null && listWrapper.SummonerSpellData == summonerSpellData
             && listWrapper.Language == language)
         {
             if (listWrapper.SummonerSpellListStatic.SummonerSpells.ContainsKey(summonerSpell.ToCustomString()))
             {
                 return listWrapper.SummonerSpellListStatic.SummonerSpells[summonerSpell.ToCustomString()];
             }
             else
             {
                 return null;
             }
         }
         else
         {
             var json = await requester.CreateRequestAsync(string.Format(SummonerSpellRootUrl, region.ToString())
                 + string.Format(IdUrl, (int)summonerSpell)
                 , new List<string>() { string.Format("locale={0}", language.ToString())
                     , summonerSpellData == SummonerSpellData.none ? string.Empty
                         : string.Format("spellData={0}", summonerSpellData.ToString()) });
             var spell = await JsonConvert.DeserializeObjectAsync<SummonerSpellStatic>(json);
             Cache.Add<SummonerSpellStaticWrapper>(SummonerSpellCacheKey + summonerSpell.ToCustomString()
                 , new SummonerSpellStaticWrapper(spell, language, summonerSpellData));
             return spell;
         }
     }
 }
Exemple #29
0
 /// <summary>
 /// Get a champion asynchronously.
 /// </summary>
 /// <param name="region">Region from which to retrieve the data.</param>
 /// <param name="championId">Id of the champion to retrieve.</param>
 /// <param name="championData">Data to retrieve.</param>
 /// <param name="language">Language of the data to be retrieved.</param>
 /// <returns>A champion.</returns>
 public async Task<ChampionStatic> GetChampionAsync(Region region, int championId
     , ChampionData championData = ChampionData.none, Language language = Language.en_US)
 {
     var wrapper = Cache.Get<ChampionStaticWrapper>(ChampionCacheKey + championId);
     if (wrapper != null && wrapper.Language == language && wrapper.ChampionData == championData)
     {
         return wrapper.ChampionStatic;
     }
     else
     {
         var listWrapper = Cache.Get<ChampionListStaticWrapper>(ChampionsCacheKey);
         if (listWrapper != null && listWrapper.Language == language && listWrapper.ChampionData == championData)
         {
             return listWrapper.ChampionListStatic.Champions.Values
                 .Where((c) => c.Id == championId).FirstOrDefault();
         }
         else
         {
             var json = await requester.CreateRequestAsync(string.Format(ChampionRootUrl, region.ToString())
                 + string.Format(IdUrl, championId)
                 , new List<string>() { string.Format("locale={0}", language.ToString())
                     , championData == ChampionData.none ? string.Empty 
                         : string.Format("champData={0}", championData.ToString()) });
             var champ = await JsonConvert.DeserializeObjectAsync<ChampionStatic>(json);
             Cache.Add<ChampionStaticWrapper>(ChampionCacheKey + championId
                 , new ChampionStaticWrapper(champ, language, championData));
             return champ;
         }
     }
 }
Exemple #30
0
 /// <summary>
 /// Get an item asynchronously.
 /// </summary>
 /// <param name="region">Region from which to retrieve the data.</param>
 /// <param name="itemId">Id of the item to retrieve.</param>
 /// <param name="itemData">Data to retrieve.</param>
 /// <param name="language">Language of the data to be retrieved.</param>
 /// <returns>An item.</returns>
 public async Task<ItemStatic> GetItemAsync(Region region, int itemId, ItemData itemData = ItemData.none
     , Language language = Language.en_US)
 {
     var wrapper = Cache.Get<ItemStaticWrapper>(ItemCacheKey + itemId);
     if (wrapper != null && wrapper.Language == language && wrapper.ItemData == itemData)
     {
         return wrapper.ItemStatic;
     }
     else
     {
         var listWrapper = Cache.Get<ItemListStaticWrapper>(ItemsCacheKey);
         if (listWrapper != null && listWrapper.Language == language && listWrapper.ItemData == itemData)
         {
             if (listWrapper.ItemListStatic.Items.ContainsKey(itemId))
             {
                 return listWrapper.ItemListStatic.Items[itemId];
             }
             else
             {
                 return null;
             }
         }
         else
         {
             var json = await requester.CreateRequestAsync(string.Format(ItemRootUrl, region.ToString())
                 + string.Format(IdUrl, itemId)
                 , new List<string>() { string.Format("locale={0}", language.ToString())
                     , itemData == ItemData.none ? string.Empty
                         : string.Format("itemData={0}", itemData.ToString()) });
             var item = await JsonConvert.DeserializeObjectAsync<ItemStatic>(json);
             Cache.Add<ItemStaticWrapper>(ItemCacheKey + itemId, new ItemStaticWrapper(item, language, itemData));
             return item;
         }
     }
 }