Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            Config.Load();

            Uri              tcpUri  = new Uri(Config.ArendaURL);
            EndpointAddress  address = new EndpointAddress(tcpUri);
            BasicHttpBinding binding = new BasicHttpBinding();

            ObjModule.factory = new ChannelFactory <IArendaREST>(binding, address);

            Uri              tcpUri2  = new Uri(Config.BillingURL);
            EndpointAddress  address2 = new EndpointAddress(tcpUri2);
            BasicHttpBinding binding2 = new BasicHttpBinding();

            ObjModule.factory2 = new ChannelFactory <IBillingREST>(binding2, address2);

            Uri              tcpUri3  = new Uri(Config.ReserveURL);
            EndpointAddress  address3 = new EndpointAddress(tcpUri3);
            BasicHttpBinding binding3 = new BasicHttpBinding();

            ObjModule.factory3 = new ChannelFactory <IReserveREST>(binding3, address3);

            DataModule.Load();

            ObjModule.httpServer = new MyHttpServer(Config.PortalPort);
            ObjModule.thread     = new Thread(new ThreadStart(ObjModule.httpServer.listen));
            ObjModule.thread.Start();

            Console.WriteLine("Portal started... Press Enter to exit");
            Console.ReadLine();

            ObjModule.httpServer.stop();
            ObjModule.thread.Abort();


            /*
             * try
             * {
             *  List<String> ids = channel.GetItems();
             *  foreach (var id in ids)
             *  {
             *      ArendaItem item = channel.GetItemByID(id);
             *      Console.WriteLine("{0} {1} {2} {3} {4} ", item.address, item.s, item.price, item.id, item.elite);
             *  }
             *
             *
             *  //String adr = (String)channel.GetAddressByID("23");
             *  //Console.WriteLine(adr);
             *  ArendaItem it2 = new ArendaItem();
             *  it2.address = "Нью-Васюки";
             *  it2.elite = false;
             *  it2.id = "33";
             *  bool res = channel.AddItem(it2);
             * }
             * catch (Exception e)
             * {
             *  Console.WriteLine(e.Message);
             * }
             */
        }
