Example #1
0
        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));
        }
Example #2
0
        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));
        }
Example #3
0
        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));
        }