public Result <bool> Edit(string email, string newName, string newAddress, DateTime newBirthDate) { var result = new Result <bool>(); var context = new CrowDoDbContext(); var updatedUser = context.Set <User>() .SingleOrDefault(u => u.Email == email); if (IsValidEmail(email) == false) { result.ErrorCode = 16; result.ErrorText = "Invalid email"; return(result); } if (updatedUser == null) { result.ErrorCode = 8; result.ErrorText = "No user found"; return(result); } updatedUser.Name = newName; updatedUser.Address = newAddress; updatedUser.BirthDate = newBirthDate; if (context.SaveChanges() < 1) { result.ErrorCode = 15; result.ErrorText = "An error occured while saving data"; return(result); } result.Data = true; return(result); }
public Result <bool> Delete(string email) { var context = new CrowDoDbContext(); var result = new Result <bool>(); var user = context.Set <User>() .Include(u => u.CreatedProjects) .SingleOrDefault(u => u.Email == email); if (IsValidEmail(email) == false) { result.ErrorCode = 14; result.ErrorText = "Invalid email"; return(result); } context.Remove(user); if (context.SaveChanges() < 1) { result.ErrorCode = 15; result.ErrorText = "An error occured while saving data"; return(result); } result.Data = true; return(result); }
public Result <User> Create(string email, string name, string address, DateTime birthDate) { var context = new CrowDoDbContext(); var result = new Result <User>(); //Validations if (IsValidEmail(email) == false) { result.ErrorCode = 10; result.ErrorText = "Invalid email"; return(result); } if (string.IsNullOrWhiteSpace(name)) { result.ErrorCode = 11; result.ErrorText = "Invalid name"; return(result); } if (birthDate.AddYears(18) > DateTime.Now) { result.ErrorCode = 12; result.ErrorText = "Not permited"; return(result); } var existingEmail = context.Set <User>().Where(m => m.Email == email).Any(); // returns bool // if (existingEmail == true) { result.ErrorCode = 13; result.ErrorText = "An account with the same email already exists"; return(result); } var user = new User() { Email = email, Name = name, Address = address, BirthDate = birthDate, RegistrationDate = DateTime.Now }; context.Add(user); if (context.SaveChanges() < 1) // validation for Savechanges { result.ErrorCode = 13; result.ErrorText = "An error occured while saving data"; return(result); } result.Data = user; return(result); }
public Result <Project> PublishProject(string creatorEmail, string projectName , string category, string description, decimal projectGoal, DateTime creationDate, DateTime monthDuration, int estimatedMonthDuration) { var result = new Result <Project>(); if (IsValidEmail(creatorEmail) == false) { result.ErrorCode = 1; result.ErrorText = "Email is not valid"; return(result); } var context = new CrowDoDbContext(); var creator = context.Set <User>() .Where(c => c.Email == creatorEmail) .SingleOrDefault(); if (creator == null) { result.ErrorCode = 2; result.ErrorText = "User not registered"; return(result); } var project = new Project() { ProjectName = projectName, ProjectCategory = category, ProjectGoal = projectGoal, Description = description, CreationDate = creationDate, ExpirationDate = monthDuration, EstimatedDurationInMonths = DateTime.Now.AddMonths(estimatedMonthDuration), IsAvailable = true }; creator.CreatedProjects.Add(project); creator.CreatedProjectsCount++; if (context.SaveChanges() < 1) { result.ErrorCode = 7; result.ErrorText = "An error occurred while saving data"; return(result); } result.Data = project; return(result); }
public Result <bool> EditProject(int userId, int projectId, string NewProjectName, string newProjectCategory, string description, decimal newProjectGoal, DateTime monthDuration, int estimatedMonthDuration) { var result = new Result <bool>(); var context = new CrowDoDbContext(); var updateProject = context.Set <Project>() .SingleOrDefault(b => b.ProjectId == projectId); var user = context.Set <User>() .Include(u => u.CreatedProjects) .SingleOrDefault(u => u.UserId == userId); if (!user.CreatedProjects.Contains(updateProject)) { result.ErrorCode = 15; result.ErrorText = "You don't have creator rights for this project"; return(result); } if (updateProject == null) { result.ErrorCode = 22; result.ErrorText = "No project was found"; return(result); } updateProject.ProjectName = NewProjectName; updateProject.ProjectCategory = newProjectCategory; updateProject.ProjectGoal = newProjectGoal; updateProject.Description = description; updateProject.ExpirationDate = monthDuration; updateProject.EstimatedDurationInMonths = DateTime.Now.AddMonths(estimatedMonthDuration); if (newProjectGoal <= updateProject.Funds) { updateProject.IsSuccessful = true; } if (context.SaveChanges() < 1) //** vaalidation for Savechanges : registration is ok or not { result.ErrorCode = 7; result.ErrorText = "No save"; return(result); } result.Data = true; return(result); }
public Result <bool> DeleteProject(int userId, int projectId) { var result = new Result <bool>(); var context = new CrowDoDbContext(); var project = context.Set <Project>() .SingleOrDefault(p => p.ProjectId == projectId); var user = context.Set <User>() .Include(u => u.CreatedProjects) .SingleOrDefault(u => u.UserId == userId); if (!user.CreatedProjects.Contains(project)) { result.ErrorCode = 15; result.ErrorText = "You don't have creator rights for this project"; return(result); } if (project == null) { result.ErrorCode = 22; result.ErrorText = "No project was found"; return(result); } user.CreatedProjects.Remove(project); project.IsAvailable = false; user.CreatedProjectsCount--; if (context.SaveChanges() < 1) //** validation for Savechanges { result.ErrorCode = 7; result.ErrorText = "An error occurred while saving data"; return(result); } result.Data = true; return(result); }
public Result <bool> AddMultimediaFile(int userId, int projectId, string multimediaFile) { var result = new Result <bool>(); var context = new CrowDoDbContext(); var user = context.Set <User>() .Include(u => u.CreatedProjects) .SingleOrDefault(u => u.UserId == userId); var project = context.Set <Project>() .Include(p => p.MultimediaFiles) .SingleOrDefault(p => p.ProjectId == projectId); if (user.CreatedProjects.Contains(project)) { result.ErrorCode = 15; result.ErrorText = "You don't have creator rights for this project"; return(result); } project.MultimediaFiles.Add(new ProjectMedia() { FileName = multimediaFile }); if (context.SaveChanges() < 1) //** vaalidation for Savechanges : registration is ok or not { result.ErrorCode = 7; result.ErrorText = "An error occurred while saving data"; return(result); } result.Data = true; return(result); }
public Result <Project> GetProjectDetails(int projectId) { var context = new CrowDoDbContext(); var project = context.Set <Project>() .Include(p => p.RewardPackages) .SingleOrDefault(p => p.ProjectId == projectId); var result = new Result <Project>(); if (project == null) { result.ErrorCode = 22; result.ErrorText = "No project was found"; return(result); } if (project.IsAvailable == false) { result.ErrorCode = 29; result.ErrorText = "Project not available"; return(result); } project.Visits++; if (context.SaveChanges() < 1) { result.ErrorCode = 7; result.ErrorText = "There was an error communicating with the server"; return(result); } result.Data = project; return(result); }
public Result <bool> DeadlineCheck() //Checks for expired Projects { var context = new CrowDoDbContext(); var result = new Result <bool>(); var expiredProjects = context.Set <Project>() .Where(p => p.ExpirationDate <= DateTime.Now) .ToList(); foreach (Project p in expiredProjects) { p.IsAvailable = false; } if (context.SaveChanges() < 1) { result.ErrorCode = 7; result.ErrorText = "There was an error communicating with the server"; return(result); } return(result); }
public Result <bool> FundProject(int userId, int projectId, int rewardPackageId) { var result = new Result <bool>(); var context = new CrowDoDbContext(); var backer = context.Set <User>() .SingleOrDefault(c => c.UserId == userId); var package = context.Set <RewardPackage>() .SingleOrDefault(c => c.RewardPackageId == rewardPackageId); var project = context.Set <Project>() .Include(p => p.RewardPackages) .SingleOrDefault(p => p.ProjectId == projectId); if (backer == null) { result.ErrorCode = 20; result.ErrorText = "User not registered"; return(result); } if (package == null) { result.ErrorCode = 19; result.ErrorText = "Reward package not found"; return(result); } if (project == null) { result.ErrorCode = 18; result.ErrorText = "Project not found"; return(result); } if (project.IsAvailable == false) { result.ErrorCode = 29; result.ErrorText = "Project not available"; return(result); } if (!project.RewardPackages.Contains(package)) { result.ErrorCode = 25; result.ErrorText = "The selected RewardPackage isn't available for this project"; return(result); } project.Funds += package.Price; if (project.Funds >= project.ProjectGoal) { project.IsSuccessful = true; } var backerReward = new LinkingTable { UserId = backer.UserId, RewardPackageId = package.RewardPackageId, ProjectId = projectId }; context.Add(backerReward); if (context.SaveChanges() < 1) { result.ErrorCode = 7; result.ErrorText = "An error occurred while saving data"; return(result); } result.Data = true; return(result); }
public Result <bool> AddRewardPackage(int userId, int projectId, string packageName, string rewardName, decimal price) { var result = new Result <bool>(); var context = new CrowDoDbContext(); var rewardPackage = new RewardPackage() { PackageName = packageName, RewardName = rewardName, Price = price }; var user = context.Set <User>() .Include(u => u.CreatedProjects) .SingleOrDefault(u => u.UserId == userId); var project = context.Set <Project>() .Include(p => p.RewardPackages) .SingleOrDefault(c => c.ProjectId == projectId); if (!user.CreatedProjects.Contains(project)) { result.ErrorCode = 15; result.ErrorText = "You don't have creator rights for this project"; return(result); } if (project == null) { result.ErrorCode = 22; result.ErrorText = "No project was found"; return(result); } if (price == 0.0M) { result.ErrorCode = 10; result.ErrorText = "You have to give a Price"; return(result); } if (price > project.ProjectGoal) { result.ErrorCode = 10; result.ErrorText = "Package price shouldn't exceed Goal amount!"; return(result); } if (packageName == null) { result.ErrorCode = 11; result.ErrorText = "You have to give a Name to PackageReward"; return(result); } if (rewardName == null) { result.ErrorCode = 12; result.ErrorText = "You have to give a Reward"; return(result); } project.RewardPackages.Add(rewardPackage); if (context.SaveChanges() < 1) { result.ErrorCode = 7; result.ErrorText = "An error occurred while saving data"; return(result); } result.Data = true; return(result); }