public IActionResult AddExistingUserToPlan(AddUserToPlanDTO addUserToPlan, int planId) { _loggerManager.Info($"AddExistingUserToPlan is requested"); Response.StatusCode = StatusCodes.Status202Accepted; if (planId <= 0) { _loggerManager.Warn($"AddExistingUserToPlan requesy is bad"); Response.StatusCode = StatusCodes.Status400BadRequest; return(PartialView("~/Views/User/Partials/_AddNewUser.cshtml")); } var existingUser = addUserToPlan.ExistingUser; if (TryValidateModel(existingUser)) { var result = _planRepository.AddUserToPlan(existingUser.Id.Value, planId, existingUser.PositionId.Value); if (result) { _loggerManager.Warn($"AddExistingUserToPlan successfully added an user"); Response.StatusCode = StatusCodes.Status201Created; } else { _loggerManager.Warn($"AddExistingUserToPlan was unable to add user to a plan"); ModelState.AddModelError(string.Empty, sharedResource.userAddExistingUserToPlanProblem); } } else { _loggerManager.Warn($"AddExistingUserToPlan is invalid"); } return(PartialView("~/Views/User/Partials/_AddExistingUser.cshtml")); }
public IActionResult AddNewUserToPlan(AddUserToPlanDTO addUserToPlan, int planId) { _loggerManager.Info($"AddNewUserToPlan is requested"); Response.StatusCode = StatusCodes.Status202Accepted; if (planId <= 0) { Response.StatusCode = StatusCodes.Status400BadRequest; _loggerManager.Warn($"AddNewUserToPlan request is bad"); return(PartialView("~/Views/User/Partials/_AddNewUser.cshtml")); } var planNewUser = addUserToPlan.NewUser; if (TryValidateModel(planNewUser)) { if (_userRepository.FindByCondition(u => u.Email == planNewUser.Email).Any()) { _loggerManager.Warn($"AddNewUserToPlan - an user with the email exists"); ModelState.AddModelError("NewUser.Email", sharedResource.userAddNewUserToPlanProblemEmailAlreadyExist); return(PartialView("~/Views/User/Partials/_AddNewUser.cshtml")); } var newUser = new NewUserDTO { FirstName = planNewUser.FirstName, LastName = planNewUser.LastName, Email = planNewUser.Email, PositionId = planNewUser.PositionId }; newUser.Password = _userRepository.GeneratePassword(); newUser.Role = Roles.Employee; var user = _userRepository.AddNew(newUser, HttpContext.GetUserId()); if (user == null) { _loggerManager.Warn($"AddNewUserToPlan - Adding a new user failed"); ModelState.AddModelError(string.Empty, sharedResource.userAddNewUserToPlanFailed); return(PartialView("~/Views/User/Partials/_AddNewUser.cshtml")); } if (!_emailService.SendPasswordToUser(newUser.Password, user)) { _loggerManager.Error($"AddNewUserToPlan - Email was not sent to the user"); ModelState.AddModelError(string.Empty, sharedResource.userAddNewUserToPlanEmailNotSent); return(PartialView("~/Views/User/Partials/_AddNewUser.cshtml")); } if (!_planRepository.AddUserToPlan(user.Id, planId, newUser.PositionId.Value)) { _loggerManager.Error($"AddNewUserToPlan - User was not added to the planning team"); ModelState.AddModelError(string.Empty, sharedResource.userAddNewUserToPlanNotAddedToTeam); return(PartialView("~/Views/User/Partials/_AddNewUser.cshtml")); } _loggerManager.Info($"AddNewUserToPlan succeesfully added a user"); Response.StatusCode = StatusCodes.Status201Created; } else { _loggerManager.Warn($"AddNewUserToPlan request is invalid"); } return(PartialView("~/Views/User/Partials/_AddNewUser.cshtml")); }