public async Task <Response <string> > RegisterUser(LoginDetails userLoginDetails, UserDetails userdetails) { //IClientSessionHandle session = null; try { var database = LibManagementConnection.GetConnection(); var userCollection = database.GetCollection <UserDetails>(CollectionConstant.User_Collection); var loginCollection = database.GetCollection <LoginDetails>(CollectionConstant.Login_Collection); var logins = await loginCollection.FindAsync(x => x.UserName.ToLower() == userdetails.UserName.ToLower()); var loginsList = await logins.ToListAsync(); string encryptedPassword = await passwordRepository.GetEncryptedPassword(userLoginDetails.Password); userLoginDetails.Password = encryptedPassword; if (loginsList?.Count == 0) { //session = await database.Client.StartSessionAsync(); //session.StartTransaction(); await loginCollection.InsertOneAsync(userLoginDetails); await userCollection.InsertOneAsync(userdetails); //await session.CommitTransactionAsync(); return(new Response <string>() { StatusCode = System.Net.HttpStatusCode.OK }); } else { return(new Response <string>() { StatusCode = System.Net.HttpStatusCode.BadRequest, Message = "User Already Exists" }); } } catch (Exception ex) { //await session.AbortTransactionAsync(); throw ex; } }