public ActionResult CreateRequest(IdeasDto.RequestDto requestobj) { //var userId = new Guid(User.Identity.GetUserId()); var userId = new Guid("AD350B67-86E3-4AFD-955F-1315B111EAFD"); var message = ""; var foundRequest = new IdeasDto().GetIdeaRequest().FirstOrDefault(i => i.IdeaRequesterId == userId && i.IdeasId == requestobj.IdeaId); if (foundRequest != null) { message = foundRequest.RequestType + " request already sent for this project."; return(Json(message)); } var obj = new IdeaRequest(); obj.UserID = userId; obj.UserIdeaID = requestobj.IdeaId; obj.CreatedDateTime = DateTime.Now; obj.LastModified = DateTime.Now; //DYNAMICALLY FIND THE FIRST ROUTE FOR THE REQUEST TYPE - THIS IS THE FIRST STEP FOR THE PROCESS var route = new IdeasDto(); var foundRoute = route.GetIdeaRoutes().FirstOrDefault(r => r.StepNo == 1 && r.RequestType == requestobj.Action); if (requestobj.Action == RequestType.Collaborate) { if (foundRoute != null) { obj.IdeaRouteID = foundRoute.RouteId; } _db.IdeaRequest.Add(obj); if (_db.SaveChanges() > 0) { message = "Collaboration request submitted"; } } if (requestobj.Action == RequestType.Fund) { if (foundRoute != null) { obj.IdeaRouteID = foundRoute.RouteId; } _db.IdeaRequest.Add(obj); if (_db.SaveChanges() > 0) { message = "Funding request submitted"; } } return(Json(message)); }
public async Task <IActionResult> UpdateIdea(string id, IdeaRequest request) { // Authenticate requester. var jwtToken = Request.Headers["X-Access-Token"]; if (!tokenHelper.ValidateJwtToken(jwtToken, out SecurityToken validatedToken)) { return(Unauthorized()); } // Sanitize inputs. if (request.Content.Length > 255) { return(BadRequest("Content cannot exceed 255 characters.")); } if (request.Impact < 1 || request.Impact > 10) { return(BadRequest("Impact must be between 1 and 10.")); } if (request.Ease < 1 || request.Ease > 10) { return(BadRequest("Ease must be between 1 and 10.")); } if (request.Confidence < 1 || request.Confidence > 10) { return(BadRequest("Confidence must be between 1 and 10.")); } var idea = await dbContext.Ideas.FindAsync(id); // Get the user's ID from the claims. var userIdString = HttpContext.User.Claims.First(c => c.Type.Equals("user_id")).Value; int userId = int.Parse(userIdString); // Users are only allowed to update their own ideas. if (idea.UserId != userId) { return(Unauthorized()); } // Copy request parameters. idea.Content = request.Content; idea.Impact = (int)request.Impact; idea.Ease = (int)request.Ease; idea.Confidence = (int)request.Confidence; // Attach idea to context and save. dbContext.Entry(idea).State = EntityState.Modified; await dbContext.SaveChangesAsync(); var response = new IdeaResponse(idea.Id, idea.Content, idea.Impact, idea.Ease, idea.Confidence, idea.CreatedAt); return(Ok(response)); }
public async Task <ActionResult <Idea> > CreateIdea(IdeaRequest request) { // Authenticate requester. var jwtToken = Request.Headers["X-Access-Token"]; if (!tokenHelper.ValidateJwtToken(jwtToken, out SecurityToken validatedToken)) { return(Unauthorized()); } // Sanitize inputs. if (request.Content.Length > 255) { return(BadRequest("Content cannot exceed 255 characters.")); } if (request.Impact < 1 || request.Impact > 10) { return(BadRequest("Impact must be between 1 and 10.")); } if (request.Ease < 1 || request.Ease > 10) { return(BadRequest("Ease must be between 1 and 10.")); } if (request.Confidence < 1 || request.Confidence > 10) { return(BadRequest("Confidence must be between 1 and 10.")); } // Get the user's ID from the claims. var userIdString = HttpContext.User.Claims.First(c => c.Type.Equals("user_id")).Value; int userId = int.Parse(userIdString); var idea = new Idea() { Id = await GenerateUniqueId(userId), UserId = userId, Content = request.Content, Impact = (int)request.Impact, Ease = (int)request.Ease, Confidence = (int)request.Confidence, CreatedAt = DateTimeOffset.UtcNow.ToUnixTimeSeconds() }; dbContext.Ideas.Add(idea); await dbContext.SaveChangesAsync(); var response = new IdeaResponse(idea.Id, idea.Content, idea.Impact, idea.Ease, idea.Confidence, idea.CreatedAt); return(CreatedAtAction(nameof(GetIdeas), response)); }
public ActionResult AddBestIdea([FromBody] IdeaRequest req) { Project proj = _context.Project.Where(p => p.Uid == req.ProjectUid).FirstOrDefault <Project>(); ProjectParameters param = new ProjectParameters { Uid = Guid.NewGuid().ToString(), Type = "b", Content = req.Idea, ProjectId = proj.Id }; _context.ProjectParameters.Add(param); _context.SaveChanges(); return(Ok(new { message = "Success!" })); }
public async Task <IActionResult> GetIdeaForAuthor(Guid userId, Guid id) { var user = _requestBus.RequestAsync <UserRequest, UserDTO>(new UserRequest(userId)); if (user == null) { return(BadRequest($"User {userId} not found")); } var request = new IdeaRequest(id); var response = await _requestBus.RequestAsync <IdeaRequest, IdeaDTO>(request); if (response == null) { return(BadRequest($"Idea {id} not found")); } return(Ok(response)); }