Пример #1
0
        public static void RegisterThread()
        {
            var factory = getFactory();

            using (var connection = factory.CreateConnection())
                using (var channel = connection.CreateModel())
                {
                    channel.BasicQos(0, 1, true);
                    channel.QueueDeclare("Register", false, false, false, null);
                    Console.WriteLine("[Register]Listening");
                    while (true)
                    {
                        BasicGetResult result = channel.BasicGet("Register", true);
                        if (result == null)
                        {
                            // No message available at this time.
                        }
                        else
                        {
                            IBasicProperties props = result.BasicProperties;
                            byte[]           body  = result.Body;
                            Messages.User    u     = Messages.User.DeserializeFromByte(body);
                            InsertIntoDb(u);
                            Console.WriteLine("[Register]" + u.username + " " + u.password);
                        }
                    }
                }
        }
Пример #2
0
        public void Register(Messages.User u)
        {
            var factory = _Default.getFactory();

            using (var connection = factory.CreateConnection())
                using (var channel = connection.CreateModel())
                {
                    channel.QueueDeclare("Register", false, false, false, null);
                    channel.BasicPublish("", "Register", true, null, Messages.User.SerializeToByte(u));
                }
        }
Пример #3
0
        public static void InsertIntoDb(Messages.User u)
        {
            string conn = getConnectionString();

            using (SqlConnection connection = new SqlConnection(conn))
            {
                SqlCommand command = new SqlCommand("insert into [dbo].[users] values ('" + u.username + "','" + u.password + "')", connection);
                command.Connection.Open();
                command.ExecuteNonQuery();
                command.Connection.Close();
            }
        }
Пример #4
0
        public static bool CheckIfUserExists(Messages.User u)
        {
            string conn = getConnectionString();

            using (SqlConnection connection = new SqlConnection(conn))
            {
                SqlCommand command = new SqlCommand("select * from [dbo].[users] where username='******' and password='******'", connection);
                command.Connection.Open();
                using (SqlDataReader reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        return(true);
                    }
                    reader.Close();
                    command.Connection.Close();
                }
                return(false);
            }
        }
Пример #5
0
        public void UserLogin(Messages.User u)
        {
            var factory = _Default.getFactory();

            using (var connection = factory.CreateConnection())
                using (var channel = connection.CreateModel())
                {
                    channel.QueueDeclare("Login", false, false, false, null);
                    var id         = Guid.NewGuid().ToString();
                    var properties = channel.CreateBasicProperties();
                    properties.CorrelationId = id;
                    properties.ReplyTo       = id;
                    channel.QueueDeclare(id, false, false, true, null);

                    var consumer = new EventingBasicConsumer(channel);
                    int result   = 0;
                    consumer.Received += (model, ea) =>
                    {
                        byte[] body = ea.Body;
                        result = int.Parse(Encoding.UTF8.GetString(body));
                        channel.QueueDelete(id, false, false);
                    };
                    channel.BasicConsume(id, true, consumer);

                    channel.BasicPublish("", "Login", true, properties, Messages.User.SerializeToByte(u));

                    while (result.CompareTo(0) == 0)
                    {
                        System.Threading.Thread.Sleep(100);
                    }
                    if (result.CompareTo(200) == 0)
                    {
                        Response.Write("<script>alert('Logged!')</script>");
                    }
                    else
                    {
                        Response.Write("<script>alert('User not found')</script>");
                    }
                }
        }
Пример #6
0
        public static void LoginThread()
        {
            var factory = getFactory();

            using (var connection = factory.CreateConnection())
                using (var channel = connection.CreateModel())
                {
                    channel.BasicQos(0, 1, true);
                    channel.QueueDeclare("Login", false, false, false, null);
                    Console.WriteLine("[Login]Listening");
                    while (true)
                    {
                        BasicGetResult result = channel.BasicGet("Login", true);
                        if (result == null)
                        {
                            // No message available at this time.
                        }
                        else
                        {
                            IBasicProperties props    = result.BasicProperties;
                            byte[]           body     = result.Body;
                            Messages.User    u        = Messages.User.DeserializeFromByte(body);
                            bool             isLogged = CheckIfUserExists(u);
                            Console.WriteLine("[Login]" + u.username + " " + u.password + " " + ((isLogged) ? "is exists" : "doesn't exists"));
                            channel.QueueDeclare(props.CorrelationId, false, false, true, null);
                            if (isLogged)
                            {
                                channel.BasicPublish("", props.CorrelationId, false, null, Encoding.UTF8.GetBytes("200"));
                                return;//200;
                            }
                            else
                            {
                                channel.BasicPublish("", props.CorrelationId, false, null, Encoding.UTF8.GetBytes("404"));
                                return;//404
                            }
                        }
                    }
                }
        }