public PackageFund FundProject(PackageFundOption pfOption) { Backer backer = db.Backers.Find(pfOption.BackerId); Project project = db.Projects.Find(pfOption.ProjectId); Package package = db.Packages.Find(pfOption.PackageId); PackageFund packageFund = new PackageFund { Backer = backer, Project = project, Package = package, DateFund = DateTime.Now }; db.PackageFunds.Add(packageFund); db.SaveChanges(); return(packageFund); }
public PackageFund CreatePackageFund(PackageFundOption fundOption) { PackageFund fund = new PackageFund { Backer = db.Backers.Find(fundOption.BackerId), Package = db.Packages.Find(fundOption.PackageId), Project = db.Projects.Find(fundOption.ProjectId), DateFund = DateTime.Now }; Project project = db.Projects.Find(fundOption.ProjectId); project.CurrentAmount += fund.Package.Amount; project.NumberOfBackers += 1; if (project.CurrentAmount >= project.Goal) { project.State = false; } ProjectManagement prjMng = new ProjectManagement(db); project.Progress = prjMng.TrackProgressByProjectId(fundOption.ProjectId); db.Projects.Update(project); db.PackageFunds.Add(fund); db.SaveChanges(); PackageManagement pckMng = new PackageManagement(db); UserManagement userMng = new UserManagement(db); Backer backer = db.Backers.Find(fundOption.BackerId); backer.ProjectFunded = pckMng.FindProjectsFundedByBacker(fundOption.BackerId).Count; backer.TotalAmount = userMng.BackerTotalAmountSpent(fundOption.BackerId); db.Backers.Update(backer); db.SaveChanges(); return(fund); }
public int AddFund([FromBody] PackageFundOption fundOption) { PackageFund packageFund = packageMngr.CreatePackageFund(fundOption); return(packageFund.Id); }