public bool StatusUpdate(int backProjId, bool accept = false) { if (accept) { BackerProject backerProject = _db.BackerProjects .Include(bp => bp.Project) .Include(bp => bp.Backer) .Where(bp => bp.Id == backProjId) .FirstOrDefault(); if (backerProject != null) { Project project = _db.Projects.Find(backerProject.ProjectId); float sumbackerprojects = _db.BackerProjects .Where(bp => bp.ProjectId == backerProject.ProjectId) .Where(bp => bp.Status == Status.Accepted) .Sum(bp => bp.Fund); if (sumbackerprojects < project.BudgetGoal) { backerProject.Status = Status.Accepted; _db.Entry(backerProject).State = EntityState.Modified; _db.SaveChanges(); return(true); } } } return(false); }
public async Task <ActionResult> VivaPayment(int amount, int projectId, int BackerId) { var transactionModel = new TransactionViewModel() { projectId = projectId, transaction = await new PaymentManager().SendPaymentAsync() }; if (transactionModel.transaction) { var backerProject = new BackerProject() { Amount = amount, ProjectId = projectId, UserId = BackerId, DateInserted = DateTime.Now, PaymentStatus = "success" }; db.BackerProjects.Add(backerProject); var project = await db.Projects.FindAsync(projectId); project.CurrentFundAmount += amount; db.Entry(project).State = EntityState.Modified; await db.SaveChangesAsync(); } return(View(transactionModel)); }
public async Task <ActionResult> DeleteConfirmed(int id) { BackerProject backerProject = await db.BackerProjects.FindAsync(id); db.BackerProjects.Remove(backerProject); await db.SaveChangesAsync(); return(RedirectToAction("Index")); }
public async Task <ActionResult> Edit([Bind(Include = "Id,ProjectId,UserId,Amount,DateInserted,PaymentStatus")] BackerProject backerProject) { if (ModelState.IsValid) { db.Entry(backerProject).State = EntityState.Modified; await db.SaveChangesAsync(); return(RedirectToAction("Index")); } ViewBag.ProjectId = new SelectList(db.Projects, "Id", "Title", backerProject.ProjectId); ViewBag.UserId = new SelectList(db.Users, "Id", "PhotoUrl", backerProject.UserId); return(View(backerProject)); }
// GET: BackerProjects/Details/5 public async Task <ActionResult> Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } BackerProject backerProject = await db.BackerProjects.FindAsync(id); if (backerProject == null) { return(HttpNotFound()); } return(View(backerProject)); }
public bool CancelFundingByBacker(int?backProjId) { BackerProject backProj = _db.BackerProjects.Find(backProjId); if (backProjId != null) { if (backProj.Status == Status.Pending) { backProj.Status = Status.Canceled; _db.SaveChanges(); return(true); } } return(false); }
// GET: BackerProjects/Edit/5 public async Task <ActionResult> Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } BackerProject backerProject = await db.BackerProjects.FindAsync(id); if (backerProject == null) { return(HttpNotFound()); } ViewBag.ProjectId = new SelectList(db.Projects, "Id", "Title", backerProject.ProjectId); ViewBag.UserId = new SelectList(db.Users, "Id", "PhotoUrl", backerProject.UserId); return(View(backerProject)); }
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); }
public IActionResult StatusUpdate(int id) { BackerProject backerproject = bpMng.FindFundingById(id); FundingDetails funding = new FundingDetails() { Id = backerproject.Id, ProjectName = backerproject.Project.Name, BudgetGoal = backerproject.Project.BudgetGoal, Balance = backerproject.Project.Balance, BackerFirstName = backerproject.Backer.FirstName, BackerLastName = backerproject.Backer.LastName, Fund = backerproject.Fund, RewardName = backerproject.Reward.Name, DoF = backerproject.DoF }; return(View(funding)); }