Пример #1
0
 /// <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);
 }
Пример #2
0
        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);
            }
        }
Пример #3
0
        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());
        }
Пример #4
0
        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);
        }
Пример #6
0
        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);
            }
        }
Пример #7
0
        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());
            }
        }
Пример #9
0
        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);
        }
Пример #11
0
 /// <summary>
 /// Adds Configuration List
 /// </summary>
 public void AddConfigurationList(List <ConfigurationModel> configurations)
 {
     if (configurations.HasItems <ConfigurationModel>())
     {
         _configurationList = configurations;
         _configurationList.First().Selected = true;
     }
 }
Пример #12
0
        public void HasItems_NoItemsInList_IsFalse()
        {
            // ReSharper disable once CollectionNeverUpdated.Local
            var item   = new List <string>();
            var result = item.HasItems();

            result.ShouldBeFalse();
        }
Пример #13
0
    public static T GetRandom <T>(this List <T> list)
    {
        if (!list.HasItems())
        {
            return(default(T));
        }

        return(list[UnityEngine.Random.Range(0, list.Count)]);
    }
Пример #14
0
        /// <summary>
        /// Copies the collection to a generic List.
        /// </summary>
        /// <typeparam name="T">Type</typeparam>
        /// <param name="source">The source.</param>
        /// <returns>List&lt;T&gt;.</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));
        }
Пример #15
0
    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);
    }
Пример #16
0
        public void HasItems()
        {
            List <string> a = new List <string>()
            {
                string.Empty
            };

            Assert.True(a.HasItems());
        }
Пример #17
0
        public void HasItems_ItemsInList_IsTrue()
        {
            var item = new List <string> {
                "Dog", "Cat"
            };
            var result = item.HasItems();

            result.ShouldBeTrue();
        }
Пример #18
0
        /// <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);
        }
Пример #19
0
    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);
        }
Пример #21
0
        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);
        }
Пример #22
0
    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);
    }
Пример #23
0
        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);
        }
Пример #24
0
    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);
    }
Пример #25
0
        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();
                }
            }
        }
Пример #26
0
        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();
        }
Пример #27
0
        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>());
        }
Пример #28
0
        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);
        }
Пример #31
0
        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));
        }
Пример #32
0
        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);
        }
Пример #33
0
        }                                 //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);
                    }
                }
            }
        }