Exemplo n.º 1
0
        public IQueryable<Flight> GridViewFlightsAdmin_GetData([Control]
                                     string dropDownListFromAirport, [Control]
                                     string dropDownListEndPoint)
        {
            var db = new AirPortDbContext();

            if (dropDownListFromAirport != null
                && dropDownListEndPoint != null
                && dropDownListEndPoint == dropDownListFromAirport)
            {
                ErrorSuccessNotifier.AddInfoMessage("Start and Endpoint must be different!");
                return null;
            }

            if (dropDownListFromAirport != null && dropDownListEndPoint != null)
            {
                return db.Flights.Where(f => f.FromAirPort == dropDownListFromAirport && f.ToAirPort == dropDownListEndPoint);
            }
            else if (dropDownListFromAirport != null)
            {
                return db.Flights.Where(f => f.FromAirPort == dropDownListFromAirport);
            }
            else if (dropDownListEndPoint != null)
            {
                return db.Flights.Where(f => f.FromAirPort == dropDownListEndPoint);
            }

            return db.Flights.OrderBy(f => f.FlightDate);
        }
Exemplo n.º 2
0
 public IQueryable<string> DropDownListToAirport_GetData()
 {
     var db = new AirPortDbContext();
     return db.Flights
         .GroupBy(f => f.ToAirPort)
         .Select(f => f.Key)
         .OrderBy(f => f);
 }
        protected void ButtonDetails_Command(object sender, CommandEventArgs e)
        {
            var id = Convert.ToInt32(e.CommandArgument);

            var context = new AirPortDbContext();

            // TODO - Add DTO here
            var ticketDetails = context.Logs.Include("Ticket").Include("User").Where(l => l.Id == id).ToList();

            this.ListViewDetails.DataSource = ticketDetails;
            this.ListViewDetails.DataBind();
            this.ListViewDetails.Visible = true;
        }
Exemplo n.º 4
0
 private void LoadImageAvatar()
 {
     var dbContext = new AirPortDbContext();
     using (dbContext)
     {
         var userId = User.Identity.GetUserId();
         var user = dbContext.Users.Find(userId);
         if (user.Image != null)
         {
             this.profileImage.Src = "data:image/jpeg;base64," + Convert.ToBase64String(user.Image);
         }
     }
 }
        // The return type can be changed to IEnumerable, however to support
        // paging and sorting, the following parameters must be added:
        //     int maximumRows
        //     int startRowIndex
        //     out int totalRowCount
        //     string sortByExpression
        public IQueryable<AirPortSystem.Models.Log> ListBoxPosts_GetData()
        {
            var userName = Context.User.Identity.Name;

            var context = new AirPortDbContext();

            var user = context.Users.Where(u => u.UserName == userName).FirstOrDefault();

            // TODO - Add DTO here
            var userTickets = context.Logs.Include("Ticket").Include("User").Where(l => l.User.Id == user.Id);

            return userTickets;
        }
Exemplo n.º 6
0
        protected void ButtonAddFlight_Click(object sender, EventArgs e)
        {
            Control footerControl = null;

            if (this.GridViewFlightsAdmin.FooterRow != null)
            {
                footerControl = this.GridViewFlightsAdmin.FooterRow;
            }
            else
            {
                footerControl = this.GridViewFlightsAdmin.Controls[0].Controls[0];
            }

            string fromAirport = (footerControl.FindControl("TextBoxFromAirPort") as TextBox).Text;
            string toAirport = (footerControl.FindControl("TextBoxToAirPort") as TextBox).Text;

            DateTimePicker dtp = (footerControl.FindControl("DateTimePicker") as DateTimePicker);
            string date = (dtp.FindControl("TextBoxFlightDate") as TextBox).Text;
            string time = (dtp.FindControl("TextBoxFlightTime") as TextBox).Text;
            string dateAndTime = date + " " + time;

            //  string result = (dtp.FindControl("TextBoxFlightDate") as TextBox).Text;
            DateTime flightDate = DateTime.ParseExact(dateAndTime, "dd-MM-yyyy HH:mm", System.Globalization.CultureInfo.InvariantCulture);
            int availableTickets = int.Parse((footerControl.FindControl("TextBoxAvailableTickets") as TextBox).Text);
            decimal price = decimal.Parse((footerControl.FindControl("TextBoxPrice") as TextBox).Text);

            if (fromAirport != null && toAirport != null)
            {
                var db = new AirPortDbContext();
                Flight flight = new Flight()
                {
                    FromAirPort = fromAirport,
                    ToAirPort = toAirport,
                    FlightDate = flightDate,
                    AvailableTickets = availableTickets,
                    Price = price
                };

                db.Flights.Add(flight);
                db.SaveChanges();

                (footerControl.FindControl("TextBoxFromAirPort") as TextBox).Text = "";
                (footerControl.FindControl("TextBoxToAirPort") as TextBox).Text = "";
                (footerControl.FindControl("TextBoxAvailableTickets") as TextBox).Text = "";
                (footerControl.FindControl("TextBoxPrice") as TextBox).Text = "";
                DataBind();
            }
        }
