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 features : Registered Users Search Flights Self Register for booking Flight Booking and Cancellation Track booking SingAir Staffs Manage Flight schedules Manage Airports User Administration Track customer booking 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 after log in Continue after log in 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 Booking
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 User Interface, Business Logic and Data handling. DAL – Data Access Layer All Data handling must be done in this layer Implement the DAO Pattern BLL – Business Logic Layer All Business Logic must be in this layer Implement the Façade for BLL and the Presentation Layer need to interact with Façade only. Implement the Factory Pattern to get specific Business Entity PL – Presentation Layer All User Interface must be in this layer WebForm UI will adopt the PageController Pattern UI with minimal rendering control and all the transaction related logic must be in the PageController Core Common Functionalities
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
Sequence diagram for BookFlight To be displayed from Rational Rose
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); }
Ending with Demo of SingAir Ticketing System