Enterprise.NET 1 CA - presentation HENDRI FRANYOHT082210N KRISHNAMURTHY SAMANTH YADAVHT082239L CAI XIANGHT082182A KHAING MYAT THWEHT082208L AUNG MOEHT082184B SHAIKALAWDEEN FARIDUL HUKHT082188X USHA RANI KONUDULAHT082183N Team 07
Introduction SingAir Online Ticketing System (SOTS) is a web based internet booking system with the following functionalities : Guest Search Flights User Registration Registered Users Search Flights Flight Booking and Cancellation Track booking SingAir Staffs Manage Flight schedules Manage Airports User Administration Track customer bookings Reporting
Global Use-case Diagram
Booking (step 1) - Search Flight
Booking (step 2) - Selecting Flight
Login to continue Booking or Register if not yet a member
Register for membership
Continue Booking (step 3) – Auto Fill in Passenger Details
Booking (step 4) - Seat Selections
Booking (step 5) - Make Payment
Booking (step 6) - Booking confirmed
Booking (step 7) - Print Booking Info
Track My Bookings
Booking Cancellation
Admin Features
Manage Airport using MVC (By Admin)
Manage Airport using MVC Continue (By Admin)
Manage Flight Schedule (By Admin)
Track Customer Bookings (By Admin)
Reporting (By Admin)
Guiding principles Layered architecture Presentation Layer, Business Logic Layer Data Access Layer. DAL – Data Access Layer All Data handling is done in this layer Implements the DAO Pattern Include Entity Framework and Typed DataSet BLL – Business Logic Layer All Business Logic is incorporated in this layer Implements the Façade for BLL and the Presentation Layer interacts with Façade only. Implements the Factory Pattern to get specific Business Entity PL – Presentation Layer All User Interface is in this layer WebForm UI will adopt the PageController Pattern UI with minimal rendering control and the functional flow logic is in the PageController Core Common Functionalities – Constants, Messages
Architectural Diagram Client Browsers Web Forms and MVC Presentation Layer (Singair.PL) Business Logic Layer (Singair.BLL) Data Access Layer (Singair.DAL) Core (Constants, Common Functionalities) (Singair.Core) Page Controller/Controller Business Facade DAO Factory
Features Technology FeaturesLocationDescription Master PageSite.MasterAll Pages use it CSSSite.css, CalendarControl.css, jquery-ui custom.css All Pages use it Site NavigationRegister.aspx, Login.aspx, ChangePassword.aspx, ForgotPassword.aspx All Pages use it Membership APIManageFlightSchedule.aspx,Sea rchFlight.aspx,Reports.aspx UserControls: PasswordRecovery, Login, ChangePassword, CreateUserWizard GridView, ListView ControlSearchFlight.aspx, Register.aspxSearch Result, Create/Edit/Delete Record Javascript CalendarSearchFlight.aspx, Register.aspxDepart / Return Date, DOB
Features (cont…) Technology FeaturesLocationDescription CachingBaseForm.aspx.cs InitCities() XML File as Datasourcecountries.xml, Register.aspxBind country list to a dropdownlist control dynamically User ControlPassengerInfo.ascx, PassengerDetails.aspx Used in a Repeater control MVCManage AirportsMVC, WebForms into single project AJAXSeatSelection.aspx QuerystringTrackBooking.aspxUsed to pass booking id JQueryRegister.aspxTo create a javascript calendar control Http SessionSearchFlight.aspx, PassengerDetails.aspx Keep the value for multi-pages task
Features (cont…) Technology FeaturesLocationDescription View StateBaseForm.aspx.cs InitCities() ConcurrencySeatSelection.aspxHandles concurrency in seat booking. Entity FrameworkDAL ProjectAll use cases except Reports. Data AnnotationDAL ModelMVC Airport Typed Data SetDAL projectReports TransactionscopeBLL projectCreateBooking, Cancel Booking
Integration of MVC with ASP.NET Application Add references to existing ASP.NET application System.Web.Routing,System.Web.Abstractions,System.Web.Mvc Enable ASP.NET MVC in ASP.NET – web.config Routing Configuration – Global.asax public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.IgnoreRoute("{resource}.aspx/{*pathInfo}"); routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Airport", action = "Index", id = UrlParameter.Optional } // Parameter defaults ); } protected void Application_Start() { RegisterRoutes(RouteTable.Routes); }
Sequence diagram for BookFlight To be displayed from Rational Rose
Demo Demo of SingAir Online Ticketing System