/// <summary> /// Adds Configuration Item. /// </summary> public void AddConfiguration(ConfigurationModel item) { //Select first item added by default if (!_configurationList.HasItems <ConfigurationModel>()) { item.Selected = true; } _configurationList.Add(item); }
public void LogAuditEvent(string auditType, List <int> patients) { if (patients.HasItems()) { List <int> auditList = new List <int>(patients); while (auditList.HasItems()) { int count = auditList.Count > 1000 ? 1000 : auditList.Count; List <int> patientListChunk = new List <int>(auditList.GetRange(0, count)); auditList.RemoveRange(0, count); if (patientListChunk.Count > 0) { var auditLog = GetAuditLog(); auditLog.Type = auditType; auditLog.Patients = patientListChunk; AuditService.Instance.LogEvent(auditLog); } } } else { var auditLog = GetAuditLog(); auditLog.Type = auditType; AuditService.Instance.LogEvent(auditLog); } }
public async Task <List <ChatUserViewModel> > GetChatUserAsync([FromBody] List <long> chattinguserids) { //获取用户 var allUsers = await _systemService.GetAllUserAsync(); List <ChatUserViewModel> chatUsers = allUsers.Select(m => new ChatUserViewModel { UserId = m.UserId, UserName = m.UserName, HeadImg = m.HeadImg, CreateTime = m.CreateTime, IsChatting = 0, IsOnline = 0 }).ToList(); var userids = SignalRMessageGroups.UserGroups.Where(m => m.GroupName == "ChatHubGroup").Select(m => m.UserId); foreach (var item in chatUsers) { if (userids.Contains(item.UserId)) { item.IsOnline = 1; } if (chattinguserids.HasItems() && chattinguserids.Contains(item.UserId)) { item.IsChatting = 1; } } return(chatUsers.OrderByDescending(m => m.IsChatting).ThenByDescending(m => m.IsOnline).ThenBy(m => m.CreateTime).ToList()); }
public void RunCommand(CommandHandler sender, List<string> args) { RetrievalType? type = null; if (args.HasItems()) { if (args[0].EqualsIgnoreCase("schema")) { type = RetrievalType.Schema; } else if (args[0].EqualsIgnoreCase("prices")) { type = RetrievalType.PriceData; } else if (args[0].EqualsIgnoreCase("market")) { type = RetrievalType.MarketData; } else if (args[0].EqualsIgnoreCase("backpack")) { type = RetrievalType.BackpackContents; } } Refresh(type); }
private static ActiveDirectoryUserInfo FillUserInfo(SearchResult searchResult) { var userInfo = new ActiveDirectoryUserInfo(); var resultCollection = searchResult.Properties["mail"]; foreach (var result in resultCollection) { userInfo.Mail = result.ToString(); } resultCollection = searchResult.Properties["memberOf"]; var memberOf = new List <string>(); foreach (object result in resultCollection) { memberOf.Add(result.ToString()); } userInfo.MemberOf = memberOf.HasItems() ? memberOf.ToArray() : null; resultCollection = searchResult.Properties["name"]; foreach (object result in resultCollection) { userInfo.Name = result.ToString(); } resultCollection = searchResult.Properties["sAMAccountName"]; foreach (object result in resultCollection) { userInfo.Login = result.ToString(); } return(userInfo); }
public static bool TryParseEmailAddresses(string email, out ParseAddressInfo[] info, bool throwExceptionIfFail, char separator = ',') { if (string.IsNullOrEmpty(email)) { throw new ArgumentException($"{nameof(email)} is null or empty.", nameof(email)); } var result = new List <ParseAddressInfo>(); var addresses = email.Split(separator); for (var i = 0; i < addresses.Length; i++) { var success = TryParseEmailAddress(addresses[i], out ParseAddressInfo parsedInfo, throwExceptionIfFail); if (success && parsedInfo.IsNotNull()) { result.Add(parsedInfo); } } if (result.HasItems()) { info = result.ToArray(); return(true); } else { info = null; return(false); } }
public async Task <List <TItem> > GetItem <TItem>(List <ulong> itemIds, string endpointPath, IMongoCollection <TItem> collection) where TItem : IgdbItem { if (!itemIds.HasItems()) { return(null); } var filter = Builders <TItem> .Filter.In(nameof(IgdbItem.id), itemIds); var cacheItems = collection.Find(filter).ToList(); if (cacheItems.Count == itemIds.Count) { return(cacheItems); } var idsToGet = ListExtensions.GetDistinctItemsP(itemIds, cacheItems.Select(a => a.id)); var stringResult = await SendStringRequest(endpointPath, $"fields *; where id = ({string.Join(',', idsToGet)}); limit 500;"); var items = Serialization.FromJson <List <TItem> >(stringResult); collection.InsertMany(items); cacheItems.AddRange(items); return(cacheItems); }
public void DeleteActivityExpenses(List <ActivityExpense> activityExpenseList) { if (!activityExpenseList.HasItems()) { return; } var activityExpenseIdList = new List <Int32>(); var i = 0; foreach (var activtiyExpense in activityExpenseList) { activityExpenseIdList.Add(activtiyExpense.ObjectId); if (i++ < 100) { continue; } _activityExpenseService.DeleteActivityExpenses(activityExpenseIdList.ToArray()); activityExpenseIdList.Clear(); i = 0; } if (activityExpenseIdList.HasItems()) { _activityExpenseService.DeleteActivityExpenses(activityExpenseIdList.ToArray()); } }
public List <ReadWBSSpreadResponseWBSSpread> ReadWbsSpreads(List <Int32> objectIdList, DateTime?startDate, DateTime?endDate, SummarizedSpreadPeriodType periodType, List <SummarizedSpreadFieldType> fieldsToSpeadList) { var retVal = new List <ReadWBSSpreadResponseWBSSpread>(); if (!(objectIdList.HasItems() && fieldsToSpeadList.HasItems() && startDate.HasValue && endDate.HasValue)) { return(new List <ReadWBSSpreadResponseWBSSpread>()); } if (startDate.Value >= endDate.Value) { return(retVal); } var readWbsSpread = new ReadWBSSpread { StartDate = startDate.Value, EndDate = endDate.Value, PeriodType = periodType, IncludeCumulative = false, SpreadField = fieldsToSpeadList.ToArray(), WBSObjectId = objectIdList.ToArray() }; return(SpreadService.ReadWBSSpread(readWbsSpread).ToList()); }
public override GameAchievements GetAchievements(Game game) { List <Achievements> AllAchievements = new List <Achievements>(); GameAchievements Result = new GameAchievements { Name = game.Name, HaveAchivements = false, Total = 0, Unlocked = 0, Locked = 0, Progression = 0, Achievements = AllAchievements }; List <XboxAchievement> ListAchievements = new List <XboxAchievement>(); try { ListAchievements = GetXboxAchievements(game.GameId, game.Name).GetAwaiter().GetResult(); #if DEBUG logger.Debug("SuccessStory - XboxAchievements - " + JsonConvert.SerializeObject(ListAchievements)); #endif foreach (XboxAchievement xboxAchievement in ListAchievements) { AllAchievements.Add(new Achievements { ApiName = string.Empty, Name = xboxAchievement.name, Description = (xboxAchievement.progression.timeUnlocked == default(DateTime)) ? xboxAchievement.lockedDescription : xboxAchievement.description, IsHidden = xboxAchievement.isSecret, Percent = 100, DateUnlocked = xboxAchievement.progression.timeUnlocked, UrlLocked = string.Empty, UrlUnlocked = xboxAchievement.mediaAssets[0].url }); } Result = new GameAchievements { Name = game.Name, HaveAchivements = AllAchievements.HasItems(), Total = AllAchievements.Count, Unlocked = AllAchievements.FindAll(x => x.DateUnlocked != default(DateTime)).Count, Locked = AllAchievements.FindAll(x => x.DateUnlocked == default(DateTime)).Count, Progression = 0, Achievements = AllAchievements }; Result.Progression = (Result.Total != 0) ? (int)Math.Ceiling((double)(Result.Unlocked * 100 / Result.Total)) : 0; } catch (Exception ex) { Common.LogError(ex, "SuccessStory", "Failed to Xbox profile achievements"); } return(Result); }
/// <summary> /// Adds Configuration List /// </summary> public void AddConfigurationList(List <ConfigurationModel> configurations) { if (configurations.HasItems <ConfigurationModel>()) { _configurationList = configurations; _configurationList.First().Selected = true; } }
public void HasItems_NoItemsInList_IsFalse() { // ReSharper disable once CollectionNeverUpdated.Local var item = new List <string>(); var result = item.HasItems(); result.ShouldBeFalse(); }
public static T GetRandom <T>(this List <T> list) { if (!list.HasItems()) { return(default(T)); } return(list[UnityEngine.Random.Range(0, list.Count)]); }
/// <summary> /// Copies the collection to a generic List. /// </summary> /// <typeparam name="T">Type</typeparam> /// <param name="source">The source.</param> /// <returns>List<T>.</returns> /// <exception cref="ArgumentNullException">source</exception> public static List <T> CopyToList <T>(this List <T> source) { if (source.HasItems() == false) { throw new ArgumentNullException(nameof(source), $"{nameof(source)} is null."); } return(new List <T>(source)); }
public static List <T> GetRandomRemove <T>(this List <T> list, int count) { if (!list.HasItems()) { return(null); } List <T> selected = new List <T>(); while (list.HasItems() && selected.Count < count) { T item = list[UnityEngine.Random.Range(0, list.Count)]; list.Remove(item); selected.Add(item); } return(selected); }
public void HasItems() { List <string> a = new List <string>() { string.Empty }; Assert.True(a.HasItems()); }
public void HasItems_ItemsInList_IsTrue() { var item = new List <string> { "Dog", "Cat" }; var result = item.HasItems(); result.ShouldBeTrue(); }
/// <summary> /// 返回一个HTML select标签,标签列表内容来源于输入的枚举类型的各项的Description或DisplayName特性以及各项的数值值 /// </summary> /// <typeparam name="TModel"></typeparam> /// <typeparam name="TProperty"></typeparam> /// <param name="htmlHelper"></param> /// <param name="expression"></param> /// <param name="enumType"></param> /// <param name="htmlAttributes"></param> /// <param name="defaultValue"></param> /// <param name="allOptionStr"></param> /// <param name="lstExcludeValue">除了默认值,在这里的都将被删除</param> /// <param name="lstOnlyIncludeValue">除了默认值,不在这里的都将被删除</param> /// <returns></returns> public static MvcHtmlString DropDownListFor <TModel, TProperty>( this HtmlHelper <TModel> htmlHelper, Expression <Func <TModel, TProperty> > expression, Type enumType, IDictionary <string, object> htmlAttributes, object defaultValue = null, string allOptionStr = "", List <string> lstExcludeValue = null, List <string> lstOnlyIncludeValue = null ) { if (enumType == null) { throw new ArgumentNullException("enumType"); } if (enumType.IsGenericType && enumType.GetGenericTypeDefinition() == typeof(Nullable <>)) { enumType = enumType.GetGenericArguments()[0]; } object defaultVal = null; MethodInfo mi; SelectProcess(expression, enumType, defaultValue, ref defaultVal, out mi); var items = Enum.GetValues(enumType).Cast <Enum>() .Select(p => new SelectListItem { Selected = (defaultVal != null && Enum.Equals(p, defaultVal)), Text = p.GetDescription(), Value = mi.Invoke(null, new object[] { p }).ToString() }).ToList(); if (lstExcludeValue.HasItems()) { items.RemoveAll(p => lstExcludeValue.Contains(p.Value)); } if (lstOnlyIncludeValue.HasItems()) { items.RemoveAll(p => !lstOnlyIncludeValue.Contains(p.Value)); } if (!string.IsNullOrEmpty(allOptionStr)) { items.Insert(0, new SelectListItem { Selected = (!items.Any(p => p.Selected == true)), Text = allOptionStr, Value = "" }); } var mvcStr = htmlHelper.DropDownListFor(expression, items, htmlAttributes); return(mvcStr); }
public static T GetRandomRemove <T>(this List <T> list) { if (!list.HasItems()) { return(default(T)); } T item = list[UnityEngine.Random.Range(0, list.Count)]; list.Remove(item); return(item); }
public void Collections_Are_Determined_To_Contain_No_Items() { //Arrange List<int> testObjects = new List<int>(); bool result = false; //Act result = testObjects.HasItems(); //Assert AssertFalse(result); }
public static List <SearchResult> GetMultiOriginData(string searchTerm, string PluginUserDataPath) { #if DEBUG logger.Debug($"MetadataLocal - GetMultiOriginData({searchTerm})"); #endif string searchUrl = @"https://api1.origin.com/xsearch/store/fr_fr/fra/products?searchTerm={0}&start=0&rows=20&isGDP=true"; var results = new List <SearchResult>(); try { string result = Web.DownloadStringDataWithGz(string.Format(searchUrl, searchTerm)).GetAwaiter().GetResult(); JObject resultObject = JObject.Parse(result); string stringData = JsonConvert.SerializeObject(resultObject["games"]["game"]); List <GameStoreSearchResponse> listOriginGames = JsonConvert.DeserializeObject <List <GameStoreSearchResponse> >(stringData); if (listOriginGames.HasItems()) { foreach (var OriginGame in listOriginGames) { var title = OriginGame.gameName.Trim();; var img = OriginGame.image; OriginApi originApi = new OriginApi(PluginUserDataPath); string gameId = originApi.GetOriginId(title); #if DEBUG logger.Debug($"MetadataLocal - Find for {title} - {gameId}"); #endif if (!gameId.IsNullOrEmpty()) { results.Add(new SearchResult { Name = title, ImageUrl = img, StoreName = "Origin", StoreId = gameId }); } } } } catch (Exception ex) { Common.LogError(ex, "MetadataLocal", $"Failed to download {string.Format(searchUrl, searchTerm)}"); } return(results); }
Dictionary <Unit, List <Tile> > GetEnemyAttackTileMap() { Dictionary <Unit, List <Tile> > unit_map = new Dictionary <Unit, List <Tile> >(); List <Unit> enemy_group = Unit.GetAllUnitsOfOwner(0, false); foreach (Unit enemy in enemy_group) { List <Tile> attack_tiles = GetTilesFromWhichUnitCanAttack(enemy); if (attack_tiles.HasItems()) { unit_map.Add(enemy, attack_tiles); } } return(unit_map); }
public IEnumerable GetErrors(string propertyName) { var errors = new List <string>(); switch (propertyName) { case "ReSortieCondition": if (this.reSortieConditionError != null) { errors.Add(this.reSortieConditionError); } break; } return(errors.HasItems() ? errors : null); }
List <List <Tile> > GetPathsToAttackZone(Unit target) { List <List <Tile> > path_list = new List <List <Tile> >(); List <Tile> tiles = GetTilesFromWhichUnitCanAttack(target); foreach (Tile t in tiles) { List <Tile> path = TileManager.Instance.FindPath(m_unit.currentTile, t, m_unit); if (path.HasItems()) { path_list.Add(path); } } return(path_list); }
async Task InitExamPartsAsync(Exam exam, ExamSettingsViewModel examSettingsView, IEnumerable <SubjectQuestionsViewModel> subjectQuestionsList) { List <int> recruitQuestionIds = new List <int>(); if (exam.ExamType == ExamType.Recruit) { //只要歷屆試題 recruitQuestionIds = _questionsService.FetchAllRecruitQuestionIds().ToList(); } var pickedQids = new List <int>(); foreach (var examPartSettings in examSettingsView.Parts) { // 依照設定, 隨機出題 var examPart = new ExamPart { Points = examPartSettings.Points, MultiAnswers = examPartSettings.MultiAnswers, Order = examPartSettings.Order, OptionCount = examPartSettings.OptionCount, Title = examPartSettings.Title }; var qids = examPartSettings.PickQuestionIds(subjectQuestionsList, pickedQids, recruitQuestionIds); pickedQids.AddRange(qids); var questions = (await _questionsService.FetchByIdsAsync(qids)).ToList(); examPart.LoadExamQuestions(questions); exam.Parts.Add(examPart); } //測試是否全為歷屆試題 if (recruitQuestionIds.HasItems()) { var examQids = exam.QuestionIds; var notIn = examQids.Where(x => !recruitQuestionIds.Contains(x)); if (notIn.HasItems()) { throw new ExamNotRecruitQuestionSelected(); } } }
public void SyncRecruitQuestions(DefaultContext _context, List <RecruitQuestion> models) { var deletedEntities = new List <RecruitQuestion>(); foreach (var existingItem in _context.RecruitQuestions) { var newItem = models.FirstOrDefault(x => x.RecruitId == existingItem.RecruitId && x.QuestionId == existingItem.QuestionId); if (newItem == null) { deletedEntities.Add(existingItem); } } if (deletedEntities.HasItems()) { _context.RecruitQuestions.RemoveRange(deletedEntities); } _context.SaveChanges(); }
private IEnumerable <TReturn> ExecuteQuery <TReturn>(SapCommand command) { Type t = typeof(TReturn); dynamic config = this.GetConfigByType <TReturn>(); var items = new List <TReturn>(); SapDataReader reader = command.ExecuteReader(config.Key != SAPDataAccessQuery.DefaultTableName ? config.Key : null); var mapping = (FieldDataConfig <TReturn>)config.Value.Value; while (reader.Read()) { var item = Activator.CreateInstance <TReturn>(); foreach (var property in mapping.Properties) { var field = property.Key; var data = reader.Item.GetString(property.Value); field.SetValue(item, data); } items.Add(item); } return(items.HasItems() ? items : Enumerable.Empty <TReturn>()); }
string GenerateOrderByString() { var orders = new List <string>(); var orderby = RootNode.GetParameter("orderby"); if (!string.IsNullOrEmpty(orderby)) { if (orderby == "none") { return(string.Empty); } var o = orderby.Split('.'); if ((o.Length == 2 && Metadata.PropertyNames.Contains(o[0]) && Metadata.GetPropertyType(o[0]) is EntityType) || (o.Length == 1 && Metadata.PropertyNames.Contains(orderby))) { var order = " _this." + orderby; order += RootNode.GetParameter("desc") == null ? " asc" : " desc"; orders.Add(order); } Querystring["orderby"] = orderby; if (RootNode.GetParameter("desc") != null) { Querystring["desc"] = null; } } else { orders.AddRange( from attr in base.OrderBy.OrderBy(a => a.Order) let order = " _this." + attr.Prop select order + (attr.Ascending ? " asc" : " desc") ); } return(orders.HasItems() ? " order by " + string.Join(" , ", orders) : string.Empty); }
public FilterBehaviour IsIgnored(IStatusUpdate update) { var applicableFilters = new List<Filter>(); if (update.Parents != null) foreach (IMicroblog microblog in update.Parents.ToList()) { try { foreach (UpdateType updateType in update.Types) { IEnumerable<Filter> matchingUpdates = GetFiltersFor(microblog, updateType).Where( f => f.IsIncluded != FilterBehaviour.NoBehaviour); applicableFilters.AddRange(matchingUpdates); } } catch (Exception ex) { CompositionManager.Get<IExceptionReporter>().ReportHandledException(ex); } } // do we have any excludes for these UpdateTypes if (applicableFilters.HasItems(f => f.IsIncluded == FilterBehaviour.Exclude)) return FilterBehaviour.Exclude; IEnumerable<ContactFilter> matchingContacts = Filters.OfType<ContactFilter>().Where(f => f.IsMatch(update)) .Where(f => f.IsIncluded != FilterBehaviour.NoBehaviour); applicableFilters.AddRange(matchingContacts); // do we have any excludes for this contact if (applicableFilters.HasItems(f => f.IsIncluded == FilterBehaviour.Exclude)) return FilterBehaviour.Exclude; IEnumerable<TextFilter> textFilters = Filters.OfType<TextFilter>() .Where(filter => filter.IsMatch(update)) .Where(f => f.IsIncluded != FilterBehaviour.NoBehaviour); applicableFilters.AddRange(textFilters); #region MahTweets Scripting : ScriptFilters assemblate if (_scriptmanager != null && (_scriptmanager.IsScriptEngineActive && ScriptFiltersActivated != null)) { if (ScriptFiltersActivated.Count > 0) { foreach (FilterBehaviour fb in from sf in ScriptFiltersActivated let fb = FilterBehaviour.NoBehaviour select ExecuteFilterScript(sf.ScriptKey, update) into fb where fb != FilterBehaviour.NoBehaviour select fb) { if (fb == FilterBehaviour.Include) { // update.ColorARGB = sf.ScriptFilterColor.ToString(); } return fb; } } } #endregion // do we have any excludes for this text if (applicableFilters.HasItems(f => f.IsIncluded == FilterBehaviour.Exclude)) return FilterBehaviour.Exclude; if (applicableFilters.HasItems(f => f.IsIncluded == FilterBehaviour.Include)) return FilterBehaviour.Include; return FilterBehaviour.NoBehaviour; }
public IEnumerable <T> Retrieve() { if (String.IsNullOrWhiteSpace(this.ListName)) { throw new Exception("The list name was not provided."); } if (!this.FieldsMapping.HasItems()) { throw new Exception("The field mapping is empty."); } var clientContext = RepositorySharepointAccess.GetContext(); var oList = clientContext.Web.Lists.GetByTitle(this.ListName); var camlQuery = new CamlQuery { ViewXml = this.GetCamlQuery() }; /* * var sw = new StringWriter(); * var oWebsite = clientContext.Web; * var collList = oWebsite.Lists; * var listInfo = clientContext.LoadQuery( * collList.Include( * list => list.Title, * list => list.Fields.Include(field => field.Title, field => field.InternalName))); * * clientContext.ExecuteQuery(); * * foreach (var list in listInfo) * { * var collField = list.Fields; * * foreach (var oField in collField) * { * sw.WriteLine("List: {0} \n\t Field Title: {1} \n\t Field Internal Name: {2}", list.Title, oField.Title, oField.InternalName); * } * } * var lalala = sw.ToString(); */ var collListItem = oList.GetItems(camlQuery); clientContext.Load(collListItem); clientContext.ExecuteQuery(); var itemType = typeof(T); var itens = new List <T>(); foreach (var oListItem in collListItem) { var item = Activator.CreateInstance <T>(); foreach (var fieldMap in this.FieldsMapping) { var prop = itemType.GetProperty(fieldMap.Key); if (prop != null && (oListItem[fieldMap.Value.Name] is FieldLookupValue) && oListItem[fieldMap.Value.Name] != null) { prop.SetValue(item, Convert.ChangeType(((FieldLookupValue)oListItem[fieldMap.Value.Name]).LookupValue, prop.PropertyType)); } else if (prop != null && !(oListItem[fieldMap.Value.Name] is FieldUserValue) && oListItem[fieldMap.Value.Name] != null) { prop.SetValue(item, Convert.ChangeType(oListItem[fieldMap.Value.Name], prop.PropertyType)); } } itens.Add(item); } return(itens.HasItems() ? itens : null); }
public static void UpdateTheme(string themeDirectory, ApplicationMode mode) { var themeManifestPath = Path.Combine(themeDirectory, "theme.yaml"); var currentThemeMan = ThemeDescription.FromFile(themeManifestPath); var origThemeApiVersion = new Version(currentThemeMan.ThemeApiVersion); if (!File.Exists(Path.Combine(themeDirectory, Themes.ThemeProjName))) { throw new Exception("Cannot update theme that was not generated via Toolbox utility."); } if (ThemeManager.GetApiVersion(mode) == origThemeApiVersion) { logger.Warn("Theme is already updated to current API version."); return; } var folder = Paths.GetNextBackupFolder(themeDirectory); BackupTheme(themeDirectory, Paths.GetNextBackupFolder(themeDirectory)); logger.Info($"Current theme backed up into \"{Path.GetFileName(folder)}\" folder."); var defaultThemeDir = Path.Combine(Paths.GetThemesPath(mode), "Default"); var origFilesZip = Path.Combine(Paths.ChangeLogsDir, currentThemeMan.ThemeApiVersion + ".zip"); var themeChanges = Themes.GetThemeChangelog(origThemeApiVersion, mode); if (!themeChanges.HasItems()) { logger.Info("No files to update."); return; } // Update files var notUpdated = new List <string>(); using (var origFiles = ZipFile.OpenRead(origFilesZip)) { foreach (var changedFile in themeChanges) { var subpath = Common.Paths.FixSeparators(Regex.Replace(changedFile.Path, ".+Themes/(Desktop|Fullscreen)/Default/", "")); var curThemePath = Path.Combine(themeDirectory, subpath); var defaultPath = Path.Combine(defaultThemeDir, subpath); if (changedFile.ChangeType == "D") { FileSystem.DeleteFile(curThemePath); } else { var canUpdate = false; if (File.Exists(curThemePath)) { var origEntry = origFiles.GetEntry(ThemeManager.GetThemeRootDir(mode) + "\\" + subpath); if (origEntry == null) { canUpdate = false; } else { var origContent = string.Empty; using (var reader = new StreamReader(origEntry.Open())) { origContent = reader.ReadToEnd(); } if (subpath.EndsWith(".xaml", StringComparison.OrdinalIgnoreCase)) { if (Xml.AreEqual(origContent, File.ReadAllText(curThemePath))) { canUpdate = true; } } else { if (origContent == FileSystem.GetMD5(curThemePath)) { canUpdate = true; } } } } else { canUpdate = true; } if (canUpdate) { FileSystem.CopyFile(defaultPath, curThemePath); } else { logger.Debug($"Can't update {subpath}."); notUpdated.Add(subpath); } } } } if (notUpdated.HasItems()) { logger.Warn("Couldn't update some theme files, please update them manually:"); notUpdated.ForEach(a => logger.Warn(a)); } // Update common files GenerateCommonThemeFiles(mode, themeDirectory); // Update manifest currentThemeMan.ThemeApiVersion = ThemeManager.GetApiVersion(mode).ToString(3); File.WriteAllText(themeManifestPath, Serialization.ToYaml(currentThemeMan)); }
public async Task <List <ExpandedGameLegacy> > GetSearchResults(string searchString, bool alternativeSearch) { if (searchString.IsNullOrEmpty()) { return(new List <ExpandedGameLegacy>()); } List <ulong> searchResult = null; var modifiedSearchString = ModelsUtils.GetIgdbSearchString(searchString); var filter = Builders <IgdbSearchResult> .Filter.Eq(a => a.Id, modifiedSearchString); var col = alternativeSearch ? Database.Instance.IgdbAltSearches : Database.Instance.IgdbStdSearches; var cached = col.Find(filter).FirstOrDefault(); if (cached != null) { searchResult = cached.Games; } if (searchResult == null) { var matchString = HttpUtility.UrlDecode(modifiedSearchString); if (matchString.ContainsAny(bracketsMatchList)) { return(new List <ExpandedGameLegacy>()); } var whereQuery = $"where (name ~ *\"{matchString}\"*) | (alternative_names.name ~ *\"{matchString}\"*); fields id; limit 50;"; var searchQuery = $"search \"{matchString}\"; fields id; limit 50;"; var query = alternativeSearch ? whereQuery : searchQuery; var searchStringResult = await igdbApi.SendStringRequest("games", query); var tempRes = JsonConvert.DeserializeObject <List <Game> >(searchStringResult); searchResult = tempRes.Select(a => a.id).ToList(); col.InsertOne(new IgdbSearchResult { Id = modifiedSearchString, Games = searchResult }); } if (!searchResult.HasItems()) { return(new List <ExpandedGameLegacy>()); } var finalResult = new List <ExpandedGameLegacy>(); foreach (var game in await igdbApi.Games.Get(searchResult)) { if (game.id == 0) { continue; } var xpanded = new ExpandedGameLegacy() { id = game.id, name = game.name, first_release_date = game.first_release_date * 1000 }; if (game.alternative_names?.Any() == true) { xpanded.alternative_names = await alternativeNames.Get(game.alternative_names); } finalResult.Add(xpanded); } return(finalResult); }
} //is applied to link public void Write(HtmlStringBuilder sb, string currentUrl, int depth) { if (!this.Visible) { throw new InvalidOperationException("Invisible menu"); } bool isActive = this.Link != null && this.Link.ToString() == currentUrl || children.HasItems() && children.Any(a => a.Link != null && a.Link.ToString() == currentUrl); bool isHeader = IsHeader(depth); using (sb.SurroundLine(new HtmlTag("li").Class(isActive ? "active" : null).Class(isHeader ? "dropdown-header" : this.children.HasItems() ? "dropdown" : null))) { if (Link != null) { string link = Link.ToString(); if (ManualA != null) { sb.AddLine(ManualA(link, title, " ".CombineIfNotEmpty(Class, "selected"))); } else { HtmlTag tbA = new HtmlTag("a") .Attrs(new { href = link, title = Title, id = Id }) .Class(Class); if (Html != null) { tbA.InnerHtml(Html); } else { tbA.SetInnerText(Text); } sb.AddLine(tbA.ToHtml()); } } else if (this.children.HasItems() && !isHeader) { using (sb.SurroundLine(new HtmlTag("a").Attr("href", "#") .Class("dropdown-toggle") .Class(Class) .Attr("data-toggle", "dropdown"))) { if (Html != null) { sb.Add(Html); } else { sb.Add(new HtmlTag("span").SetInnerText(Text)); } sb.Add(new HtmlTag("b").Class("caret")); } } else if (Html != null) { sb.AddLine(Html); } else { sb.AddLine(new HtmlTag("span").SetInnerText(Text)); } if (this.children.HasItems() && !isHeader) { using (sb.SurroundLine(new HtmlTag("ul").Class("dropdown-menu"))) { bool lastHeader = false; foreach (WebMenuItem menu in this.children) { if (menu.Visible) { if (lastHeader) { sb.AddLine(new HtmlTag("li").Class("divider")); } menu.Write(sb, currentUrl, depth + 1); lastHeader = menu.IsHeader(depth + 1); } } } } } if (isHeader) { foreach (WebMenuItem menu in this.children) { if (menu.Visible) { menu.Write(sb, currentUrl, depth + 1); } } } }