示例#1
0
        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);
        }
示例#3
0
        public int AddFund([FromBody] PackageFundOption fundOption)
        {
            PackageFund packageFund = packageMngr.CreatePackageFund(fundOption);

            return(packageFund.Id);
        }