示例#1
0
        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;
            }
        }