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()); }
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); }