public BackerProject CreateFunding(BackerProjectOption backProjOption)
        {
            float tempfund  = 0;
            float finalfund = 0;
            var   reward    = _db.Rewards.Find(backProjOption.RewardId);
            var   project   = _db.Projects.Find(backProjOption.ProjectId);

            if (backProjOption.Fund == 0)
            {
                tempfund = reward.Price;
            }
            else
            {
                tempfund = backProjOption.Fund + reward.Price;
            }

            float tempTotalSum = tempfund + project.Balance;

            if (tempTotalSum < project.BudgetGoal)
            {
                finalfund = tempfund;
            }
            else
            {
                finalfund = tempfund - (tempTotalSum - project.BudgetGoal);
            }


            BackerProject backerProject = new BackerProject
            {
                BackerId  = backProjOption.BackerId,
                Backer    = _db.Backers.Find(backProjOption.BackerId),
                RewardId  = backProjOption.RewardId,
                Reward    = reward,
                ProjectId = backProjOption.ProjectId,
                Project   = project,
                Fund      = finalfund,
                DoF       = DateTime.Now,
                Status    = Status.Pending
            };

            _db.BackerProjects.Add(backerProject);
            _db.SaveChanges();
            return(backerProject);
        }
Beispiel #2
0
 public BackerProject CreateBackerProject([FromBody] BackerProjectOption backerProjectOption)
 {
     return(bpMng.CreateFunding(backerProjectOption));
 }