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); * } */ }
// Получение обработанного шаблона сайта 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); }