コード例 #1
0
        public IActionResult Fund([FromBody] FundViewModel viewmodel)
        {
            if (viewmodel == null)
            {
                return(BadRequest());
            }

            var fundingOptions = new FundProjectOptions()
            {
                FundingPackageId = int.Parse(viewmodel.FundingPackageId),
                ProjectId        = int.Parse(viewmodel.ProjectId)
            };

            _projectService.FundProject(fundingOptions);

            var projectFunded = _projectService.GetById(int.Parse(viewmodel.ProjectId));
            var funder        = _userService.GetById(User.GetUsername());

            _userBackerService.Add(new UserBacker(projectFunded.ProjectId, funder.Id));


            _basicService.Complete();



            return(Ok());
        }
コード例 #2
0
        public bool FundProject(FundProjectOptions options)
        {
            if (options == null || options.ProjectId == null || options.FundingPackageId == null)
            {
                return(false);
            }

            var project = Search(new SearchProjectOptions
            {
                ProjectId = options.ProjectId
            }).SingleOrDefault();

            if (project == null)
            {
                return(false);
            }

            var fundpack = project.FundingPackages.Where(fp => fp.FundingPackageId == options.FundingPackageId).SingleOrDefault();

            if (fundpack == null)
            {
                return(false);
            }
            //project.TargetFund -= fundpack.Price;
            project.CurrentFund += fundpack.Price;

            project.FundsReceivedCounter += 1;

            if (context_.SaveChanges() > 0)
            {
                return(true);
            }


            return(false);
        }