Example #1
0
        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);
            }
        }
Example #2
0
        public async Task <object> CreateProjectForOwner([FromRoute] string userId, [FromBody] AspNetProjects project)
        {
            using (var ctx = new AckeeCtx())
            {
                // Get the user.
                var user = ctx.Users.FirstOrDefault(u => u.Id == userId);

                var existingProject = await ctx.UserProjects.FirstOrDefaultAsync(
                    up => up.UserId == userId &&
                    up.Project.ProjectName == project.ProjectName);

                // Return if project for user already exists or userId is null.
                if (user == null || existingProject != null)
                {
                    return(BadRequest());
                }

                // Create the new project.
                project.Owner       = user;
                project.DateCreated = DateTime.Now;

                // Add project to DB.
                ctx.Projects.Add(project);

                var userProject = new UserProject()
                {
                    ProjectId = project.ProjectID,
                    UserId    = user.Id
                };

                ctx.UserProjects.Add(userProject);
                await ctx.SaveChangesAsync();

                return(ctx.Projects.FirstOrDefault(p => p.ProjectID == project.ProjectID));
            }
        }