Exemplo n.º 7
0
        // The return type can be changed to IEnumerable, however to support
        // paging and sorting, the following parameters must be added:
        //     int maximumRows
        //     int startRowIndex
        //     out int totalRowCount
        //     string sortByExpression
        public IQueryable<NumberOfFlightsToModel> NumberOfFlightsToGridView_GetData()
        {
            var context = new AirPortDbContext();
            var groupedLogs = context.Flights.GroupBy(x => x.ToAirPort);
            var output = new List<NumberOfFlightsToModel>();

            foreach (var item in groupedLogs)
            {
                output.Add(new NumberOfFlightsToModel()
                {
                    Destination = item.FirstOrDefault().ToAirPort,
                    NumberOfFlights = item.Count()
                });
            }

            return output.OrderByDescending(x => x.NumberOfFlights).AsQueryable<NumberOfFlightsToModel>();
        }
Exemplo n.º 8
0
            GridViewFlightsAdmin_GetData([Control] string dropDownListFromAirport, [Control] string dropDownListEndPoint)
        {
            var db = new AirPortDbContext();

            if (dropDownListFromAirport != null && dropDownListEndPoint != null)
            {
                return db.Flights.Where(f => f.FromAirPort == dropDownListFromAirport && f.ToAirPort == dropDownListEndPoint).Where(f => f.FlightDate >= DateTime.Now);
            }
            else if (dropDownListFromAirport != null)
            {
                return db.Flights.Where(f => f.FromAirPort == dropDownListFromAirport).Where(f => f.FlightDate >= DateTime.Now);
            }
            else if (dropDownListEndPoint != null)
            {
                return db.Flights.Where(f => f.FromAirPort == dropDownListEndPoint).Where(f => f.FlightDate >= DateTime.Now);
            }

            return db.Flights.OrderBy(f => f.FlightDate).Where(f => f.FlightDate >= DateTime.Now);
        }
Exemplo n.º 9
0
        // The return type can be changed to IEnumerable, however to support
        // paging and sorting, the following parameters must be added:
        //     int maximumRows
        //     int startRowIndex
        //     out int totalRowCount
        //     string sortByExpression
        public IQueryable<NumberOfTicketsBoughtModel> TicketsByDateGridView_GetData()
        {
            var context = new AirPortDbContext();

            var groupedLogs = from log in context.Logs
                    let dateTime = log.DateBought
                    group log by new { y = dateTime.Year, m = dateTime.Month, d = dateTime.Day} into g
                    select g;

            var output = new List<NumberOfTicketsBoughtModel>();

            foreach (var item in groupedLogs)
            {
                output.Add(new NumberOfTicketsBoughtModel() 
                { 
                    BoughtDate = item.FirstOrDefault().DateBought.Date,
                    NumberOfTickets = item.Count()
                });
            }

            return output.OrderByDescending(x => x.BoughtDate).AsQueryable<NumberOfTicketsBoughtModel>();
        }
Exemplo n.º 10
0
 public void GridViewFlightsAdmin_UpdateItem(int id)
 {
     var db = new AirPortDbContext();
     Flight item = db.Flights.FirstOrDefault(f => f.Id == id);
     if (item == null)
     {
         ModelState.AddModelError("", String.Format("Item with id {0} was not found", id));
         return;
     }
     TryUpdateModel(item);
     if (ModelState.IsValid)
     {
         db.SaveChanges();
     }
 }
Exemplo n.º 11
0
 public void GridViewFlightsAdmin_DeleteItem(int id)
 {
     var db = new AirPortDbContext();
     AirPortSystem.Models.Flight item = db.Flights.FirstOrDefault(f => f.Id == id);
     if (item == null)
     {
         ModelState.AddModelError("", String.Format("Item with id {0} was not found", id));
         return;
     }
     else
     {
         db.Flights.Remove(item);
         db.SaveChanges();
     }
 }
Exemplo n.º 12
0
 protected void LoadImageAvatar()
 {
     var dbContext = new AirPortDbContext();
     using (dbContext)
     {
         var userId = Context.User.Identity.GetUserId();
         var user = dbContext.Users.Find(userId);
         if (user != null && user.Image != null)
         {
             var image = this.LoginView.FindControl("MiniAvatar") as HtmlImage;
             image.Src = "data:image/jpeg;base64," + Convert.ToBase64String(user.Image);
         }
     }
 }
