using System.Collections.Generic; using System.Linq; using TINK.Model.MiniSurvey; using TINK.Repository.Response; namespace TINK.Model.Connector.Updater { public static class BookingFinishedModelFactory { /// Creates a booking finished object from response. /// Response to create survey object from. public static BookingFinishedModel Create(this DoReturnResponse response) { var bookingFinished = new BookingFinishedModel { Co2Saving = response?.bike_returned.co2saving, RentalCosts = response?.bike_returned.total_price, Duration = response?.bike_returned.real_clock, Distance = response?.bike_returned.distance, }; if (response?.user_miniquery == null) { return bookingFinished; } var miniquery = response.user_miniquery; bookingFinished.MiniSurvey = new MiniSurveyModel { Title = miniquery.title, Subtitle = miniquery.subtitle, Footer = miniquery.footer }; foreach (var question in miniquery?.questions?.OrderBy(x => x.Key) ?? new Dictionary().OrderBy(x => x.Key)) { if (string.IsNullOrEmpty(question.Key.Trim()) || question.Value.query == null) { // Skip invalid entries. continue; } bookingFinished.MiniSurvey.Questions.Add( question.Key, new QuestionModel()); } return bookingFinished; } } }