public StatusUpdateOption AddStatusUpdate(StatusUpdateOption statusUpdateOption) { Project project = db.Set <Project>().Find(statusUpdateOption.ProjectId); StatusUpdate statusUpdate = new StatusUpdate() { Overload = statusUpdateOption.Payload, Timestamp = statusUpdateOption.Timestamp, Project = project }; project.StatusUpdates.Add(statusUpdate); db.Set <StatusUpdate>().Add(statusUpdate); db.SaveChanges(); return(statusUpdateOption); }
public LoginAnswerOption TryLogin(LoginOption loginOption) { Backer backer = dbContext .Set <Backer>() .Where(o => o.FirstName == loginOption.Username && o.LastName == loginOption.Password) .SingleOrDefault(); if (backer != null) { return new LoginAnswerOption() { Id = backer.Id, TypeOfUser = "******" } } ; ProjectCreator projectCreator = dbContext .Set <ProjectCreator>() .Where(o => o.FirstName == loginOption.Username && o.LastName == loginOption.Password) .SingleOrDefault(); if (projectCreator.FirstName == "admin") { return new LoginAnswerOption() { Id = projectCreator.Id, TypeOfUser = "******" } } ; if (projectCreator != null) { return new LoginAnswerOption() { Id = projectCreator.Id, TypeOfUser = "******" } } ; return(new LoginAnswerOption() { Id = 0, TypeOfUser = null }); } } }
public Result <bool> DeletePackage(int packageId) { var result = new Result <bool>(); if (packageId <= 0) { result.ErrorCode = StatusCode.BadRequest; result.ErrorText = $"Id {packageId} is invalid"; return(result); } var package = dbContext.Set <Package>() .Where(p => p.PackageId == packageId) .SingleOrDefault(); if (package == null) { result.ErrorCode = StatusCode.NotFound; result.ErrorText = $"Package with id {packageId} was not found"; return(result); } try { dbContext.Remove(dbContext.Set <Package>() .Where(p => p.PackageId == packageId) .SingleOrDefault()); if (dbContext.SaveChanges() > 0) { result.ErrorCode = StatusCode.OK; result.Data = true; return(result); } } catch (Exception ex) { result.ErrorCode = StatusCode.InternalServerError; result.ErrorText = ex.ToString(); return(result); } result.ErrorCode = StatusCode.InternalServerError; result.ErrorText = $"Package could not be deleted"; return(result); }
private RewardPackage GetRewardPackageFromRewardPackageOption(RewardPackageOption rewardPackageOption) { Project project = dbContext.Set <Project>().Find(rewardPackageOption.ProjectId); return(new RewardPackage { Reward = rewardPackageOption.Reward, Price = rewardPackageOption.Price, Project = project }); }
public IQueryable <Project> SearchProject(SearchProjectOptions options) { if (options == null) { return(null); } var query = dbContext .Set <Project>() .AsQueryable(); if (options.ProjectId != null) { query = query.Where(p => p.ProjectId == options.ProjectId); } if (options.Title != null) { query = query.Where(p => (p.Title == options.Title) || p.Title.Contains(options.Title)); } if (options.Description != null) { query = query.Where(p => p.Description == options.Description); } if (options.Category != null) { query = query.Where(p => p.Category == options.Category.Value); } if (options.UserId != null) { query = query.Where(p => p.UserId == options.UserId.Value); } return(query); }
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 }); }
public IQueryable <User> SearchUser(SearchUserOptions options) { if (options == null) { return(null); } var query = dbContext .Set <User>() .AsQueryable(); if (!string.IsNullOrWhiteSpace(options.FirstName)) { query = query.Where(u => u.FirstName == options.FirstName); } if (!string.IsNullOrWhiteSpace(options.LastName)) { query = query.Where(u => u.LastName == options.LastName); } if (!string.IsNullOrWhiteSpace(options.Email)) { query = query.Where(u => u.Email == options.Email); } if (options.CreatedFrom != default(DateTime)) { query = query.Where(u => u.Created >= options.CreatedFrom); } if (options.CreatedTo != default(DateTime)) { query = query.Where(u => u.Created <= options.CreatedTo); } if (options.UserId != null) { query = query.Where(u => u.UserId == options.UserId.Value); } if (options.IsProjectCreator != null) { query = query.Where(u => u.IsProjectCreator == options.IsProjectCreator.Value); } return(query); }
public MediaOption CreateMedia(MediaOption mediaOption) { Project project = db.Set <Project>().Where(o => o.Id == mediaOption.ProjectId).Include(o => o.Medias).SingleOrDefault(); Media media = new Media() { Payload = mediaOption.Payload, Type = mediaOption.Type, Project = project }; var newMedia = db.Set <Media>().Add(media); db.SaveChanges(); project.Medias.Add(newMedia.Entity); db.SaveChanges(); return(new MediaOption() { Payload = media.Payload, Type = media.Type, ProjectId = mediaOption.ProjectId }); }
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 RewardPackageOption AddPackageToProject(int projectId, int rewardPackageId) { var project = db.Set <Project>().Find(projectId); var rewardPackage = db.Set <RewardPackage>().Find(rewardPackageId); project.RewardPackages.Add(rewardPackage); rewardPackage.Project = project; db.SaveChanges(); return(new RewardPackageOption() { Price = rewardPackage.Price, ProjectId = project.Id, Reward = rewardPackage.Reward }); }
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); } }