예제 #1
0
        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
            });
        }
예제 #2
0
        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);
            }
        }
예제 #3
0
        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
            });
        }