Exemplo n.º 1
0
        /// <summary>
        /// Generate report by ItineraryId
        /// </summary>
        /// <param name="itineraryId"></param>
        /// <returns></returns>
        public ActionResult GenerateReport(long itineraryId)
        {
            _airportsRepository   = new AirportsRepository();
            _itinerarysRepository = new ItinerarysRepository();
            _usersRepository      = new UsersRepository();

            var itineraryInfo = _itinerarysRepository.Get(itineraryId);
            var userInfo      = new Users();

            _listF = new List <Flights>();

            if (itineraryInfo != null)
            {
                userInfo = _usersRepository.Get(itineraryInfo.UserID);

                foreach (var flight in itineraryInfo.Flights)
                {
                    flight.DepartureLocation = _airportsRepository.Get(flight.DepartureLocation).AirportID;
                    flight.ArrivalLocation   = _airportsRepository.Get(flight.ArrivalLocation).AirportID;
                }
            }

            ViewBag.itineraryInfo = itineraryInfo;

            return(View());
        }
Exemplo n.º 2
0
        public ActionResult Edit(long id)
        {
            _itinerarysRepository = new ItinerarysRepository();
            _flightsRepository    = new FlightsRepository();
            ViewBag.flightList    = _flightsRepository.GetFlightsByItinerary(id);

            return(View(_itinerarysRepository.Get(id)));
        }
Exemplo n.º 3
0
        public ActionResult Index()
        {
            _itinerarysRepository = new ItinerarysRepository();

            if (TempData["messageDelete"] != null)
            {
                ViewBag.Message = TempData["messageDelete"].ToString();
            }
            return(View());
        }
Exemplo n.º 4
0
        /// <summary>
        /// Action to delete an itinerary by Id
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public ActionResult Delete(long id)
        {
            _itinerarysRepository = new ItinerarysRepository();

            var res = _itinerarysRepository.Delete(id);

            if (res.Equals("NotAllowed"))
            {
                TempData["messageDelete"] = "The operation is not allowed because there are entries in the Tag Report";
            }
            else if (res.Equals("Ok"))
            {
                TempData["messageDelete"] = "The Itinerary was successfully deleted";
            }

            return(RedirectToAction("Index"));
        }
Exemplo n.º 5
0
        public ActionResult Edit(Itinerary model)
        {
            if (ModelState.IsValid)
            {
                _itinerarysRepository = new ItinerarysRepository();
                var currentItinerary = _itinerarysRepository.Get(model.ItineraryID);

                model.From        = currentItinerary.From;
                model.To          = currentItinerary.To;
                model.RetStops    = currentItinerary.RetStops;
                model.TripType    = currentItinerary.TripType;
                model.PassengerID = currentItinerary.PassengerID;
                _itinerarysRepository.Update(model);
                ViewBag.SuccessMessage = "The itinerary was updated successfully.";
            }
            _flightsRepository = new FlightsRepository();
            ViewBag.flightList = _flightsRepository.GetFlightsByItinerary(model.ItineraryID);

            return(View(model));
        }
Exemplo n.º 6
0
        public ActionResult Delete(Itinerary model)
        {
            try
            {
                _itinerarysRepository        = new ItinerarysRepository();
                _bagTagDesignationRepository = new BagTagDesignationRepository();

                _bagTagDesignationRepository.DeleteByItinerary(model.ItineraryID);
                _itinerarysRepository.Delete(model.ItineraryID);

                ViewBag.Message = "The itinerary with the Id {model.ItineraryID} was deleted from the Database";
                return(View("messages"));
            }
            catch (Exception e)
            {
                ModelState.AddModelError("", e);
                ViewBag.Message =
                    string.Format(
                        "Error: an error occurred when tried to delete the itinerary with the ID {0} was not deleted from the Database",
                        model.ItineraryID);
                return(View("messages"));
            }
        }
