示例#1
0
 private async Task <AppUser> ToNewUser(AppUserDTO user)
 {
     BasicCheck(user ?? throw new ArgumentNullException());
     //Check role & get role id
     _roleCache.GetRoleId(user.Role, out int roleId, out var appRole);
     //CA must have manager
     if (appRole == RoleEnum.CA)
     {
         //CA must have manager
         await CheckUser(user.Manager?.UserId, RoleEnum.BDS, true);
     }
     if (appRole == RoleEnum.BDS)
     {
         //Currenly, only CA allow to have manager
         if (user.Manager != null)
         {
             throw new BussinessException($"Only CA can have manager(BDS)");
         }
     }
     return(new AppUser()
     {
         Name = user.Name,
         Username = user.Username.ToLower(),
         Active = true,
         Email = $"{user.Username}{_options.Suffix}",
         Hr = user.HR,
         Phone = user.Phone,
         Phone2 = user.Phone2,
         RoleId = roleId,
         ManagerId = user.Manager?.UserId
     });
 }
 public async Task <IActionResult> Suggest([FromQuery] string role, [FromQuery] string q = "")
 {
     if (string.IsNullOrEmpty(q) || string.IsNullOrEmpty(role))
     {
         return(NoContent());
     }
     try
     {
         _roleCache.GetRoleId(role, out int roleId, out var appRole);
         return(Ok(await _service.Suggest(appRole, q)));
     }
     catch (BussinessException ex)
     {
         _logger.LogDebug(ex.Message);
         return(BadRequest(ex.Message));
     }
 }