Exemplo n.º 13
0
        private bool ShouldRemoveItem(string menuText)
        {
            var dbContext = new AirPortDbContext();

            var userId = Context.User.Identity.GetUserId();
            var user = dbContext.Users.Find(userId);

            if (menuText == "Logout" && user == null)
            {
                return true;
            }
            
            if (menuText == "Admin" && user == null)
            {
                return true;
            }

            if (menuText == "Logs" && user == null)
            {
                return true;
            }

            if (menuText == "My tickets" && user == null)
            {
                return true;
            }

            if (user != null)
            {
                if (menuText == "Admin" && user.Roles.Count == 1)
                {
                    return true;
                }

                if (menuText == "Logs" && user.Roles.Count == 1)
                {
                    return true;
                }

                if (menuText == "My tickets" && user.Roles.Count == 2)
                {
                    return true;
                }
            }

            if (menuText == "Login" && user != null)
            {
                return true;
            }

            if (menuText == "Register" && user != null)
            {
                return true;
            }

            return false;
        }
Exemplo n.º 14
0
        protected void ButtonBuyTicket_Click(object sender, EventArgs e)
        {
            if (Context.User.Identity.IsAuthenticated)
            {
                string user = Context.User.Identity.Name;
                int flightId = int.Parse(Request.Params["FlightId"]);
                string cardType = (this.DetailsViewBuyTicket.FindControl("CardType") as DropDownList).SelectedValue;
                string cardNumber = (this.DetailsViewBuyTicket.FindControl("TextBoxCardNumber") as TextBox).Text;

                if (cardType == null || cardType == string.Empty)
                {
                    ErrorSuccessNotifier.AddErrorMessage("Please select card type");
                }
                else if (cardNumber == null || cardNumber == string.Empty)
                {
                    ErrorSuccessNotifier.AddErrorMessage("Please enter card number");
                }
                else
                {
                    try
                    {
                        using (TransactionScope scope = new TransactionScope())
                        {
                            var db = new AirPortDbContext();
                            AirPortUser currentUser = db.Users.FirstOrDefault(u => u.UserName == user);
                            Flight currentFlight = db.Flights.FirstOrDefault(f => f.Id == flightId);
                            Ticket currentTicket = new Ticket() { Flight = currentFlight, User = currentUser };
                            Log currentLog = new Log()
                            {
                                CardNumber = cardNumber,
                                CardType = cardType,
                                DateBought = DateTime.Now,
                                Ticket = currentTicket,
                                User = currentUser
                            };

                            if (currentFlight.AvailableTickets <= 0)
                            {
                                ErrorSuccessNotifier.AddInfoMessage("No tickets available!");
                                ErrorSuccessNotifier.ShowAfterRedirect = true;
                                Response.Redirect("~/", false);
                                return;
                            }

                            currentFlight.AvailableTickets = currentFlight.AvailableTickets - 1;
                            db.Tickets.Add(currentTicket);
                            db.Logs.Add(currentLog);
                            db.SaveChanges();
                            scope.Complete();

                            ErrorSuccessNotifier.AddSuccessMessage("Ticket bought successfully!");
                            ErrorSuccessNotifier.ShowAfterRedirect = true;
                            Response.Redirect("~/", false);
                        }
                    }
                    catch (Exception ex)
                    {
                        ErrorSuccessNotifier.AddErrorMessage(ex);
                    }
                }
            }
            else
            {
                ErrorSuccessNotifier.AddErrorMessage("Please login!");
            }
        }
Exemplo n.º 15
0
 // The id parameter should match the DataKeyNames value set on the control
 // or be decorated with a value provider attribute, e.g. [QueryString]int id
 public AirPortSystem.Models.Flight DetailsViewBuyTicket_GetItem([QueryString] int? FlightId)
 {
     var db = new AirPortDbContext();
     return db.Flights.FirstOrDefault(f => f.Id == FlightId);
 }
Exemplo n.º 16
0
        protected void UploadBtn_Click(object sender, EventArgs e)
        {
            if (ValidateFile())
            {
                var dbContext = new AirPortDbContext();
                using (dbContext)
                {
                    var length = UploadAvatar.PostedFile.ContentLength;
                    byte[] fileData = new byte[length + 1];

                    Stream fileStream = UploadAvatar.PostedFile.InputStream;
                    fileStream.Read(fileData, 0, length);

                    var userId = User.Identity.GetUserId();
                    var user = dbContext.Users.Find(userId);
                    user.Image = fileData;
                    this.profileImage.Src = "data:image/jpeg;base64," + Convert.ToBase64String(fileData);
                    dbContext.SaveChanges();
                    this.SuccessMessage = "Image Upload Successful!";
                    successMessage.Visible = !String.IsNullOrEmpty(SuccessMessage);
                }
            }
        }