コード例 #1
0
        /// <summary>
        /// Method for adding a new user
        /// </summary>
        /// <param name="newUserAc"></param>
        /// <returns></returns>
        public async Task AddNewUserAsync(AddUserAc newUserAc, ApplicationUser currentUser)
        {
            // Add new user
            ApplicationUser newUser = new ApplicationUser
            {
                Name      = newUserAc.Name,
                Email     = newUserAc.Email,
                UserName  = newUserAc.Email,
                CreatedOn = DateTime.UtcNow,
                CreatedBy = currentUser.Id
            };
            await _userManager.CreateAsync(newUser, newUserAc.Password);

            // Add user institute
            UserInstituteMapping userInstituteMapping = new UserInstituteMapping
            {
                InstituteId = newUserAc.InstituteId,
                UserId      = newUser.Id,
                CreatedOn   = DateTime.UtcNow
            };

            _iMSDbContext.UserInstituteMappings.Add(userInstituteMapping);
            await _iMSDbContext.SaveChangesAsync();

            // Add user role
            foreach (int userGroupId in newUserAc.UserGroupIdList)
            {
                UserGroup userGroup = await _iMSDbContext.UserGroups.FirstOrDefaultAsync(x => x.Id == userGroupId);

                if (userGroup != null)
                {
                    UserGroupMapping userRolesMapping = new UserGroupMapping
                    {
                        UserGroupId = userGroup.Id,
                        UserId      = newUser.Id,
                        CreatedOn   = DateTime.UtcNow
                    };
                    _iMSDbContext.UserGroupMapping.Add(userRolesMapping);
                    await _iMSDbContext.SaveChangesAsync();
                }
            }

            // Send welcome mail to the created user
            if (newUserAc.Email != null)
            {
                await SendWelcomeMail(new WelcomeMailToUserAc { Name = newUserAc.Name, Password = newUserAc.Password }, newUserAc.Email, newUserAc.Name);
            }
        }
コード例 #2
0
        public async Task <IActionResult> AddNewUserAsync([FromBody] AddUserAc newUserAc)
        {
            ApplicationUser existingUserWithEmail = await _userManager.FindByEmailAsync(newUserAc.Email);

            if (existingUserWithEmail != null)
            {
                return(Ok(new { Message = "User already exist with this email", HasError = true }));
            }

            if (ModelState.IsValid)
            {
                ApplicationUser currentUser = await _userManager.FindByNameAsync(User.Identity.Name);

                await _userManagementRepository.AddNewUserAsync(newUserAc, currentUser);

                return(Ok(new { Message = "User has been created successfully" }));
            }
            else
            {
                if (string.IsNullOrEmpty(newUserAc.Name))
                {
                    return(Ok(new { Message = "User's Name can't be null or empty", HasError = true }));
                }
                else if (string.IsNullOrEmpty(newUserAc.Password))
                {
                    return(Ok(new { Message = "User's Password can't be null or empty", HasError = true }));
                }
                else if (newUserAc.UserGroupIdList.Count == 0)
                {
                    return(Ok(new { Message = "Please select user role", HasError = true }));
                }
                else
                {
                    return(Ok(new { Message = "User's Institute can't be null or empty", HasError = true }));
                }
            }
        }