Пример #1
0
 public void listen()
 {
     listener = new TcpListener(IPAddress.Any, port);
     listener.Start();
     while (is_active)
     {
         TcpClient s = listener.AcceptTcpClient();
         HttpProcessor processor = new HttpProcessor(s, this);
         Thread thread = new Thread(new ThreadStart(processor.process));
         thread.Start();
         Thread.Sleep(1);
     }
 }
Пример #2
0
        public override void handleGETRequest(HttpProcessor p)
        {
            //here i have to implement basic get functions
            // get categories/products/items
            // get tables

            if (p.http_url.Equals("/"))
            {
                Console.WriteLine("request: {0}", p.http_url);
                p.writeSuccess();
                p.outputStream.WriteLine("<html><body><h1>test server</h1>");
                p.outputStream.WriteLine("Current Time: " + DateTime.Now.ToString());
                p.outputStream.WriteLine("url : {0}", p.http_url);

                p.outputStream.WriteLine("<form method=post action=/form>");
                p.outputStream.WriteLine("<input type=text name=foo value=foovalue>");
                p.outputStream.WriteLine("<input type=submit name=bar value=barvalue>");
                p.outputStream.WriteLine("</form>");
            }
            else
            {

                string output = "error";

                if (p.http_url.Equals("/getCategories"))
                {
                    output = JsonConvert.SerializeObject(DBController.LoadCategories());
                    p.writeSuccess();
                }
                else if (p.http_url.Equals("/getProducts"))
                {
                    output = JsonConvert.SerializeObject(DBController.LoadProducts(0));
                    p.writeSuccess();
                }

                else if (p.http_url.Equals("/getItems"))
                {
                    output = JsonConvert.SerializeObject(DBController.LoadItems());
                    p.writeSuccess();
                }
                else if (p.http_url.Equals("/getCharacteristics"))
                {
                    output = JsonConvert.SerializeObject(DBController.LoadCharacteristics());
                    p.writeSuccess();
                }
                else if (p.http_url.Equals("/getTables"))
                {
                    p.writeSuccess();
                    //fixme with userId
                    string user_id = (string)p.httpHeaders["user_id"];
                    //check here
                    //Console.WriteLine("get tables with userid: " + user_id);
                    output = JsonConvert.SerializeObject(DBController.LoadTables(Convert.ToInt32(user_id)));
                    //Console.WriteLine("and output: " + output);

                }
                else
                {
                    output = "/getCategories\n";
                    output += "/getProducts\n";
                    output += "/getItems\n";
                    output += "/getTables\n";
                    //p.writeFailure();
                }

                p.outputStream.WriteLine(output);

            }
        }
Пример #3
0
        public override void handlePOSTRequest(HttpProcessor p, StreamReader inputData)
        {
            //here i have to implement basic post functions
            // post user name and pass
            // post new order
            // post close order
            Console.WriteLine("POST request: {0}", p.http_url);

            if (p.http_url.Equals("/postUser"))
            {

                string data = inputData.ReadToEnd();
                string username = getUsernameFromArgs(data);
                string password = getPasswordFromArgs(data);
                //Console.WriteLine("username: {0}, password: {1}", username, password);

                p.writeSuccess();
                int user_id = DBController.CheckUser(username, password);
                p.outputStream.WriteLine(user_id);

                if (setUserState != null)
                {
                    setUserState(user_id, true);
                }
            }
            else if (p.http_url.Equals("/postRemoveOrder"))
            {
                string order_id = (string)p.httpHeaders["order_id"];
                DBController.CloseOrder(order_id);
                p.writeSuccess();
                if(updateOrders!=null)
                {
                    updateOrders();
                }
            }
            else if (p.http_url.Equals("/postOrder"))
            {
                /*
                 *  add order
                 *  then add characteristics for that order
                 */
                string table_id = (string)p.httpHeaders["table_id"];
                string item_id = (string)p.httpHeaders["item_id"];
                string user_id = (string)p.httpHeaders["user_id"];
                int order_id = DBController.AddOrder(Convert.ToInt32(table_id), Convert.ToInt32(item_id), Convert.ToInt32(user_id));
                int characteristicsCount = Convert.ToInt32((string)p.httpHeaders["characteristicsCount"]);
                List<Characteristics> characteristics = new List<Characteristics>();
                List<Characteristics> allCharacteristics = DBController.LoadCharacteristics();
                for (int i = 0; i < characteristicsCount; i++)
                {
                    int characteristic_id = Convert.ToInt32((string)p.httpHeaders["characteristic" + i]);
                    foreach (Characteristics ch in allCharacteristics)
                    {
                        if(characteristic_id== ch.Id)
                        {
                            characteristics.Add( new Characteristics(ch.Id,ch.Name));
                            break;
                        }
                    }
                    DBController.AddCharacteristicsInOrder(order_id, characteristic_id);
                }
                p.writeSuccess();

                //print here

                //Printer.printOrder(new Order(order_id, Convert.ToInt32(table_id), Convert.ToInt32(item_id), Convert.ToInt32(user_id), true, "", characteristics));

                if (updateOrders != null)
                {
                    updateOrders();
                }

            }
            else if (p.http_url.Equals("/postUserOffline"))
            {
                string user_id = (string)p.httpHeaders["user_id"];
                p.writeSuccess();
                if (setUserState!= null)
                {
                    setUserState(Convert.ToInt32(user_id), false);
                }
            }
            else
            {

            }
        }
Пример #4
0
 public abstract void handlePOSTRequest(HttpProcessor p, StreamReader inputData);
Пример #5
0
 public abstract void handleGETRequest(HttpProcessor p);