Example #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="itineraryId"></param>
        /// <param name="itineraryDayId"></param>
        /// <returns></returns>
        private List <string> GetItineraryDayHighlights(int itineraryId, int itineraryDayId)
        {
            //validation
            if (itineraryId < 0)
            {
                throw new ArgumentException("Provide a valid ItineraryId.");
            }
            if (itineraryDayId < 0)
            {
                throw new ArgumentException("Provide a valid ItineraryDayId.");
            }

            var ktdb         = new DAL.KTdb();
            var itinIdExists = ktdb.ExecuteScalar <int>("select count(1) from ItineraryDayDesc where ItineraryId = ? and ItineraryDayId = ?", itineraryId, itineraryDayId);
            var dayDescData  = ktdb.Table <ItineraryDayDesc>().Where(x => x.ItineraryDayId == itineraryDayId && x.ItineraryId == itineraryId).OrderBy(y => y.TimeOfDayId).ThenBy(z => z.DisplayOrder);

            return(dayDescData.Select(x => x.ActivityTypeDisplayName + "-" + x.CustomDisplayName).ToList());
        }
Example #2
0
        public TripImportStatus AddItinerary(string tripRefNumber)
        {
            //validate triprefnumber for '-' or emptystring
            if (string.IsNullOrWhiteSpace(tripRefNumber))
            {
                throw new ArgumentException("TripRefNumber cannot be empty");
            }

            if (!tripRefNumber.Contains("-"))
            {
                throw new ArgumentException("Provider a valid trip ref number Ex.Wil5T-000100 ");
            }

            var tripId = tripRefNumber.Split('-')[1];

            //Check if this TripId is already in db then return from db
            var tripIdInt = Convert.ToInt32(tripId);
            var ktdb      = new DAL.KTdb();


            var tripServiceId = ktdb.ExecuteScalar <int>("select Id from TripServices where Id = ?", tripIdInt);

            //Add
            if (tripServiceId == 0)
            {
                var apiResponse = InsertTripDataFromApi(tripIdInt);
                if (!apiResponse)
                {
                    return(TripImportStatus.Error);
                }

                //get itineraryId
                var itinId = ktdb.ExecuteScalar <int>("select ItineraryId from TripServices where Id = ?", tripIdInt);
                GetItineraryDays(itinId);
                return(TripImportStatus.Add);
            }

            //return from db if pk is already exists
            if (tripServiceId > 0)
            {
                //save itineraryId
                var itinId = ktdb.ExecuteScalar <int>("select ItineraryId from TripServices where Id = ?", tripIdInt);

                //Webservice to fetch data related to trip this tripId
                apiUri = string.Format("{0}/{1}", "trips", tripIdInt);
                var tripApiResponseObject = new KTApi <TripDto>().Get(apiUri);

                if (tripApiResponseObject == null)
                {
                    return(TripImportStatus.Error);
                }

                //IF api response is GOOD, then delete data for this trip
                ktdb.Table <ItineraryDayDesc>().Delete(x => x.ItineraryId == itinId);
                ktdb.Table <ItineraryDays>().Delete(x => x.ItineraryId == itinId);
                ktdb.Table <TripServices>().Delete(x => x.Id == tripServiceId);

                //Insert new record in DB
                var apiResponse = InsertTripDataFromApi(tripApiResponseObject);

                if (!apiResponse)
                {
                    return(TripImportStatus.Error);
                }

                //Retreive from Db, with latest updates
                GetItineraryDays(itinId);

                //update as status
                return(TripImportStatus.Update);
            }

            return(TripImportStatus.Error);
        }