public ProjectOptions CreateProject(ProjectOptions projectOptions) { var user = dbContext.Set <User>().Where(u => u.Id == projectOptions.CreatorId).Include(p => p.CreatedProjects).SingleOrDefault(); var project = new Project() { CreatorId = projectOptions.CreatorId, Description = projectOptions.Description, Category = projectOptions.Category, Photo = projectOptions.Photo, Video = projectOptions.Video, Goal = projectOptions.Goal, Title = projectOptions.Title, Status = projectOptions.Status }; user.CreatedProjects.Add(project); dbContext.Update(user); dbContext.SaveChanges(); return(new ProjectOptions() { Id = project.Id, CreatorId = project.CreatorId, CurrentFund = project.CurrentFund, Description = project.Description, Category = project.Category, Photo = project.Photo, Video = project.Video, Goal = project.Goal, Title = project.Title, Status = project.Status, TimesFunded = project.TimesFunded }); }
public Funding BuyPackageByUserId(int userId, int packageId) { var user = dbContext.Set <User>().Where(u => u.Id == userId).Include(f => f.Fundings).SingleOrDefault(); var fundingExists = dbContext.Set <Funding>().Where(u => u.UserId == userId).Where(p => p.PackageId == packageId).SingleOrDefault(); if (fundingExists == null) { var newFund = new Funding() { PackageId = packageId, UserId = userId }; var package = dbContext.Set <Package>().Where(p => p.Id == packageId).Include(p => p.Project).SingleOrDefault(); var project = dbContext.Set <Project>().Find(package.ProjectId); project.CurrentFund += package.Price; project.TimesFunded += 1; user.Fundings.Add(newFund); dbContext.Update(user); dbContext.Update(project); dbContext.SaveChanges(); return(newFund); } else { return(null); } }
public PackageOptions AddPackageToProject(PackageOptions packageOptions, int projectId) { var project = dbContext.Set <Project>() .Where(p => p.Id == projectId) .Include(pac => pac.Packages) .SingleOrDefault(); var package = new Package() { Price = packageOptions.Price, ProjectId = projectId, Reward = packageOptions.Reward }; project.Packages.Add(package); dbContext.Update(project); dbContext.SaveChanges(); return(new PackageOptions() { Id = package.Id, Price = package.Price, ProjectId = package.ProjectId, Reward = package.Reward }); }