Пример #1
0
        public async Task <HttpResponseMessage> Post(UserTransportModel model)
        {
            try
            {
                var result = await _userRepository.AddUserAsnyc(model, "User");

                return(Request.CreateResponse(HttpStatusCode.OK, result));
            }
            catch
            {
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Could not create user."));
            }
        }
Пример #2
0
        /// <inheritdoc />
        public Task <long?> AddUserAsnyc(UserTransportModel model, string firstRoleName)
        {
            var roleId = _roleRepository.GetRoleIdByNameAsync(firstRoleName).Result;

            if (!roleId.HasValue)
            {
                return(null);
            }
            model.Id = _store.Value.Count + 1;
            var line = $"{model.Id};{roleId};{model.UserName};{model.Email};{model.PasswordHash};{model.EmailConfirmed};{model.LockoutEnabled}";

            try
            {
                File.AppendAllLines(@"Stores\UserStore.txt", new[] { line });
            }
            catch (Exception e)
            {
                return(Task.FromResult(default(long?)));
            }
            return(Task.FromResult(model.Id as long?));
        }
Пример #3
0
        /// <inheritdoc />
        public async Task <long?> AddUserAsnyc(UserTransportModel model, string firstRoleName)
        {
            var roleId = await _roleRepository.GetRoleIdByNameAsync(firstRoleName);

            if (!roleId.HasValue)
            {
                HandleException(new ArgumentException("Role not found.", nameof(firstRoleName)));
                return(null);
            }
            var newUser = model.ToEntity();

            newUser.EmailConfirmed    = true;
            newUser.AccessFailedCount = 0;
            newUser.LockoutEnabled    = false;
            newUser.LockoutEndDateUtc = null;
            newUser.SecurityStamp     = Guid.NewGuid().ToString("N");
            var userRole = new UserRole
            {
                RoleId = roleId.Value
            };

            newUser.UserRoles.Add(userRole);
            DbContext.Users.Add(newUser);
            try
            {
                await DbContext.SaveChangesAsync();

                if (newUser.Id == 0)
                {
                    await DbContext.Entry(newUser).ReloadAsync();
                }
                return(newUser.Id);
            }
            catch (Exception ex)
            {
                HandleException(ex);
                return(default(long?));
            }
        }
        /// <summary>
        /// Converts the <paramref name="source"/> to its entity representation.
        /// </summary>
        /// <param name="source">The transportable model.</param>
        /// <returns>The entity representation.</returns>
        public static User ToEntity(this UserTransportModel source)
        {
            var result = Mapper.Map <User>(source);

            return(result);
        }