public async Task <object> AddLabelToTask([FromRoute] string taskId, [FromBody] string labelId) { using (var ctx = new AckeeCtx()) { var task = await ctx.Tasks.FirstOrDefaultAsync(t => t.TaskID == taskId); var label = await ctx.Labels.FirstOrDefaultAsync(l => l.LabelID == labelId); var existingTaskLabel = await ctx.TaskLabels.FirstOrDefaultAsync(tl => tl.TaskID == taskId && tl.LabelID == labelId); if (task == null || existingTaskLabel != null) { return(BadRequest()); } // Create the task label TaskLabel taskLabel = new TaskLabel { Task = task, Label = label }; ctx.TaskLabels.Add(taskLabel); await ctx.SaveChangesAsync(); return(true); } }
public async Task <IEnumerable <ApplicationUser> > Get() { using (var ctx = new AckeeCtx()) { return(await ctx.Users.ToListAsync()); } }
public async Task <ApplicationUser> GetUserByEmail(string userEmail) { using (var ctx = new AckeeCtx()) { return(await ctx.Users.FirstOrDefaultAsync(u => u.Email == userEmail)); } }
public IEnumerable <AspNetProjects> GetUserprojects(string userId) { using (var ctx = new AckeeCtx()) { return(ctx.Projects.Where( p => p.UserProjects.Any(up => up.UserId == userId))); } }
public async Task <List <AspNetTasks> > GetUserTasks(string userEmail) { using (var ctx = new AckeeCtx()) { return(await ctx.Tasks .Include(t => t.Project) .Where(t => t.UserTasks.Any(ut => ut.User.Email == userEmail)).ToListAsync()); } }
public async Task <IEnumerable <AspNetProjects> > GetUserProjects(string userId) { using (var ctx = new AckeeCtx()) { var users = ctx.Users.ToList(); var userProject = ctx.UserProjects.ToList(); return(await ctx.Projects.Where(p => p.UserProjects.Any( up => up.UserId == userId)).OrderByDescending(p => p.DateCreated).ToListAsync()); } }
public async Task <IEnumerable <AspNetMilestones> > GetProjectMilestones(string projectId) { var ctx = new AckeeCtx(); // Get the milestones var milestones = await ctx.Milestones .Where(m => m.Project.ProjectID == projectId) .OrderBy(m => m.EndDate) .ToListAsync(); return(milestones); }
public async Task <AspNetMilestones> GetMilestoneById(string milestoneId) { using (var ctx = new AckeeCtx()) { // Get the milestone var milestone = await ctx.Milestones .Include(m => m.Project) .FirstOrDefaultAsync(m => m.MilestoneID == milestoneId); return(milestone); } }
public async Task <ActionResult <AspNetProjects> > GetProjectById(string projectId) { using (var ctx = new AckeeCtx()) { // Query user projects, so that they are in memory var userprojects = await ctx.UserProjects.Include(up => up.User).ToListAsync(); return(await ctx.Projects.Include(p => p.Owner) .Include(p => p.UserProjects) .Include(p => p.Milestones) .Include(p => p.Tasks) .FirstOrDefaultAsync(p => p.ProjectID == projectId)); } }
public async Task <object> CreateLabel([FromBody] AspNetLabels newLabel) { using (var ctx = new AckeeCtx()) { if (newLabel.LabelName == null || newLabel.LabelColor == null) { return(BadRequest()); } ctx.Labels.Add(newLabel); await ctx.SaveChangesAsync(); return(true); } }
public async Task <IEnumerable <ApplicationUser> > GetProjectMembers(string projectId) { var ctx = new AckeeCtx(); // Get the members. var users = await ctx.Users.Where( u => u.UserProjects.Any(up => up.ProjectId == projectId)).ToListAsync(); if (users == null) { return(null); } return(users); }
public async Task <AspNetTasks> GetTaskById(string taskId) { using (var ctx = new AckeeCtx()) { var users = ctx.ApplicationUser.ToList(); var milestones = ctx.Milestones.ToList(); return(await ctx.Tasks .Include(t => t.MilestoneTasks) .Include(t => t.UserTasks) .Include(t => t.Project) .Include(t => t.Project.UserProjects) .Include(t => t.TaskLabels) .FirstOrDefaultAsync(t => t.TaskID == taskId)); } }
public async Task <IEnumerable <AspNetTasks> > GetAllTasks() { using (var ctx = new AckeeCtx()) { var users = ctx.ApplicationUser.ToList(); var milestones = ctx.Milestones.ToList(); return(await ctx.Tasks .Include(t => t.MilestoneTasks) .Include(t => t.UserTasks) .Include(t => t.Project) .Include(t => t.Project.UserProjects) .Include(t => t.TaskLabels) .ToListAsync()); } }
public async Task <object> DeleteLabel([FromRoute] string labelId) { using (var ctx = new AckeeCtx()) { var label = ctx.Labels.FirstOrDefault(l => l.LabelID == labelId); if (label == null) { return(BadRequest()); } ctx.Remove(label); await ctx.SaveChangesAsync(); return(true); } }
public async Task <Object> DeleteProject(string projectId) { var ctx = new AckeeCtx(); // Get the project. var project = ctx.Projects.FirstOrDefault(p => p.ProjectID == projectId); if (project == null) { return(BadRequest()); } ctx.Projects.Remove(project); await ctx.SaveChangesAsync(); return(true); }
public async Task <ActionResult <bool> > DeleteProjectMember(string milestoneId) { using (var ctx = new AckeeCtx()) { var milestone = await ctx.Milestones.FirstOrDefaultAsync(m => m.MilestoneID == milestoneId); if (milestone == null) { return(BadRequest()); } ctx.Remove(milestone); await ctx.SaveChangesAsync(); return(true); } }
public async Task <object> UpdateTask([FromRoute] string taskId, [FromBody] AspNetTasks updatedTask) { using (var ctx = new AckeeCtx()) { var task = ctx.Tasks .Include(t => t.MilestoneTasks) .FirstOrDefault(t => t.TaskID == updatedTask.TaskID); if (task == null) { return(BadRequest()); } task.TaskName = updatedTask.TaskName; task.TaskDescription = updatedTask.TaskDescription; task.StartDate = updatedTask.StartDate; task.EndDate = updatedTask.EndDate; task.Completed = updatedTask.Completed; await ctx.SaveChangesAsync(); // Set completed milestones to complete task = ctx.Tasks.FirstOrDefault(t => t.TaskID == updatedTask.TaskID); // Get all the milestones related to the task foreach (var milestoneTask in task.MilestoneTasks) { // foreach task related to the milestone, check if all tasks are completed var milestone = await ctx.Milestones.FirstOrDefaultAsync(m => m.MilestoneID == milestoneTask.MilestoneID); if (milestone.MilestoneTasks.All(mt => mt.Task.Completed)) { milestone.Completed = true; } else { milestone.Completed = false; } } await ctx.SaveChangesAsync(); return(true); } }
public async Task <Object> AddProjectMilestone([FromRoute] string projectId, [FromBody] AspNetMilestones newMilestone) { using (var ctx = new AckeeCtx()) { var project = ctx.Projects.FirstOrDefault(p => p.ProjectID == projectId); if (project == null || string.IsNullOrWhiteSpace(newMilestone.MilestoneName)) { return(BadRequest()); } newMilestone.Project = project; ctx.Milestones.Add(newMilestone); await ctx.SaveChangesAsync(); return(newMilestone); } }
public async Task <object> CreateTask([FromBody] AspNetTasks task) { using (var ctx = new AckeeCtx()) { var existingTask = ctx.Tasks.FirstOrDefault(t => t.TaskName == task.TaskName && t.Project.ProjectID == task.Project.ProjectID); var project = ctx.Projects.FirstOrDefault(p => p.ProjectID == task.Project.ProjectID); if (task == null || existingTask != null || project == null) { return(BadRequest()); } task.Project = project; ctx.Tasks.Add(task); await ctx.SaveChangesAsync(); return(true); } }
public async Task <ActionResult <bool> > RemoveAssigneeFromTask(string taskId, string userId) { using (var ctx = new AckeeCtx()) { var task = await ctx.Tasks.FirstOrDefaultAsync(t => t.TaskID == taskId); var assignee = await ctx.ApplicationUser.FirstOrDefaultAsync(a => a.Id == userId); var userTask = await ctx.UserTasks.FirstOrDefaultAsync(ut => ut.UserID == userId && ut.TaskID == taskId); if (task == null || assignee == null || userTask == null) { return(BadRequest()); } ctx.Remove(userTask); await ctx.SaveChangesAsync(); return(true); } }
public async Task <ActionResult <bool> > RemoveLabelFromTask(string taskId, string labelId) { using (var ctx = new AckeeCtx()) { var task = await ctx.Tasks.FirstOrDefaultAsync(t => t.TaskID == taskId); var label = await ctx.Labels.FirstOrDefaultAsync(l => l.LabelID == labelId); var taskLabel = await ctx.TaskLabels.FirstOrDefaultAsync(tl => tl.LabelID == labelId && tl.TaskID == taskId); if (task == null || label == null || taskLabel == null) { return(BadRequest()); } ctx.Remove(taskLabel); await ctx.SaveChangesAsync(); return(true); } }
public async Task <bool> DeleteProjectOfOwner(string ownerId, string projectId) { var ctx = new AckeeCtx(); // Get the user. var user = ctx.Users.FirstOrDefault(u => u.Id == ownerId); var existingProjectForUser = ctx.Projects.FirstOrDefault( p => p.ProjectID == projectId && p.UserProjects.Any( up => up.UserId == ownerId)); // Return if project for user already exists or userName is null. if (user == null || existingProjectForUser == null) { return(false); } ctx.Projects.Remove(existingProjectForUser); await ctx.SaveChangesAsync(); return(true); }
public async Task <ActionResult <bool> > DeleteProjectMember(string projectId, string userEmail) { using (var ctx = new AckeeCtx()) { var project = await ctx.Projects.FirstOrDefaultAsync(p => p.ProjectID == projectId); var user = await ctx.ApplicationUser.FirstOrDefaultAsync(u => u.Email == userEmail); var userProject = await ctx.UserProjects.FirstOrDefaultAsync(up => up.ProjectId == projectId && up.UserId == user.Id); if (user == null || project == null || userProject == null) { return(BadRequest()); } ctx.Remove(userProject); await ctx.SaveChangesAsync(); return(true); } }
public async Task <ActionResult <bool> > RemoveMilestoneFromTask(string taskId, string milestoneId) { using (var ctx = new AckeeCtx()) { var task = await ctx.Tasks.FirstOrDefaultAsync(t => t.TaskID == taskId); var milestone = await ctx.Milestones.FirstOrDefaultAsync(m => m.MilestoneID == milestoneId); var milestoneTask = await ctx.MilestoneTasks.FirstOrDefaultAsync(mt => mt.MilestoneID == milestoneId && mt.TaskID == taskId); if (task == null || milestone == null || milestoneTask == null) { return(BadRequest()); } ctx.Remove(milestoneTask); await ctx.SaveChangesAsync(); return(true); } }
public async Task <IEnumerable <AspNetTasks> > GetProjectTasks(string projectId) { var ctx = new AckeeCtx(); var users = ctx.ApplicationUser.ToList(); var milestones = ctx.Milestones.ToList(); var labels = ctx.Labels.ToList(); // Get the tasks var tasks = await ctx.Tasks .Include(t => t.MilestoneTasks) .Include(t => t.UserTasks) .Include(t => t.Project) .Include(t => t.Project.UserProjects) .Include(t => t.TaskLabels) .Where(t => t.Project.ProjectID == projectId) .OrderBy(t => t.EndDate) .ToListAsync(); return(tasks); }
public async Task <Object> UpdateProjectForOwner([FromRoute] string userId, [FromBody] AspNetProjects project) { using (var ctx = new AckeeCtx()) { // Get the user. var user = ctx.Users.FirstOrDefault(u => u.Id == userId); // Get the UserProject var userProject = await ctx.UserProjects.FirstOrDefaultAsync( up => up.UserId == userId && up.Project.ProjectID == project.ProjectID); // Get the project var existingProject = ctx.Projects.FirstOrDefault(p => p.ProjectID == project.ProjectID); // Return if project for user already exists or userId is null. if (user == null || userProject == null || user.Id != existingProject.Owner.Id || existingProject == null) { return(BadRequest()); } // Update the project if (!string.IsNullOrWhiteSpace(project.ProjectName)) { existingProject.ProjectName = project.ProjectName; } if (!string.IsNullOrWhiteSpace(project.ProjectDescription)) { existingProject.ProjectDescription = project.ProjectDescription; } // Save changes await ctx.SaveChangesAsync(); return(true); } }
public async Task <ActionResult <bool> > AddProjectMember(string projectId, string userEmail) { using (var ctx = new AckeeCtx()) { var project = await ctx.Projects.FirstOrDefaultAsync(p => p.ProjectID == projectId); var user = await ctx.ApplicationUser.FirstOrDefaultAsync(u => u.Email == userEmail); if (user == null || project == null) { return(NotFound()); } var userProject = new UserProject(); userProject.ProjectId = projectId; userProject.UserId = user.Id; ctx.UserProjects.Add(userProject); await ctx.SaveChangesAsync(); return(true); } }
public async Task <ActionResult <bool> > AddAssigneeToTask([FromRoute] string projectId, [FromRoute] string taskName, [FromBody] string userId) { using (var ctx = new AckeeCtx()) { var task = await ctx.Tasks.FirstOrDefaultAsync(t => t.TaskName == taskName && t.Project.ProjectID == projectId); var assignee = await ctx.ApplicationUser.FirstOrDefaultAsync(a => a.Id == userId); if (task == null || assignee == null) { return(NotFound()); } var userTask = new UserTask(); userTask.UserID = assignee.Id; userTask.TaskID = task.TaskID; ctx.UserTasks.Add(userTask); await ctx.SaveChangesAsync(); return(true); } }
public async Task <object> AddMilestoneToTask([FromRoute] string projectId, [FromRoute] string taskName, [FromBody] string milestoneId) { using (var ctx = new AckeeCtx()) { var task = await ctx.Tasks.FirstOrDefaultAsync(t => t.TaskName == taskName && t.Project.ProjectID == projectId); var milestone = await ctx.Milestones.FirstOrDefaultAsync(m => m.MilestoneID == milestoneId); if (task == null || milestone == null) { return(NotFound()); } var milestoneTask = new MilestoneTask(); milestoneTask.MilestoneID = milestone.MilestoneID; milestoneTask.TaskID = task.TaskID; ctx.MilestoneTasks.Add(milestoneTask); await ctx.SaveChangesAsync(); return(true); } }
public async Task <object> DeleteTaskById(string taskId) { using (var ctx = new AckeeCtx()) { var task = ctx.Tasks.FirstOrDefault(t => t.TaskID == taskId); if (task == null) { return(BadRequest()); } var milestoneTasks = task.MilestoneTasks; ctx.Tasks.Remove(task); await ctx.SaveChangesAsync(); // Get all the milestones related to the task foreach (var milestoneTask in milestoneTasks) { // foreach task related to the milestone, check if all tasks are completed var milestone = await ctx.Milestones.FirstOrDefaultAsync(m => m.MilestoneID == milestoneTask.MilestoneID); if (milestone.MilestoneTasks.All(mt => mt.Task.Completed)) { milestone.Completed = true; } else { milestone.Completed = false; } } await ctx.SaveChangesAsync(); return(true); } }