Ejemplo n.º 2
0
        // Получение обработанного шаблона сайта
        public Template getResult()
        {
            bool conn  = ObjModule.OpenChannel();
            bool conn2 = ObjModule.OpenChannel2();
            bool conn3 = ObjModule.OpenChannel3();

            // Получение пользователя из сессии
            userid = getCookie("PortalUser");
            // Получение текущей страницы
            String page = getVar("page");

            if (page == "")
            {
                page = "start";
            }

            Template html = new Template("main");


            Template subpage = null;

            if ((!conn) || (!conn2) || (!conn3))
            {
                page = "error";
            }

            // Обработка стартовой страницы
            if (page == "start")
            {
                subpage = new Template(page);
            }
            else
            if (page == "error")
            {
                subpage = new Template(page);
                subpage.setVar("SERVICE", Config.ArendaURL);
                subpage.setVar("ERRMSG", ObjModule.errmsg);
            }
            else
            if (page == "about")
            {
                subpage = new Template(page);
            }
            else
            if (page == "reg")
            {
                subpage = new Template("reg");
                // Если пришла регистрация, то добавляем пользователя
                if (getVar("login") != "")
                {
                    String msg = "";
                    DataModule.addUser(getVar("login"), getVar("pass"), getVar("email"), ref msg);
                    subpage.setVar("MSG", msg);
                }
                else
                {
                    subpage.setVar("MSG", "");
                }
            }
            else
            if (page == "bill")
            {
                subpage = new Template("bill");
                // Если оплата
                if (getVar("sum") != "")
                {
                    ObjModule.channel2.IncSum(userid, Int32.Parse(getVar("sum")));
                    subpage.setVar("MSG", "Успешное пополнение счета");
                }
                else
                {
                    subpage.setVar("MSG", "");
                }
            }
            else
            if (page == "reserve")
            {
                subpage = new Template("reserve");
                // Бронь
                string selid = getVar("selid");

                subpage.setVar("SELID", selid);
                ArendaItem item = ObjModule.channel.GetItemByID(selid);

                subpage.setVar("ID", item.id);
                subpage.setVar("TYPE", item.roomtype);
                subpage.setVar("PRICE", item.price);
                subpage.setVar("S", item.s);
                subpage.setVar("CITY", item.city);
                subpage.setVar("ADDRESS", item.address);
                subpage.setVar("ELITE", item.elite ? "Премиум" : "Стандарт");

                if (getVar("isok") != "")
                {
                    if (!ObjModule.channel2.DecSum(userid, item.price))
                    {
                        subpage.setVar("MSG", "Недостаточно средств на счете");
                    }
                    else
                    {
                        ObjModule.channel3.DoReserveRoom(userid, item.id);

                        subpage.setVar("REDIR", "1");
                        subpage.setVar("MSG", "Успешное бронирование");
                    }
                }
                else
                {
                    subpage.setVar("MSG", "");
                }
            }
            else
            if (page == "auth")
            {
                subpage = new Template("auth");
                if (getVar("login") != "")
                {
                    // И выполняем авторизацию
                    if (DataModule.isAuthOK(getVar("login"), getVar("pass"), ref userid))
                    {
                        subpage.setVar("MSG", "Авторизация успешна");
                        subpage.setVar("REDIR", "1");
                        // с установкой сессии в cookie
                        p.setCookie("PortalUser", userid);
                    }
                    else
                    {
                        subpage.setVar("MSG", "Неправильный логин или пароль");
                    }
                }
                subpage.setVar("MSG", "");
            }
            else
            // Обработка страницы поиска
            if (page == "findrooms")
            {
                subpage = new Template(page);
                string tekcity = getVar("citylist");
                subpage.setVar("USER_ID", userid);

                List <String> citylist = ObjModule.channel.GetCityList();
                string        options  = "";
                foreach (var opt in citylist)
                {
                    options += "<option value='" + opt + "' " + (tekcity.Equals(opt) ? "selected" : "") + ">" + opt + "</option>";
                }
                subpage.setVar("CITYLIST", options);

                List <String> ids = ObjModule.channel.GetItems();

                string roomshtml = "";
                foreach (var id in ids)
                {
                    ArendaItem item = ObjModule.channel.GetItemByID(id);
                    if ((tekcity == "") || (tekcity.Equals(item.city)))
                    {
                        Template roomtpl = new Template("_room");
                        roomtpl.setVar("ID", id);
                        roomtpl.setVar("TYPE", item.roomtype);
                        roomtpl.setVar("PRICE", item.price);
                        roomtpl.setVar("S", item.s);
                        roomtpl.setVar("CITY", item.city);
                        roomtpl.setVar("ADDRESS", item.address);
                        roomtpl.setVar("ELITE", item.elite ? "Премиум" : "Стандарт");

                        bool isres = ObjModule.channel3.IsRoomReserved(userid, id);
                        roomtpl.setVar("RESERVED", isres ? "none" : "");
                        roomtpl.setVar("NORESERVED", isres ? "" : "none");

                        roomshtml += roomtpl.HTML();
                    }
                }
                subpage.setVar("ROOMS", roomshtml);
            }
            else
            {
                subpage = new Template("notfound");
                subpage.setVar("PAGE", page);
            }

            if (isAuthMode())
            {
                html.setVar("AUTHIN", "none");
                html.setVar("NOAUTHIN", "");
                html.setVar("USERNAME", DataModule.getUserName(userid));
                html.setVar("SUM", ObjModule.channel2.GetAccountID(userid));
            }
            else
            {
                html.setVar("AUTHIN", "");
                html.setVar("NOAUTHIN", "none");
                html.setVar("USERNAME", "Гость");
            }

            html.setVar("PAGEDATA", subpage.HTML());
            // Добавляем случайное значения для защиты от кэширования
            html.setVar("RND", (new Random()).Next(10000).ToString("D"));
            html.setVar("PAGE", page);

            return(html);
        }