public static IDbClient GetClient(string dbName, DatabaseType databaseType, string connectionString = null) { var id = new DbIdentity(dbName, databaseType); IDbClient client; if (KnownClients.TryGetValue(id, out client)) { return(client); } lock (KnownClients) { if (KnownClients.TryGetValue(id, out client)) { return(client); } var conn = connectionString ?? GetConnectionString(dbName, databaseType); if (databaseType == DatabaseType.SqlServer) { client = new SqlDbClient(conn); } else { client = new MysqlDbClient(conn); } KnownClients[id] = client; return(client); } }
public static IDbClient GetClient(string dbName, DatabaseType databaseType, string connectionString = null) { ArgAssert.NotNullOrEmpty(dbName, "dbName"); var id = new DbIdentity(dbName, databaseType); var client = KnownClients.GetOrAdd(id, x => { var conn = connectionString ?? GetConnectionString(dbName, databaseType); return(databaseType == DatabaseType.MySql ? (IDbClient) new MysqlDbClient(conn) : (IDbClient) new SqlDbClient(conn)); }); return(client); }
public static DbIdentity AddDbIdentity() { var m = new DbIdentity { Identity = 2, UniqueId = Guid.NewGuid() }; var bll = new DbIdentityBll(); for (var i = 0; i < 5; i++) { bll.Insert(m); if (m.Id > 0) { return(m); } } throw new Exception("数据库标识插入失败,请联系管理员"); }
public async Task <OperationDetails> Create(UserDTO userDto) { try { User user = await DbIdentity.UserManager.FindByEmailAsync(userDto.Email); if (user == null) { user = new User { Email = userDto.Email, UserName = userDto.Email }; var result = await DbIdentity.UserManager.CreateAsync(user, userDto.Password); if (result.Errors.Any()) { return(new OperationDetails(false, result.Errors.FirstOrDefault(), "")); } // добавляем роль await DbIdentity.UserManager.AddToRoleAsync(user.Id, userDto.Role); // создаем профиль клиента UserProfile clientProfile = new UserProfile { Id = user.Id }; DbAuction.UserProfile.Create(clientProfile); await DbIdentity.SaveAsync(); return(new OperationDetails(true, "Регистрация успешно пройдена", "")); } else { return(new OperationDetails(false, "Пользователь с таким логином уже существует", "Email")); } } catch (EntityException ex) { throw new Exception(ex.Message); } }
public void Dispose() { DbIdentity.Dispose(); }