private async Task <ApplicationUser> GenerarUsuarioAsync(string userName, string email, string firstName, string lastName, string referidoId) { var fechaActual = DateTime.UtcNow; var codigo = _repository.GenerarCodigoCliente(); var user = new ApplicationUser { Id = "user-" + Formato.GenerarGuid(), LastName = lastName, Email = email, FirstName = firstName, FechaRegistro = fechaActual, FechaActualizacion = fechaActual, Codigo = codigo, DescripcionCodigo = Formato.ConvertirDecimalAlfanumerico(codigo, 36, 6), UserName = userName }; ApplicationUser usuarioPatrocindor = null; if (!string.IsNullOrWhiteSpace(referidoId) && referidoId != codigoPrincipal) { usuarioPatrocindor = await _repository.ConsultarUsuarioAsync(referidoId); if (usuarioPatrocindor != null) { user.Patrocinador = new Patrocinador { UserId = usuarioPatrocindor.Id, Imagen = usuarioPatrocindor.Imagen, NombreCompleto = usuarioPatrocindor.NombreCompleto }; user.Nivel = usuarioPatrocindor.Nivel + 1; } } else { user.Patrocinador = new Patrocinador { UserId = codigoPrincipal }; user.Nivel = 1; } return(user); }