/// <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()); }
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); }