public async Task <EntityApiResponse <ApplicationUser> > CreateUserAsync(CreateApplicationUser userDetail)
        {
            if (userDetail is null)
            {
                throw new ArgumentNullException(nameof(userDetail));
            }

            var role = await _roleManager.FindByIdAsync(userDetail.RoleId);

            if (role is null)
            {
                return(new EntityApiResponse <ApplicationUser>(error: "Role does not exist"));
            }

            var user = new ApplicationUser
            {
                FirstName      = userDetail.FirstName,
                LastName       = userDetail.LastName,
                Email          = userDetail.Email,
                UserName       = userDetail.Email,
                ProfilePicture = userDetail.ProfilePicture,
                OrganizationId = userDetail.OrganizationId
            };

            var result = await _userManger.CreateAsync(user, userDetail.Password);

            if (!result.Succeeded)
            {
                return(new EntityApiResponse <ApplicationUser>(error: result.Errors.Select(e => e.Description).AllInOne()));
            }

            await _userManger.AddToRoleAsync(user, role.Name);

            return(new EntityApiResponse <ApplicationUser>(entity: user));
        }
示例#2
0
        public async Task <ActionResult> Create(CreateApplicationUser entity)
        {
            if (_user.FindByNameAsync(entity.IdentityUser.UserName).Result == null)
            {
                var email = entity.IdentityUser.UserName;
                var user  = new IdentityUser
                {
                    UserName = email,
                    Email    = email
                };
                var result = _user.CreateAsync(user, entity.Password).Result;
            }
            try
            {
                var newuser   = _user.FindByNameAsync(entity.IdentityUser.UserName).Result;
                var newentity = new ApplicationUser
                {
                    FirstName = entity.FirstName,
                    LastName  = entity.LastName,
                    Address   = entity.Address,
                    Id        = _user.FindByNameAsync(entity.IdentityUser.UserName).Result.Id,
                };
                if (!ModelState.IsValid)
                {
                    return(View(newentity));
                }
                var applicationUser = _mapper.Map <ApplicationUser>(newentity);
                //applicationUser.DateCreated = DateTime.Now;

                var isSuccess = await _repo.Add(applicationUser);

                if (!isSuccess)
                {
                    ModelState.AddModelError("", "Something went wrong...");
                    return(View(entity));
                }
                return(RedirectToAction(nameof(Index)));
            }
            catch
            {
                return(View());
            }
        }
示例#3
0
        public virtual IHttpActionResult Post([FromBody] CreateApplicationUser value)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            ApplicationUser model;

            try
            {
                model = ApplicationUser.Create(value);
            }
            catch (Exception e)
            {
                return(BadRequest(e.ToString()));
            }

            repository.Insert(model);
            var dto = mapper.Map <GetApplicationUser>(model);

            return(Created(nameof(ApplicationUser) + "/" + dto.Id, dto));
        }