예제 #1
0
        //Connects Backer's Id with FundingPackageId
        //Each FundingPackage is unique and assiassigned only at ONE Backer
        ////////public FundingPackage Fund(int userId, int fundId)
        ////////{
        ////////    var user = user_.GetUserById(userId);
        ////////    FundingPackage funding = context_
        ////////        .Set<FundingPackage>()
        ////////        .Find(fundId);
        ////////    //the funding is assigned only if it is not already assigned
        ////////    if (funding.User != null)
        ////////        return null;
        ////////    funding.User = user;
        ////////    context_.SaveChanges();
        ////////    return funding;
        ////////}


        //Backer can find funding packages based on ProjectId
        public List <FundingPackage> SearchFundingPackage(
            SearchFundingPackageOptions fundOptions)
        {
            if (fundOptions == null)
            {
                return(null);
            }
            var query = context_
                        .Set <FundingPackage>()
                        .AsQueryable();
            Project projectResult = project_.GetProjectById(fundOptions.ProjectId);

            if (projectResult.Id != 0)
            {
                query = query.Where(
                    c => c.Id == projectResult.Id);
            }
            return(query.ToList());
        }
예제 #2
0
        public IQueryable<FundingPackage> SearchFundingPackage(SearchFundingPackageOptions options)
        {
            if (options == null)
            {
                return null;
            }

            var query = context_
                .Set<FundingPackage>()
                .AsQueryable();

            if (!string.IsNullOrWhiteSpace(options.Name))
            {
                query = query.Where(fp => fp.Name == options.Name);
            }

            if (!string.IsNullOrWhiteSpace(options.Description))
            {
                query = query.Where(fp => fp.Name == options.Name);
            }

            if (options.FundingPackageId != null)
            {
                query = query.Where(fp => fp.FundingPackageId == options.FundingPackageId.Value);
            }

            if (options.PriceFrom != null)
            {
                query = query.Where(fp => fp.Price >= options.PriceFrom);
            }

            if (options.PriceTo != null)
            {
                query = query.Where(fp => fp.Price <= options.PriceTo);
            }
            query = query.Take(500);

            return query;
        }