Inheritance: IDataTableRowResult
コード例 #1
0
        /// Copy constructor
        public FundraisingMenuResult(FundraisingMenuResult from)
        {
            // Scalar data
            ProjectName = from.ProjectName;
            ProjectBriefDescription = from.ProjectBriefDescription;
            ProgramContact = from.ProgramContact;
            PhilanthropyContact = from.PhilanthropyContact;
            HubId = from.HubId;

            // List data
            ProjectPackage = from.ProjectPackage;
            GlobalChallenge = from.GlobalChallenge;
            Region = from.Region;
            Country = from.Country;
            ProjectKeyword = from.ProjectKeyword;
            ProjectFundraisingNeed = from.ProjectFundraisingNeed;
        }
コード例 #2
0
        private bool RecordMatch(FundraisingMenuResult r, DataTableParameters query)
        {
            IEnumerable<ColumnData> validColumns = query.columns.Where(c => !String.IsNullOrEmpty(c.data));

            // Check for a column search value match.
            IEnumerable<ColumnData> columnsWithQueries = validColumns
                .Where(c => !String.IsNullOrEmpty(c.search.value));
            bool filterMatch = columnsWithQueries.Count() == 0 ||
                columnsWithQueries.Select(delegate(ColumnData c)
                {
                    bool match = false;

                    SearchParameters searchParams = JsonConvert.DeserializeObject<SearchParameters>(c.search.value);
                    if (searchParams.payload.Count > 0)
                    {
                        if (_dataMap.ContainsKey(c.data))
                        {
                            foreach (string searchValue in searchParams.payload)
                            {
                                match = match || _dataMap[c.data].TextSearchMatch(searchValue, r);
                            }
                        }
                    }

                    return match;
                }).Aggregate(false, (a, b) => a || b);

            // Check for a text search value match in all columns
            bool textSearchMatch = String.IsNullOrEmpty(query.search.value) ||
                validColumns.Select(delegate(ColumnData c)
                {
                    return _dataMap.ContainsKey(c.data) &&
                        _dataMap[c.data].TextSearchMatch(query.search.value, r);
                }).Aggregate(false, (a, b) => a || b);

            return filterMatch && textSearchMatch;
        }
コード例 #3
0
 /// <summary>
 /// Duplicate records by package entry. This ensures we will see
 /// one project entry per package relationship and that every
 /// package is displayed on the front end.
 /// </summary>
 /// <param name="list"></param>
 /// <returns></returns>
 private List<FundraisingMenuResult> ExpandByPackage(List<FundraisingMenuResult> list)
 {
     // Map the input list to a list of lists, each of which
     // contains a single association between a FundraisingMenuResult
     // and a singleton ProjectPackageDto list. Once the mapping is done,
     // we flatten the nested list back into a single list. The result
     // of this operation is a single list of FundraisingMenuResults
     // that has been expanded to include extra entries, with one
     // entry per project-package relationship.
     return list.Select(delegate(FundraisingMenuResult i)
     {
         return i.ProjectPackage.Select(delegate(ProjectPackageDto p)
         {
             FundraisingMenuResult result = new FundraisingMenuResult(i);
             result.ProjectPackage = new List<ProjectPackageDto>() { p };
             return result;
         });
     }).SelectMany(i => i).ToList();
 }