public async Task <ActionResult> Edit([Bind(Include = "Id,ProjectId,Topic,Type,Priority,UserId")] UsersTask usersTask) { if (ModelState.IsValid) { await _userTaskService.Update(usersTask); return(RedirectToAction("Index")); } _logger.Warn("Edit(). Validation error during task updating."); ViewBag.ProjectId = new SelectList(await _projectService.GetAll(), "Id", "Name", usersTask.ProjectId); ViewBag.UserId = new SelectList(await _userService.GetAll(), "Id", "UserLogin", usersTask.UserId); return(View(usersTask)); }
public async Task <IActionResult> Update(UserTaskRequest request) { if (request == null) { return(NotFound(request)); } var position = _mapper.Map <UserTask>(request); var result = await _userTaskService.Update(position); var response = _mapper.Map <UserTaskResponse>(result); return(Ok(response)); }
public async Task <IActionResult> Put([FromBody] params UserTaskDto[] userTaskDtos) { try { var userTasks = _mapper.Map <UserTask[]>(userTaskDtos); var updateResult = await _userTaskService.Update(userTasks); if (updateResult.Success) { return(StatusCode(StatusCodes.Status200OK)); } return(StatusCode(StatusCodes.Status400BadRequest, updateResult.Message)); } catch (Exception ex) { _logger.LogError(ex.Message); return(StatusCode(StatusCodes.Status500InternalServerError, ex.Message)); } }
public async Task <IActionResult> ConvertToAlumni() { User user = await HttpContext.GetContextUser(userService) .ConfigureAwait(false); if (await userService.FindAsync(user.Id) == null) { ProblemDetails problem = new ProblemDetails { Title = "Failed getting the user account.", Detail = "The database does not contain a user with this user id.", Instance = "598E61EC-1C0F-4ED2-AC42-F5B5503D4A5E" }; return(NotFound(problem)); } List <UserTask> userTasks = await userTaskService.GetUserTasksForUser(user.Id); UserTask userTask = userTasks.Find(u => u.Type == UserTaskType.GraduationReminder); if (userTask == null || userTask.Status == UserTaskStatus.Completed) { ProblemDetails problem = new ProblemDetails { Title = "No graduation user task exists.", Detail = "The database does not contain a (uncompleted) user task for graduating.", Instance = "A10E4AE8-633D-4334-BADA-99B7AD077B6D" }; return(NotFound(problem)); } List <Role> roles = await roleService.GetAllAsync(); Role alumniRole = roles.Find(r => r.Name == "Alumni"); if (alumniRole == null) { ProblemDetails problem = new ProblemDetails { Title = "Alumni role does not exist.", Detail = "The database does not contain a role for alumni.", Instance = "2DE31766-5D9C-4E41-908F-389A9A85F723" }; return(NotFound(problem)); } // Rest call to Identity server to change credentials. Credentials are in the headers due to security issues. identityHttpClient.DefaultRequestHeaders.Add("password", Request.Headers.FirstOrDefault(h => h.Key == "password") .Value.FirstOrDefault()); identityHttpClient.DefaultRequestHeaders.Add("email", Request.Headers.FirstOrDefault(h => h.Key == "email") .Value.FirstOrDefault()); identityHttpClient.DefaultRequestHeaders.Add("subjectId", user.IdentityId); HttpResponseMessage resp = await identityHttpClient.PutAsync("ExternalAccount", new StringContent("")); if (!resp.IsSuccessStatusCode) { ProblemDetails problem = new ProblemDetails { Title = "IdentityServer had an error.", Detail = resp.ReasonPhrase, Instance = "94B362FE-F038-43AF-B2C3-462513D1C7F8" }; return(StatusCode(503, problem)); } userTask.Status = UserTaskStatus.Completed; userTaskService.Update(userTask); user.Role = alumniRole; user.Email = Request.Headers.FirstOrDefault(h => h.Key == "email") .Value.FirstOrDefault(); userService.Update(user); userTaskService.Save(); userService.Save(); return(Ok(user)); }