Exemplo n.º 7
0
        /// <summary>
        /// GridData by page and rows
        /// </summary>
        /// <param name="page"></param>
        /// <param name="rows"></param>
        /// <returns></returns>
        public ActionResult GridData(int page, int rows)
        {
            try
            {
                _itinerarysRepository     = new ItinerarysRepository();
                _storeProcedureRepository = new StoreProcedureRepository();

                var res = _storeProcedureRepository.GetManageItineraries(page, rows);

                var pageSize     = rows;
                var totalRecords = res.Any() ? Convert.ToInt32(res[0].intTotalHits) : 0;
                var totalPages   = (int)Math.Ceiling(totalRecords / (float)pageSize);

                var res2 = res.ToList();
                #region

                try
                {
                    var request = ControllerContext.HttpContext.Request;
                    if (request["ItineraryID"] != null)
                    {
                        var iId  = long.Parse(request["ItineraryID"]);
                        var res3 = res2.FindAll(x => x.ItineraryID == iId);
                        res2 = res3;
                    }

                    else if (request["Airline"] != null)
                    {
                        var res3 =
                            res2.FindAll(
                                x => x.AirlineName.Contains(request["Airline"].ToString(CultureInfo.InvariantCulture)));
                        res2 = res3;
                    }
                }
                catch (Exception exception)
                {
                    ModelState.AddModelError("", exception);
                }

                #endregion

                var jsonData = new
                {
                    total = totalPages,
                    page,
                    records = totalRecords,
                    rows    = (
                        from x in res2
                        let departDateTime = x.DepartDateTime
                                             where departDateTime != null

                                             let arrivalDateTime = x.ArrivalDateTime
                                                                   where arrivalDateTime != null
                                                                   select new
                    {
                        id = x.ItineraryID,
                        cell = new[] { "", "", "",
                                       x.ItineraryID.ToString(CultureInfo.InvariantCulture),
                                       departDateTime.Value.ToString(CultureInfo.InvariantCulture),
                                       arrivalDateTime.Value.ToString(CultureInfo.InvariantCulture),
                                       x.DepartureAirportDesignationLetters,
                                       x.ArrivalAirportDesignationLetters,
                                       x.FlightNumber.ToString(CultureInfo.InvariantCulture),
                                       x.AirlineName,
                                       x.PassengerName,
                                       x.PassengerEmail,
                                       x.Pingers,
                                       x.Stops.HasValue ? x.Stops.Value.ToString(CultureInfo.InvariantCulture) : string.Empty,
                                       x.Type,
                                       x.IsTestItinerary == false ? "No":"Yes" }
                    }).ToArray()
                };
                return(Json(jsonData, JsonRequestBehavior.AllowGet));
            }
            catch
            {
                ViewBag.message = "An error was ocurred.";
                return(null);
            }
        }
Exemplo n.º 8
0
        public ActionResult InsertBasic(string Stops, string TripTypeName, string PassengerName, string PassengerLastName, string PassengerEmail)
        {
            _airlinesRepository         = new AirlinesRepository();
            _airportsRepository         = new AirportsRepository();
            _tagsRepository             = new TagsRepository();
            _passengerRepository        = new PassengerRepository();
            _itineraryPingersRepository = new ItineraryPingersRepository();
            new UserTagsRepository();
            _usersRepository            = new UsersRepository();
            _monitoredFlightsRepository = new MonitoredFlightsRepository();
            _itinerarysRepository       = new ItinerarysRepository();
            _flightsRepository          = new FlightsRepository();
            new GatewayAirlineRepository();

            #region Create Itinerary

            var model = new BasicItineraryModel
            {
                //ConnxysTagId = ConnxysTagId,
                DepartureTime      = _listF.First().DepartureDateTime,
                ArrivalTime        = _listF.Last().ArrivalDateTime,
                DepartureName      = _airportsRepository.Get(_listF.First().DepartureLocation).AirportDesignationLetters,
                ArrivalName        = _airportsRepository.Get(_listF.Last().ArrivalLocation).AirportDesignationLetters,
                Stops              = Convert.ToInt32(Stops),
                TripTypeName       = TripTypeName,
                DepartDateTimeUTC  = _listIti.First().DepartDateTimeUTC,
                ArrivalDateTimeUTC = _listIti.Last().ArrivalDateTimeUTC
            };

            object jsonData;
            //Get Passenger Information
            var passenger = _passengerRepository.Get(PassengerEmail);
            passenger.PassengerName     = PassengerName;
            passenger.PassengerLastName = PassengerLastName;
            _passengerRepository.Update(passenger);

            var itinerary = new Itinerary
            {
                //UserID = userInfo.userID,
                UserID               = 0,
                Stops                = model.Stops,
                DepartDateTime       = model.DepartureTime,
                ArrivalDateTime      = model.ArrivalTime,
                AirlineReservationID = model.AirlineReservationId,
                RetStops             = model.RetStops,
                TripType             = (short?)int.Parse(model.TripTypeName),
                From               = model.DepartureName,
                To                 = model.ArrivalName,
                CreationDate       = DateTime.UtcNow,
                Type               = "Real Flight",
                PassengerID        = passenger != null ? passenger.PassengerID : 0,
                DepartDateTimeUTC  = model.DepartDateTimeUTC,
                ArrivalDateTimeUTC = model.ArrivalDateTimeUTC
            };

            try
            {
                //insert the new itinerary
                _itinerarysRepository.Add(itinerary);
                var itineraryId = itinerary.ItineraryID;

                if (itineraryId > 0)
                {
                    var connxysWcfRestService = new ConnxysWCFRestService();
                    var flightsList           = new StringBuilder();
                    var currentFlight         = 0L;
                    var flightInd             = 0;

                    //insert all the flights
                    foreach (var flightItem in _listF)
                    {
                        flightItem.ItineraryID = itineraryId;
                        _flightsRepository.Add(flightItem);

                        if (flightInd == (_listF.Count - 1))
                        {
                            flightsList.Append(flightItem.FlightID);
                        }
                        else
                        {
                            flightsList.Append(flightItem.FlightID).Append("-");
                        }

                        if (flightInd == 0)
                        {
                            currentFlight = flightItem.FlightID;
                        }


                        var monitoredFlights = new MonitoredFlights();
                        {
                            monitoredFlights.FlightId          = flightItem.FlightID;
                            monitoredFlights.FlightNumber      = flightItem.FlightNumber;
                            monitoredFlights.StartDate         = Convert.ToDateTime(flightItem.DepartureDateTime);
                            monitoredFlights.EndDate           = Convert.ToDateTime(flightItem.ArrivalDateTime);
                            monitoredFlights.DepartureLocation = flightItem.DepartureLocation;
                            monitoredFlights.ArrivalLocation   = flightItem.ArrivalLocation;
                            monitoredFlights.Status            = 0;

                            var airline = _airlinesRepository.Get(flightItem.AirlineID);
                            monitoredFlights.AirlineDesignator = airline.AirlineDesignator;
                            monitoredFlights.AirlineName       = airline.AirlineName;
                        }

                        //Insert monitoredflight in the database
                        _monitoredFlightsRepository.Add(monitoredFlights);

                        // Increase Flight index
                        flightInd++;
                    }

                    //insert all the bags
                    foreach (var bagItem in _listB)
                    {
                        var baggageInfo = new BaggageInfo {
                            BagIATANumber     = bagItem.BagIATANumber,
                            ItineraryId       = itineraryId,
                            PingerId          = bagItem.ConnxysTagID,
                            PassengerEmail    = passenger.PassengerEmail,
                            PassengerLastName = passenger.PassengerLastName,
                            PassengerName     = passenger.PassengerName
                        };

                        connxysWcfRestService.UpdateBaggageInfo(baggageInfo);

                        var itineraryPinger = new ItineraryPingers {
                            ItineraryID  = itinerary.ItineraryID,
                            ConnxysTagID = bagItem.ConnxysTagID
                        };

                        _itineraryPingersRepository.Add(itineraryPinger);
                    }
                    _listB = new List <BagTagDesignation>();

                    var creationDate = DateTime.Now.ToUniversalTime();
                    _storeProcedureRepository = new StoreProcedureRepository();
                    _storeProcedureRepository.CreateOutgoingMessage(itinerary.ItineraryID, null, null, null, null, Convert.ToInt64(model.TagId), "Manually", creationDate, false);

                    //Create notification message to sent a message to the passenger abput the itinerary creation
                    var notification = new NotificationMessage
                    {
                        Title   = "Itinerary Information",
                        Message = string.Format
                                      ("Hello {0}!  We’re excited to have you fly with us on flight #: {1} to {2}.  We’ll notify you when your bag is checked in, when it’s been loaded aboard your flight, and where you can reclaim it in {3}.  Enjoy your flight with us!", passenger.PassengerName, _listF[0].FlightNumber.ToString(), model.ArrivalName, model.ArrivalName),
                        TokenId = passenger.TokenId
                    };

                    foreach (var fl in _listF)
                    {
                        var airlineDesignator = _airlinesRepository.Get(fl.AirlineID);

                        var callUpdateFlight = new ConnxysWCFRestService();
                        if (fl.DepartureDateTime == null)
                        {
                            continue;
                        }
                        if (fl.ArrivalDateTime != null)
                        {
                            callUpdateFlight.UpdateSimpleFlight(
                                fl.FlightID.ToString(CultureInfo.InvariantCulture),
                                airlineDesignator.AirlineDesignator,
                                fl.FlightNumber.ToString(CultureInfo.InvariantCulture),
                                fl.DepartureDateTime.Value.ToString(CultureInfo.InvariantCulture),
                                fl.ArrivalDateTime.Value.ToString(CultureInfo.InvariantCulture));
                        }
                    }

                    _listF = new List <Flights>();

                    jsonData = new {
                        status      = "Ok",
                        itineraryId = itinerary.ItineraryID
                    };

                    //Send push notification about itinerary creation to the passenger
                    connxysWcfRestService.SendPushNotification(notification);
                }
                else
                {
                    //throw error the itinerary can not be created
                    _listF = new List <Flights>();
                    PopulateList();
                    jsonData = new
                    {
                        status  = "Failed",
                        message = "Error: The itinerary was not added."
                    };
                    return(Json(jsonData, JsonRequestBehavior.AllowGet));
                }

                return(Json(jsonData, JsonRequestBehavior.AllowGet));
            }
            catch (Exception e)
            {
                //throw error the itinerary can not be created
                _listF   = new List <Flights>();
                jsonData = new
                {
                    status  = "Failed",
                    message = "Error: The itinerary was not added."
                };
                return(Json(jsonData, JsonRequestBehavior.AllowGet));
            }

            #endregion
        }