├── MyTrains.Localization ├── Strings.nl-BE.Designer.cs ├── obj │ └── Debug │ │ ├── TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs │ │ ├── TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs │ │ ├── TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs │ │ ├── TempPE │ │ └── Strings.nl-BE.Designer.cs.dll │ │ ├── DesignTimeResolveAssemblyReferences.cache │ │ └── DesignTimeResolveAssemblyReferencesInput.cache ├── MyTrains.Localization.csproj.vspscc ├── LocalizedStrings.cs └── Properties │ └── AssemblyInfo.cs ├── README.md ├── MyTrains.Core ├── obj │ └── Debug │ │ ├── TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs │ │ ├── TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs │ │ ├── TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs │ │ ├── DesignTimeResolveAssemblyReferences.cache │ │ └── DesignTimeResolveAssemblyReferencesInput.cache ├── Model │ ├── BaseModel.cs │ ├── Settings.cs │ ├── User.cs │ ├── City.cs │ ├── SavedJourney.cs │ ├── App │ │ ├── SearchParameters.cs │ │ └── MenuItem.cs │ ├── Currency.cs │ └── Journey.cs ├── Contracts │ ├── ViewModel │ │ ├── ILoginViewModel.cs │ │ ├── IMainViewModel.cs │ │ ├── ISettingsViewModel.cs │ │ ├── IJourneyDetailViewModel.cs │ │ ├── ISavedJourneysViewModel.cs │ │ ├── ISearchResultViewModel.cs │ │ └── ISearchJourneyViewModel.cs │ ├── Services │ │ ├── IConnectionService.cs │ │ ├── IDialogService.cs │ │ ├── ICityDataService.cs │ │ ├── IUserDataService.cs │ │ ├── ISettingsDataService.cs │ │ ├── ISavedJourneyDataService.cs │ │ └── IJourneyDataService.cs │ └── Repository │ │ ├── IUserRepository.cs │ │ ├── ICityRepository.cs │ │ ├── ISettingsRepository.cs │ │ ├── ISavedJourneyRepository.cs │ │ └── IJourneyRepository.cs ├── Utility │ ├── UrlConstants.cs │ ├── MenuOption.cs │ └── ResxTextProvider.cs ├── MyTrains.Core.csproj.user ├── Extensions │ ├── TaskExtensions.cs │ └── ListExtensions.cs ├── MyTrains.Core.csproj.vspscc ├── Services │ ├── General │ │ └── ConnectionService.cs │ └── Data │ │ ├── CityDataService.cs │ │ ├── UserDataService.cs │ │ ├── SettingsDataService.cs │ │ ├── JourneyDataService.cs │ │ └── SavedJourneyDataService.cs ├── Messages │ └── CurrencyChangedMessage.cs ├── Converters │ ├── DateTimeToDayConverter.cs │ ├── DateTimeToTimeConverter.cs │ └── CurrencyToStringConverter.cs ├── AppStart.cs ├── Fake │ └── SearchJourneyViewModel.cs ├── App.cs ├── Repositories │ ├── BaseRepository.cs │ ├── UserRepository.cs │ ├── SettingsRepository.cs │ ├── SavedJourneyRepository.cs │ └── CityRepository.cs ├── ViewModel │ ├── BaseViewModel.cs │ ├── MainViewModel.cs │ └── MenuViewModel.cs ├── Properties │ └── AssemblyInfo.cs └── packages.config ├── Components ├── fmcalendar-1.5.3.png ├── square.androidtimessquare-1.6.5.0.png ├── fmcalendar-1.5.3 │ ├── lib │ │ ├── ios │ │ │ └── Factorymind.Components.dll │ │ └── ios-unified │ │ │ └── Factorymind.Components-Unified.dll │ ├── component │ │ ├── icons │ │ │ ├── fmcalendar_128x128.png │ │ │ └── fmcalendar_512x512.png │ │ ├── screenshots │ │ │ └── screenshot1.jpg │ │ ├── License.md │ │ ├── Manifest.xml │ │ ├── Details.md │ │ └── GettingStarted.md │ └── samples │ │ ├── FMCalendarSample.iOS │ │ ├── Resources │ │ │ └── Default-568h@2x.png │ │ ├── Entitlements.plist │ │ ├── Main.cs │ │ ├── AppDelegate.cs │ │ ├── Info.plist │ │ ├── FMCalendarViewController.cs │ │ └── FMCalendarSample.iOS.sln │ │ └── FMCalendarSample.iOS-Unified │ │ ├── Resources │ │ └── Default-568h@2x.png │ │ ├── Entitlements.plist │ │ ├── Main.cs │ │ ├── AppDelegate.cs │ │ ├── Info.plist │ │ ├── FMCalendarViewController.cs │ │ └── FMCalendarSample.iOS-Unified.sln └── square.androidtimessquare-1.6.5.0 │ ├── lib │ └── android │ │ └── Square.AndroidTimesSquare.dll │ ├── component │ ├── icons │ │ ├── square.androidtimessquare_128x128.png │ │ └── square.androidtimessquare_512x512.png │ ├── License.md │ ├── Manifest.xml │ ├── GettingStarted.md │ └── Details.md │ └── samples │ └── AndroidTimesSquareSample │ ├── Resources │ ├── drawable │ │ ├── Icon.png │ │ ├── bg_circle_selected.xml │ │ ├── bg_circle_today.xml │ │ └── custom_calendar_bg_selector.xml │ ├── drawable-hdpi │ │ └── icon.png │ ├── drawable-mdpi │ │ └── icon.png │ ├── drawable-xhdpi │ │ └── icon.png │ ├── drawable-xxhdpi │ │ └── icon.png │ ├── values │ │ ├── dimens.xml │ │ ├── colors.xml │ │ └── Strings.xml │ ├── layout │ │ ├── Dialog.axml │ │ └── DialogCustomized.axml │ └── color │ │ └── custom_calendar_text_selector.xml │ ├── Properties │ ├── AndroidManifest.xml │ └── AssemblyInfo.cs │ ├── packages.config │ └── AndroidTimesSquareSample.sln ├── MyTrains.Droid ├── Resources │ ├── .DS_Store │ ├── drawable │ │ ├── .DS_Store │ │ ├── drawer_shadow_dark.9.png │ │ ├── drawer_shadow_light.9.png │ │ ├── btn_enabled.xml │ │ ├── btn_disabled.xml │ │ ├── toolbar_dropshadow.axml │ │ ├── calendar_border.xml │ │ ├── border_button.axml │ │ ├── scaledBackground.xml │ │ ├── button_selector.xml │ │ ├── secondary_button_selector.axml │ │ └── spinner_border.xml │ ├── drawable-hdpi │ │ ├── app_icon.png │ │ ├── arrow_up.png │ │ ├── splash.png │ │ ├── arrow_down.png │ │ ├── arrow_left.png │ │ └── arrow_right.png │ ├── drawable-ldpi │ │ ├── app_icon.png │ │ ├── arrow_up.png │ │ ├── splash.png │ │ ├── arrow_down.png │ │ ├── arrow_left.png │ │ └── arrow_right.png │ ├── drawable-mdpi │ │ ├── app_icon.png │ │ ├── arrow_up.png │ │ ├── splash.png │ │ ├── arrow_down.png │ │ ├── arrow_left.png │ │ └── arrow_right.png │ ├── drawable-xhdpi │ │ ├── splash.png │ │ ├── app_icon.png │ │ ├── arrow_up.png │ │ ├── arrow_down.png │ │ ├── arrow_left.png │ │ └── arrow_right.png │ ├── drawable-xxhdpi │ │ ├── splash.png │ │ ├── app_icon.png │ │ ├── arrow_up.png │ │ ├── arrow_down.png │ │ ├── arrow_left.png │ │ └── arrow_right.png │ ├── drawable-xxxhdpi │ │ ├── splash.png │ │ ├── app_icon.png │ │ ├── arrow_down.png │ │ ├── arrow_left.png │ │ ├── arrow_up.png │ │ └── arrow_right.png │ ├── values │ │ ├── Strings.xml │ │ ├── dimens.axml │ │ ├── SplashStyle.axml │ │ ├── styles.xml │ │ └── colors.xml │ ├── layout │ │ ├── SplashScreen.axml │ │ ├── item_city_dropdown.axml │ │ ├── toolbar_shadow.axml │ │ ├── item_city.axml │ │ ├── item_currency.axml │ │ ├── SavedJourneysView.axml │ │ ├── SearchResultsView.axml │ │ ├── fragment_menu.axml │ │ ├── toolbar.axml │ │ ├── MainView.axml │ │ ├── item_menu.axml │ │ └── SettingsView.axml │ └── AboutResources.txt ├── GettingStarted.Xamarin ├── Bootstrap │ ├── FilePluginBootstrap.cs │ ├── SqlitePluginBootstrap.cs │ ├── MessengerPluginBootstrap.cs │ └── WebBrowserPluginBootstrap.cs ├── MyTrains.Droid.csproj.vspscc ├── MyTrains.Droid.csproj.user ├── Properties │ ├── AndroidManifest.xml │ └── AssemblyInfo.cs ├── SplashScreen.cs ├── Extensions │ ├── ActivityExtensions.cs │ └── MonoTypeExtensions.cs ├── Assets │ └── AboutAssets.txt ├── DebugTrace.cs ├── Views │ ├── SettingsFragment.cs │ ├── SavedJourneysFragment.cs │ ├── JourneyDetailsFragment.cs │ ├── MenuFragment.cs │ └── SearchResultsFragment.cs ├── Services │ └── DialogService.cs ├── obj │ └── Debug │ │ └── sdks.cache └── Setup.cs ├── MyTrains.iOS ├── Resources │ └── Assets.xcassets │ │ ├── Contents.json │ │ ├── splash.imageset │ │ ├── splash.png │ │ ├── splash@2x.png │ │ ├── splash@3x.png │ │ └── Contents.json │ │ ├── AppIcons.appiconset │ │ ├── Icon.png │ │ ├── Icon-40.png │ │ ├── Icon-60.png │ │ ├── Icon-72.png │ │ ├── Icon-76.png │ │ ├── Icon@2x.png │ │ ├── Icon-40@2x.png │ │ ├── Icon-40@3x.png │ │ ├── Icon-60@2x.png │ │ ├── Icon-60@3x.png │ │ ├── Icon-72@2x.png │ │ ├── Icon-76@2x.png │ │ ├── Icon-Small.png │ │ ├── Icon-83.5@2x.png │ │ ├── Icon-Small-50.png │ │ ├── Icon-Small@2x.png │ │ ├── Icon-Small@3x.png │ │ ├── iTunesArtwork.png │ │ ├── Icon-Small-50@2x.png │ │ └── iTunesArtwork@2x.png │ │ ├── arrow-up.imageset │ │ ├── arrow-up.png │ │ ├── arrow-up@2x.png │ │ ├── arrow-up@3x.png │ │ └── Contents.json │ │ ├── arrow-down.imageset │ │ ├── arrow-down.png │ │ ├── arrow-down@2x.png │ │ ├── arrow-down@3x.png │ │ └── Contents.json │ │ ├── arrow-left.imageset │ │ ├── arrow-left.png │ │ ├── arrow-left@2x.png │ │ ├── arrow-left@3x.png │ │ └── Contents.json │ │ ├── arrow-right.imageset │ │ ├── arrow-right.png │ │ ├── arrow-right@2x.png │ │ ├── arrow-right@3x.png │ │ └── Contents.json │ │ ├── ic-home-active.imageset │ │ ├── ic-home-active.png │ │ ├── ic-home-active@2x.png │ │ ├── ic-home-active@3x.png │ │ └── Contents.json │ │ ├── ic-home-normal.imageset │ │ ├── ic-home-normal.png │ │ ├── ic-home-normal@2x.png │ │ ├── ic-home-normal@3x.png │ │ └── Contents.json │ │ ├── ic-saved-active.imageset │ │ ├── ic-saved-active.png │ │ ├── ic-saved-active@2x.png │ │ ├── ic-saved-active@3x.png │ │ └── Contents.json │ │ ├── ic-saved-normal.imageset │ │ ├── ic-saved-normal.png │ │ ├── ic-saved-normal@2x.png │ │ ├── ic-saved-normal@3x.png │ │ └── Contents.json │ │ ├── ic-search-active.imageset │ │ ├── ic-search-active.png │ │ ├── ic-search-active@2x.png │ │ ├── ic-search-active@3x.png │ │ └── Contents.json │ │ ├── ic-search-normal.imageset │ │ ├── ic-search-normal.png │ │ ├── ic-search-normal@2x.png │ │ ├── ic-search-normal@3x.png │ │ └── Contents.json │ │ ├── ic-settings-active.imageset │ │ ├── ic-settings-active.png │ │ ├── ic-settings-active@2x.png │ │ ├── ic-settings-active@3x.png │ │ └── Contents.json │ │ └── ic-settings-normal.imageset │ │ ├── ic-settings-normal.png │ │ ├── ic-settings-normal@2x.png │ │ ├── ic-settings-normal@3x.png │ │ └── Contents.json ├── Assets.xcassets │ └── LaunchImage.launchimage │ │ └── Contents.json ├── Entitlements.plist ├── Bootstrap │ ├── JsonPluginBootstrap.cs │ ├── MessengerPluginBootstrap.cs │ ├── SqlitePluginBootstrap.cs │ └── WebBrowserPluginBootstrap.cs ├── MyTrains.iOS.csproj.user ├── MyTrains.iOS.csproj.vspscc ├── StoryBoardContainer.cs ├── Views │ ├── MainView.designer.cs │ ├── SavedJourneysView.designer.cs │ ├── SearchResultView.designer.cs │ ├── BaseView.cs │ ├── SettingsView.designer.cs │ ├── SearchJourneyView.designer.cs │ └── SearchResultView.cs ├── Utility │ └── MyTrainsColors.cs ├── Services │ └── DialogService.cs ├── Main.cs ├── TableViewSources │ ├── SavedJourneysTableViewSource.cs │ └── SearchResultsTableViewSource.cs ├── Setup.cs ├── packages.config ├── SearchResultCell.designer.cs ├── SearchResultsCell.designer.cs ├── Controls │ └── CalendarHelper.cs ├── SearchResultsCell.cs ├── Info.plist ├── Properties │ └── AssemblyInfo.cs ├── SavedJourneyCell.cs └── SavedJourneyCell.designer.cs ├── Libraries └── MvvmCross.Droid.Support.V7.Fragging.4.1.1 │ ├── MvvmCross.Droid.Support.V7.Fragging.4.1.1.nupkg │ └── lib │ └── MonoAndroid403 │ ├── MvvmCross.Droid.Support.V7.Fragging.dll │ └── MvvmCross.Droid.Support.V7.Fragging.dll.config ├── packages └── repositories.config └── MyTrains.Core.UnitTests ├── Bootstrap └── MessengerPluginBootstrap.cs ├── MyTrains.Core.UnitTests.csproj.vspscc ├── Tests ├── Repository │ └── CityRepositoryTests.cs └── Services │ └── CityDataServiceTests.cs ├── Mocks ├── RepositoryMocks.cs └── ServiceMocks.cs ├── packages.config └── Properties └── AssemblyInfo.cs /MyTrains.Localization/Strings.nl-BE.Designer.cs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # MyTrains 2 | Pluralsight Xamarin MVVM course sample code 3 | -------------------------------------------------------------------------------- /MyTrains.Core/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /MyTrains.Core/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /MyTrains.Core/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /MyTrains.Localization/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /MyTrains.Localization/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /MyTrains.Localization/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Components/fmcalendar-1.5.3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/Components/fmcalendar-1.5.3.png -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Droid/Resources/.DS_Store -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Droid/Resources/drawable/.DS_Store -------------------------------------------------------------------------------- /MyTrains.Core/Model/BaseModel.cs: -------------------------------------------------------------------------------- 1 | namespace MyTrains.Core.Model 2 | { 3 | public abstract class BaseModel 4 | { 5 | 6 | } 7 | } -------------------------------------------------------------------------------- /Components/square.androidtimessquare-1.6.5.0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/Components/square.androidtimessquare-1.6.5.0.png -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable-hdpi/app_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Droid/Resources/drawable-hdpi/app_icon.png -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable-hdpi/arrow_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Droid/Resources/drawable-hdpi/arrow_up.png -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable-hdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Droid/Resources/drawable-hdpi/splash.png -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable-ldpi/app_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Droid/Resources/drawable-ldpi/app_icon.png -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable-ldpi/arrow_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Droid/Resources/drawable-ldpi/arrow_up.png -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable-ldpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Droid/Resources/drawable-ldpi/splash.png -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable-mdpi/app_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Droid/Resources/drawable-mdpi/app_icon.png -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable-mdpi/arrow_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Droid/Resources/drawable-mdpi/arrow_up.png -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable-mdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Droid/Resources/drawable-mdpi/splash.png -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable-xhdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Droid/Resources/drawable-xhdpi/splash.png -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable-xxhdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Droid/Resources/drawable-xxhdpi/splash.png -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable-hdpi/arrow_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Droid/Resources/drawable-hdpi/arrow_down.png -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable-hdpi/arrow_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Droid/Resources/drawable-hdpi/arrow_left.png -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable-ldpi/arrow_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Droid/Resources/drawable-ldpi/arrow_down.png -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable-ldpi/arrow_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Droid/Resources/drawable-ldpi/arrow_left.png -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable-mdpi/arrow_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Droid/Resources/drawable-mdpi/arrow_down.png -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable-mdpi/arrow_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Droid/Resources/drawable-mdpi/arrow_left.png -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable-xhdpi/app_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Droid/Resources/drawable-xhdpi/app_icon.png -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable-xhdpi/arrow_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Droid/Resources/drawable-xhdpi/arrow_up.png -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable-xxhdpi/app_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Droid/Resources/drawable-xxhdpi/app_icon.png -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable-xxhdpi/arrow_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Droid/Resources/drawable-xxhdpi/arrow_up.png -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable-xxxhdpi/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Droid/Resources/drawable-xxxhdpi/splash.png -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable-hdpi/arrow_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Droid/Resources/drawable-hdpi/arrow_right.png -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable-ldpi/arrow_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Droid/Resources/drawable-ldpi/arrow_right.png -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable-mdpi/arrow_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Droid/Resources/drawable-mdpi/arrow_right.png -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable-xhdpi/arrow_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Droid/Resources/drawable-xhdpi/arrow_down.png -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable-xhdpi/arrow_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Droid/Resources/drawable-xhdpi/arrow_left.png -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable-xhdpi/arrow_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Droid/Resources/drawable-xhdpi/arrow_right.png -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable-xxhdpi/arrow_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Droid/Resources/drawable-xxhdpi/arrow_down.png -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable-xxhdpi/arrow_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Droid/Resources/drawable-xxhdpi/arrow_left.png -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable-xxhdpi/arrow_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Droid/Resources/drawable-xxhdpi/arrow_right.png -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable-xxxhdpi/app_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Droid/Resources/drawable-xxxhdpi/app_icon.png -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable-xxxhdpi/arrow_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Droid/Resources/drawable-xxxhdpi/arrow_down.png -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable-xxxhdpi/arrow_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Droid/Resources/drawable-xxxhdpi/arrow_left.png -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable-xxxhdpi/arrow_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Droid/Resources/drawable-xxxhdpi/arrow_up.png -------------------------------------------------------------------------------- /MyTrains.iOS/Assets.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images": [], 3 | "info": { 4 | "version": 1, 5 | "author": "xcode" 6 | } 7 | } -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable-xxxhdpi/arrow_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Droid/Resources/drawable-xxxhdpi/arrow_right.png -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable/drawer_shadow_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Droid/Resources/drawable/drawer_shadow_dark.9.png -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable/drawer_shadow_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Droid/Resources/drawable/drawer_shadow_light.9.png -------------------------------------------------------------------------------- /Components/fmcalendar-1.5.3/lib/ios/Factorymind.Components.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/Components/fmcalendar-1.5.3/lib/ios/Factorymind.Components.dll -------------------------------------------------------------------------------- /MyTrains.Core/Contracts/ViewModel/ILoginViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace MyTrains.Core.Contracts.ViewModel 2 | { 3 | public interface ILoginViewModel 4 | { 5 | 6 | } 7 | } -------------------------------------------------------------------------------- /MyTrains.Core/Contracts/ViewModel/IMainViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace MyTrains.Core.Contracts.ViewModel 2 | { 3 | public interface IMainViewModel 4 | { 5 | 6 | } 7 | } -------------------------------------------------------------------------------- /MyTrains.Core/Utility/UrlConstants.cs: -------------------------------------------------------------------------------- 1 | namespace MyTrains.Core.Utility 2 | { 3 | public class UrlConstants 4 | { 5 | public const string CityApiUrl = ""; 6 | } 7 | } -------------------------------------------------------------------------------- /Components/fmcalendar-1.5.3/component/icons/fmcalendar_128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/Components/fmcalendar-1.5.3/component/icons/fmcalendar_128x128.png -------------------------------------------------------------------------------- /Components/fmcalendar-1.5.3/component/icons/fmcalendar_512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/Components/fmcalendar-1.5.3/component/icons/fmcalendar_512x512.png -------------------------------------------------------------------------------- /Components/fmcalendar-1.5.3/component/screenshots/screenshot1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/Components/fmcalendar-1.5.3/component/screenshots/screenshot1.jpg -------------------------------------------------------------------------------- /MyTrains.Core/Contracts/ViewModel/ISettingsViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace MyTrains.Core.Contracts.ViewModel 2 | { 3 | public interface ISettingsViewModel 4 | { 5 | 6 | } 7 | } -------------------------------------------------------------------------------- /MyTrains.Core/Model/Settings.cs: -------------------------------------------------------------------------------- 1 | namespace MyTrains.Core.Model 2 | { 3 | public class Settings 4 | { 5 | public Currency SelectedCurrency { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /MyTrains.Core/obj/Debug/DesignTimeResolveAssemblyReferences.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Core/obj/Debug/DesignTimeResolveAssemblyReferences.cache -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/splash.imageset/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/splash.imageset/splash.png -------------------------------------------------------------------------------- /MyTrains.Localization/obj/Debug/TempPE/Strings.nl-BE.Designer.cs.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Localization/obj/Debug/TempPE/Strings.nl-BE.Designer.cs.dll -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/splash.imageset/splash@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/splash.imageset/splash@2x.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/splash.imageset/splash@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/splash.imageset/splash@3x.png -------------------------------------------------------------------------------- /MyTrains.Core/Contracts/ViewModel/IJourneyDetailViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace MyTrains.Core.Contracts.ViewModel 2 | { 3 | public interface IJourneyDetailViewModel 4 | { 5 | 6 | } 7 | } -------------------------------------------------------------------------------- /MyTrains.Core/Contracts/ViewModel/ISavedJourneysViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace MyTrains.Core.Contracts.ViewModel 2 | { 3 | public interface ISavedJourneysViewModel 4 | { 5 | 6 | } 7 | } -------------------------------------------------------------------------------- /MyTrains.Core/Contracts/ViewModel/ISearchResultViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace MyTrains.Core.Contracts.ViewModel 2 | { 3 | public interface ISearchResultViewModel 4 | { 5 | 6 | } 7 | } -------------------------------------------------------------------------------- /MyTrains.Core/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Core/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-40.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-60.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-72.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-76.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon@2x.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/arrow-up.imageset/arrow-up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/arrow-up.imageset/arrow-up.png -------------------------------------------------------------------------------- /MyTrains.Core/Contracts/ViewModel/ISearchJourneyViewModel.cs: -------------------------------------------------------------------------------- 1 | namespace MyTrains.Core.Contracts.ViewModel 2 | { 3 | public interface ISearchJourneyViewModel 4 | { 5 | 6 | 7 | } 8 | } -------------------------------------------------------------------------------- /MyTrains.Localization/obj/Debug/DesignTimeResolveAssemblyReferences.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Localization/obj/Debug/DesignTimeResolveAssemblyReferences.cache -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-40@2x.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-40@3x.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-60@2x.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-60@3x.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-72@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-72@2x.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-76@2x.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-Small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-Small.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/arrow-down.imageset/arrow-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/arrow-down.imageset/arrow-down.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/arrow-left.imageset/arrow-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/arrow-left.imageset/arrow-left.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/arrow-up.imageset/arrow-up@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/arrow-up.imageset/arrow-up@2x.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/arrow-up.imageset/arrow-up@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/arrow-up.imageset/arrow-up@3x.png -------------------------------------------------------------------------------- /MyTrains.Core/Utility/MenuOption.cs: -------------------------------------------------------------------------------- 1 | namespace MyTrains.Core.Utility 2 | { 3 | public enum MenuOption 4 | { 5 | SearchJourney = 0, 6 | SavedJourneys, 7 | Settings 8 | } 9 | } -------------------------------------------------------------------------------- /MyTrains.Droid/GettingStarted.Xamarin: -------------------------------------------------------------------------------- 1 | 2 | GS\Android\CS\AndroidApp\GettingStarted.html 3 | false 4 | -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-83.5@2x.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-Small-50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-Small-50.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-Small@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-Small@2x.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-Small@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-Small@3x.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/AppIcons.appiconset/iTunesArtwork.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/AppIcons.appiconset/iTunesArtwork.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/arrow-down.imageset/arrow-down@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/arrow-down.imageset/arrow-down@2x.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/arrow-down.imageset/arrow-down@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/arrow-down.imageset/arrow-down@3x.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/arrow-left.imageset/arrow-left@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/arrow-left.imageset/arrow-left@2x.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/arrow-left.imageset/arrow-left@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/arrow-left.imageset/arrow-left@3x.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/arrow-right.imageset/arrow-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/arrow-right.imageset/arrow-right.png -------------------------------------------------------------------------------- /Components/fmcalendar-1.5.3/lib/ios-unified/Factorymind.Components-Unified.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/Components/fmcalendar-1.5.3/lib/ios-unified/Factorymind.Components-Unified.dll -------------------------------------------------------------------------------- /MyTrains.Core/Contracts/Services/IConnectionService.cs: -------------------------------------------------------------------------------- 1 | namespace MyTrains.Core.Contracts.Services 2 | { 3 | public interface IConnectionService 4 | { 5 | bool CheckOnline(); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /MyTrains.Localization/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.Localization/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/arrow-right.imageset/arrow-right@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/arrow-right.imageset/arrow-right@2x.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/arrow-right.imageset/arrow-right@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/arrow-right.imageset/arrow-right@3x.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-Small-50@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-Small-50@2x.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/AppIcons.appiconset/iTunesArtwork@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/AppIcons.appiconset/iTunesArtwork@2x.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/ic-home-active.imageset/ic-home-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/ic-home-active.imageset/ic-home-active.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/ic-home-normal.imageset/ic-home-normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/ic-home-normal.imageset/ic-home-normal.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/ic-saved-active.imageset/ic-saved-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/ic-saved-active.imageset/ic-saved-active.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/ic-saved-normal.imageset/ic-saved-normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/ic-saved-normal.imageset/ic-saved-normal.png -------------------------------------------------------------------------------- /Components/fmcalendar-1.5.3/samples/FMCalendarSample.iOS/Resources/Default-568h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/Components/fmcalendar-1.5.3/samples/FMCalendarSample.iOS/Resources/Default-568h@2x.png -------------------------------------------------------------------------------- /Components/square.androidtimessquare-1.6.5.0/lib/android/Square.AndroidTimesSquare.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/Components/square.androidtimessquare-1.6.5.0/lib/android/Square.AndroidTimesSquare.dll -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/ic-home-active.imageset/ic-home-active@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/ic-home-active.imageset/ic-home-active@2x.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/ic-home-active.imageset/ic-home-active@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/ic-home-active.imageset/ic-home-active@3x.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/ic-home-normal.imageset/ic-home-normal@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/ic-home-normal.imageset/ic-home-normal@2x.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/ic-home-normal.imageset/ic-home-normal@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/ic-home-normal.imageset/ic-home-normal@3x.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/ic-saved-active.imageset/ic-saved-active@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/ic-saved-active.imageset/ic-saved-active@2x.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/ic-saved-active.imageset/ic-saved-active@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/ic-saved-active.imageset/ic-saved-active@3x.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/ic-saved-normal.imageset/ic-saved-normal@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/ic-saved-normal.imageset/ic-saved-normal@2x.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/ic-saved-normal.imageset/ic-saved-normal@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/ic-saved-normal.imageset/ic-saved-normal@3x.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/ic-search-active.imageset/ic-search-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/ic-search-active.imageset/ic-search-active.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/ic-search-normal.imageset/ic-search-normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/ic-search-normal.imageset/ic-search-normal.png -------------------------------------------------------------------------------- /MyTrains.iOS/Entitlements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/ic-search-active.imageset/ic-search-active@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/ic-search-active.imageset/ic-search-active@2x.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/ic-search-active.imageset/ic-search-active@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/ic-search-active.imageset/ic-search-active@3x.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/ic-search-normal.imageset/ic-search-normal@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/ic-search-normal.imageset/ic-search-normal@2x.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/ic-search-normal.imageset/ic-search-normal@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/ic-search-normal.imageset/ic-search-normal@3x.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/ic-settings-active.imageset/ic-settings-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/ic-settings-active.imageset/ic-settings-active.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/ic-settings-normal.imageset/ic-settings-normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/ic-settings-normal.imageset/ic-settings-normal.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/ic-settings-active.imageset/ic-settings-active@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/ic-settings-active.imageset/ic-settings-active@2x.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/ic-settings-active.imageset/ic-settings-active@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/ic-settings-active.imageset/ic-settings-active@3x.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/ic-settings-normal.imageset/ic-settings-normal@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/ic-settings-normal.imageset/ic-settings-normal@2x.png -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/ic-settings-normal.imageset/ic-settings-normal@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/MyTrains.iOS/Resources/Assets.xcassets/ic-settings-normal.imageset/ic-settings-normal@3x.png -------------------------------------------------------------------------------- /Components/fmcalendar-1.5.3/samples/FMCalendarSample.iOS-Unified/Resources/Default-568h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/Components/fmcalendar-1.5.3/samples/FMCalendarSample.iOS-Unified/Resources/Default-568h@2x.png -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable/btn_enabled.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Components/square.androidtimessquare-1.6.5.0/component/icons/square.androidtimessquare_128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/Components/square.androidtimessquare-1.6.5.0/component/icons/square.androidtimessquare_128x128.png -------------------------------------------------------------------------------- /Components/square.androidtimessquare-1.6.5.0/component/icons/square.androidtimessquare_512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/Components/square.androidtimessquare-1.6.5.0/component/icons/square.androidtimessquare_512x512.png -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable/btn_disabled.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Libraries/MvvmCross.Droid.Support.V7.Fragging.4.1.1/MvvmCross.Droid.Support.V7.Fragging.4.1.1.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/Libraries/MvvmCross.Droid.Support.V7.Fragging.4.1.1/MvvmCross.Droid.Support.V7.Fragging.4.1.1.nupkg -------------------------------------------------------------------------------- /Components/square.androidtimessquare-1.6.5.0/samples/AndroidTimesSquareSample/Resources/drawable/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/Components/square.androidtimessquare-1.6.5.0/samples/AndroidTimesSquareSample/Resources/drawable/Icon.png -------------------------------------------------------------------------------- /MyTrains.Droid/Bootstrap/FilePluginBootstrap.cs: -------------------------------------------------------------------------------- 1 | using MvvmCross.Platform.Plugins; 2 | 3 | namespace MyTrains.Droid.Bootstrap 4 | { 5 | public class FilePluginBootstrap 6 | : MvxPluginBootstrapAction 7 | { 8 | } 9 | } -------------------------------------------------------------------------------- /MyTrains.Droid/Bootstrap/SqlitePluginBootstrap.cs: -------------------------------------------------------------------------------- 1 | using MvvmCross.Platform.Plugins; 2 | 3 | namespace MyTrains.Droid.Bootstrap 4 | { 5 | public class SqlitePluginBootstrap 6 | : MvxPluginBootstrapAction 7 | {} 8 | } 9 | -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/values/Strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | My Trains 4 | Open 5 | Close 6 | 7 | -------------------------------------------------------------------------------- /MyTrains.iOS/Bootstrap/JsonPluginBootstrap.cs: -------------------------------------------------------------------------------- 1 | using MvvmCross.Platform.Plugins; 2 | 3 | namespace MyTrains.iOS.Bootstrap 4 | { 5 | public class JsonPluginBootstrap 6 | : MvxPluginBootstrapAction 7 | { 8 | } 9 | } -------------------------------------------------------------------------------- /Components/square.androidtimessquare-1.6.5.0/samples/AndroidTimesSquareSample/Resources/drawable-hdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/Components/square.androidtimessquare-1.6.5.0/samples/AndroidTimesSquareSample/Resources/drawable-hdpi/icon.png -------------------------------------------------------------------------------- /Components/square.androidtimessquare-1.6.5.0/samples/AndroidTimesSquareSample/Resources/drawable-mdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/Components/square.androidtimessquare-1.6.5.0/samples/AndroidTimesSquareSample/Resources/drawable-mdpi/icon.png -------------------------------------------------------------------------------- /Components/square.androidtimessquare-1.6.5.0/samples/AndroidTimesSquareSample/Resources/drawable-xhdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/Components/square.androidtimessquare-1.6.5.0/samples/AndroidTimesSquareSample/Resources/drawable-xhdpi/icon.png -------------------------------------------------------------------------------- /Libraries/MvvmCross.Droid.Support.V7.Fragging.4.1.1/lib/MonoAndroid403/MvvmCross.Droid.Support.V7.Fragging.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/Libraries/MvvmCross.Droid.Support.V7.Fragging.4.1.1/lib/MonoAndroid403/MvvmCross.Droid.Support.V7.Fragging.dll -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable/toolbar_dropshadow.axml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/values/dimens.axml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 240dp 4 | 16dp 5 | 16dp 6 | -------------------------------------------------------------------------------- /MyTrains.iOS/MyTrains.iOS.csproj.user: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | ProjectFiles 5 | 6 | -------------------------------------------------------------------------------- /Components/square.androidtimessquare-1.6.5.0/samples/AndroidTimesSquareSample/Resources/drawable-xxhdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GillCleeren/MyTrains/HEAD/Components/square.androidtimessquare-1.6.5.0/samples/AndroidTimesSquareSample/Resources/drawable-xxhdpi/icon.png -------------------------------------------------------------------------------- /MyTrains.Core/MyTrains.Core.csproj.user: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | ShowAllFiles 5 | 6 | -------------------------------------------------------------------------------- /Components/fmcalendar-1.5.3/samples/FMCalendarSample.iOS/Entitlements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /MyTrains.Core/Contracts/Services/IDialogService.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | 3 | namespace MyTrains.Core.Contracts.Services 4 | { 5 | public interface IDialogService 6 | { 7 | Task ShowAlertAsync(string message, string title, string buttonText); 8 | } 9 | } -------------------------------------------------------------------------------- /MyTrains.Droid/Bootstrap/MessengerPluginBootstrap.cs: -------------------------------------------------------------------------------- 1 | using MvvmCross.Platform.Plugins; 2 | 3 | namespace MyTrains.Droid.Bootstrap 4 | { 5 | public class MessengerPluginBootstrap 6 | : MvxPluginBootstrapAction 7 | { 8 | } 9 | } -------------------------------------------------------------------------------- /MyTrains.iOS/Bootstrap/MessengerPluginBootstrap.cs: -------------------------------------------------------------------------------- 1 | using MvvmCross.Platform.Plugins; 2 | 3 | namespace MyTrains.iOS.Bootstrap 4 | { 5 | public class MessengerPluginBootstrap 6 | : MvxPluginBootstrapAction 7 | { 8 | } 9 | } -------------------------------------------------------------------------------- /packages/repositories.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Components/square.androidtimessquare-1.6.5.0/samples/AndroidTimesSquareSample/Resources/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4dp 4 | -4dp 5 | -------------------------------------------------------------------------------- /MyTrains.Droid/Bootstrap/WebBrowserPluginBootstrap.cs: -------------------------------------------------------------------------------- 1 | using MvvmCross.Platform.Plugins; 2 | 3 | namespace MyTrains.Droid.Bootstrap 4 | { 5 | public class WebBrowserPluginBootstrap 6 | : MvxPluginBootstrapAction 7 | { 8 | } 9 | } -------------------------------------------------------------------------------- /Components/fmcalendar-1.5.3/samples/FMCalendarSample.iOS-Unified/Entitlements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /MyTrains.Core.UnitTests/Bootstrap/MessengerPluginBootstrap.cs: -------------------------------------------------------------------------------- 1 | using MvvmCross.Platform.Plugins; 2 | 3 | namespace MyTrains.Core.UnitTests.Bootstrap 4 | { 5 | public class MessengerPluginBootstrap 6 | : MvxPluginBootstrapAction 7 | { 8 | } 9 | } -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable/calendar_border.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /MyTrains.iOS/Bootstrap/SqlitePluginBootstrap.cs: -------------------------------------------------------------------------------- 1 | using MvvmCross.Platform.Plugins; 2 | 3 | namespace MyTrains.iOS.Bootstrap 4 | { 5 | public class SqlitePluginBootstrap 6 | : MvxLoaderPluginBootstrapAction 7 | {} 8 | } 9 | -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable/border_button.axml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/layout/SplashScreen.axml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /MyTrains.Core/Extensions/TaskExtensions.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | 3 | namespace MyTrains.Core.Extensions 4 | { 5 | public static class TaskExtensions 6 | { 7 | public static void Forget(this Task task) 8 | { 9 | task.ConfigureAwait(false); 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/layout/item_city_dropdown.axml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /MyTrains.Core/MyTrains.Core.csproj.vspscc: -------------------------------------------------------------------------------- 1 | "" 2 | { 3 | "FILE_VERSION" = "9237" 4 | "ENLISTMENT_CHOICE" = "NEVER" 5 | "PROJECT_FILE_RELATIVE_PATH" = "" 6 | "NUMBER_OF_EXCLUDED_FILES" = "0" 7 | "ORIGINAL_PROJECT_FILE_PATH" = "" 8 | "NUMBER_OF_NESTED_PROJECTS" = "0" 9 | "SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER" 10 | } 11 | -------------------------------------------------------------------------------- /MyTrains.Droid/MyTrains.Droid.csproj.vspscc: -------------------------------------------------------------------------------- 1 | "" 2 | { 3 | "FILE_VERSION" = "9237" 4 | "ENLISTMENT_CHOICE" = "NEVER" 5 | "PROJECT_FILE_RELATIVE_PATH" = "" 6 | "NUMBER_OF_EXCLUDED_FILES" = "0" 7 | "ORIGINAL_PROJECT_FILE_PATH" = "" 8 | "NUMBER_OF_NESTED_PROJECTS" = "0" 9 | "SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER" 10 | } 11 | -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/values/SplashStyle.axml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | -------------------------------------------------------------------------------- /MyTrains.iOS/Bootstrap/WebBrowserPluginBootstrap.cs: -------------------------------------------------------------------------------- 1 | using MvvmCross.Platform.Plugins; 2 | 3 | namespace MyTrains.iOS.Bootstrap 4 | { 5 | public class WebBrowserPluginBootstrap 6 | : MvxLoaderPluginBootstrapAction 7 | { 8 | } 9 | } -------------------------------------------------------------------------------- /MyTrains.iOS/MyTrains.iOS.csproj.vspscc: -------------------------------------------------------------------------------- 1 | "" 2 | { 3 | "FILE_VERSION" = "9237" 4 | "ENLISTMENT_CHOICE" = "NEVER" 5 | "PROJECT_FILE_RELATIVE_PATH" = "" 6 | "NUMBER_OF_EXCLUDED_FILES" = "0" 7 | "ORIGINAL_PROJECT_FILE_PATH" = "" 8 | "NUMBER_OF_NESTED_PROJECTS" = "0" 9 | "SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER" 10 | } 11 | -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/layout/toolbar_shadow.axml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /MyTrains.Core/Model/User.cs: -------------------------------------------------------------------------------- 1 | namespace MyTrains.Core.Model 2 | { 3 | public class User: BaseModel 4 | { 5 | public int UserId { get; set; } 6 | 7 | public string UserName { get; set; } 8 | 9 | public string Email { get; set; } 10 | 11 | public string Password { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /MyTrains.Localization/MyTrains.Localization.csproj.vspscc: -------------------------------------------------------------------------------- 1 | "" 2 | { 3 | "FILE_VERSION" = "9237" 4 | "ENLISTMENT_CHOICE" = "NEVER" 5 | "PROJECT_FILE_RELATIVE_PATH" = "" 6 | "NUMBER_OF_EXCLUDED_FILES" = "0" 7 | "ORIGINAL_PROJECT_FILE_PATH" = "" 8 | "NUMBER_OF_NESTED_PROJECTS" = "0" 9 | "SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER" 10 | } 11 | -------------------------------------------------------------------------------- /MyTrains.Core.UnitTests/MyTrains.Core.UnitTests.csproj.vspscc: -------------------------------------------------------------------------------- 1 | "" 2 | { 3 | "FILE_VERSION" = "9237" 4 | "ENLISTMENT_CHOICE" = "NEVER" 5 | "PROJECT_FILE_RELATIVE_PATH" = "" 6 | "NUMBER_OF_EXCLUDED_FILES" = "0" 7 | "ORIGINAL_PROJECT_FILE_PATH" = "" 8 | "NUMBER_OF_NESTED_PROJECTS" = "0" 9 | "SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER" 10 | } 11 | -------------------------------------------------------------------------------- /MyTrains.Core/Model/City.cs: -------------------------------------------------------------------------------- 1 | 2 | namespace MyTrains.Core.Model 3 | { 4 | public class City: BaseModel 5 | { 6 | public int CityId { get; set; } 7 | 8 | public string CityName { get; set; } 9 | 10 | public override string ToString() 11 | { 12 | return CityName; 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /MyTrains.Droid/MyTrains.Droid.csproj.user: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Nexus 4 5 | ShowAllFiles 6 | 7 | -------------------------------------------------------------------------------- /MyTrains.Core/Contracts/Repository/IUserRepository.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | using MyTrains.Core.Model; 3 | 4 | namespace MyTrains.Core.Contracts.Repository 5 | { 6 | public interface IUserRepository 7 | { 8 | Task SearchUser(string userName); 9 | 10 | Task Login(string userName, string password); 11 | } 12 | } -------------------------------------------------------------------------------- /MyTrains.Core/Model/SavedJourney.cs: -------------------------------------------------------------------------------- 1 | namespace MyTrains.Core.Model 2 | { 3 | public class SavedJourney: BaseModel 4 | { 5 | public int JourneyId { get; set; } 6 | 7 | public Journey Journey { get; set; } 8 | 9 | public int UserId { get; set; } 10 | 11 | public int NumberOfTravellers { get; set; } 12 | 13 | } 14 | } -------------------------------------------------------------------------------- /MyTrains.Core/Model/App/SearchParameters.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace MyTrains.Core.Model.App 4 | { 5 | public class SearchParameters 6 | { 7 | public int FromCityId { get; set; } 8 | public int ToCityId { get; set; } 9 | public DateTime JourneyDate { get; set; } 10 | public string DepartureTime { get; set; } 11 | } 12 | } -------------------------------------------------------------------------------- /MyTrains.Localization/LocalizedStrings.cs: -------------------------------------------------------------------------------- 1 | namespace MyTrains.Localization 2 | { 3 | public class LocalizedStrings 4 | { 5 | public LocalizedStrings() {} 6 | 7 | private static readonly Strings LocalizedStringsResources 8 | = new Strings(); 9 | 10 | public Strings Strings => LocalizedStringsResources; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /MyTrains.Core/Contracts/Services/ICityDataService.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Threading.Tasks; 3 | using MyTrains.Core.Model; 4 | 5 | namespace MyTrains.Core.Contracts.Services 6 | { 7 | public interface ICityDataService 8 | { 9 | Task> GetAllCities(); 10 | 11 | Task GetCityById(int cityId); 12 | } 13 | } -------------------------------------------------------------------------------- /MyTrains.Core/Contracts/Repository/ICityRepository.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Threading.Tasks; 3 | using MyTrains.Core.Model; 4 | 5 | namespace MyTrains.Core.Contracts.Repository 6 | { 7 | public interface ICityRepository 8 | { 9 | Task> GetAllCities(); 10 | 11 | Task GetCityById(int cityId); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable/scaledBackground.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /MyTrains.Core/Contracts/Services/IUserDataService.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | using MyTrains.Core.Model; 3 | 4 | namespace MyTrains.Core.Contracts.Services 5 | { 6 | public interface IUserDataService 7 | { 8 | Task SearchUser(string userName); 9 | 10 | Task Login(string userName, string password); 11 | 12 | User GetActiveUser(); 13 | } 14 | } -------------------------------------------------------------------------------- /MyTrains.Core/Services/General/ConnectionService.cs: -------------------------------------------------------------------------------- 1 | using MyTrains.Core.Contracts.Services; 2 | using Plugin.Connectivity; 3 | 4 | namespace MyTrains.Core.Services.General 5 | { 6 | public class ConnectionService : IConnectionService 7 | { 8 | public bool CheckOnline() 9 | { 10 | return CrossConnectivity.Current.IsConnected; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /MyTrains.Core/Contracts/Repository/ISettingsRepository.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using MyTrains.Core.Model; 3 | 4 | namespace MyTrains.Core.Contracts.Repository 5 | { 6 | public interface ISettingsRepository 7 | { 8 | List GetAvailableCurrencies(); 9 | Currency GetCurrencyById(int currencyId); 10 | 11 | string GetAboutContent(); 12 | } 13 | } -------------------------------------------------------------------------------- /MyTrains.Core/Messages/CurrencyChangedMessage.cs: -------------------------------------------------------------------------------- 1 | using MvvmCross.Plugins.Messenger; 2 | using MyTrains.Core.Model; 3 | 4 | namespace MyTrains.Core.Messages 5 | { 6 | public class CurrencyChangedMessage: MvxMessage 7 | { 8 | public CurrencyChangedMessage(object sender) : base(sender) 9 | { 10 | } 11 | 12 | public Currency NewCurrency { get; set; } 13 | } 14 | } -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable/button_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /MyTrains.Droid/Properties/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /MyTrains.Core/Contracts/Services/ISettingsDataService.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using MyTrains.Core.Model; 3 | 4 | namespace MyTrains.Core.Contracts.Services 5 | { 6 | public interface ISettingsDataService 7 | { 8 | List GetCurrencies(); 9 | Currency GetActiveCurrency(); 10 | void SetActiveCurrency(Currency currency); 11 | string GetAboutContent(); 12 | } 13 | } -------------------------------------------------------------------------------- /MyTrains.Core/Model/Currency.cs: -------------------------------------------------------------------------------- 1 | namespace MyTrains.Core.Model 2 | { 3 | public class Currency 4 | { 5 | public string CurrencyName { get; set; } 6 | 7 | public string CurrencySymbol { get; set; } 8 | 9 | public int CurrencyId { get; set; } 10 | 11 | public override string ToString() 12 | { 13 | return $"{CurrencyName} ({CurrencySymbol})"; 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable/secondary_button_selector.axml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /MyTrains.Core/Contracts/Repository/ISavedJourneyRepository.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Threading.Tasks; 3 | using MyTrains.Core.Model; 4 | 5 | namespace MyTrains.Core.Contracts.Repository 6 | { 7 | public interface ISavedJourneyRepository 8 | { 9 | Task> GetSavedJourneyForUser(int userId); 10 | 11 | Task AddSavedJourney(int userId, int journeyId, int numberOfTravellers); 12 | } 13 | } -------------------------------------------------------------------------------- /MyTrains.Core/Contracts/Services/ISavedJourneyDataService.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Threading.Tasks; 4 | using MyTrains.Core.Model; 5 | 6 | namespace MyTrains.Core.Contracts.Services 7 | { 8 | public interface ISavedJourneyDataService 9 | { 10 | Task> GetSavedJourneyForUser(int userId); 11 | 12 | Task AddSavedJourney(int userId, int journeyId, int numberOfTravellers); 13 | } 14 | } -------------------------------------------------------------------------------- /MyTrains.Core/Contracts/Services/IJourneyDataService.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Threading.Tasks; 4 | using MyTrains.Core.Model; 5 | 6 | namespace MyTrains.Core.Contracts.Services 7 | { 8 | public interface IJourneyDataService 9 | { 10 | Task> SearchJourney(int fromCity, int toCity, DateTime journeyDate, DateTime departureTime); 11 | 12 | Task GetJourneyDetails(int journeyId); 13 | } 14 | } -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/layout/item_city.axml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/layout/item_currency.axml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /MyTrains.Core/Contracts/Repository/IJourneyRepository.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Threading.Tasks; 4 | using MyTrains.Core.Model; 5 | 6 | namespace MyTrains.Core.Contracts.Repository 7 | { 8 | public interface IJourneyRepository 9 | { 10 | Task> SearchJourney(int fromCity, int toCity, DateTime journeyDate, DateTime departureTime); 11 | 12 | Task GetJourneyDetails(int journeyId); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /MyTrains.Core/Converters/DateTimeToDayConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using MvvmCross.Platform.Converters; 3 | 4 | namespace MyTrains.Core.Converters 5 | { 6 | public class DateTimeToDayConverter : MvxValueConverter 7 | { 8 | protected override string Convert(DateTime value, Type targetType, object parameter, 9 | System.Globalization.CultureInfo culture) 10 | { 11 | return value.ToString("MMM dd, yyyy"); 12 | } 13 | } 14 | } -------------------------------------------------------------------------------- /Components/square.androidtimessquare-1.6.5.0/samples/AndroidTimesSquareSample/Properties/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /MyTrains.Core/Converters/DateTimeToTimeConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using MvvmCross.Platform.Converters; 3 | 4 | namespace MyTrains.Core.Converters 5 | { 6 | public class DateTimeToTimeConverter: 7 | MvxValueConverter 8 | { 9 | protected override string Convert(DateTime value, Type targetType, object parameter, 10 | System.Globalization.CultureInfo culture) 11 | { 12 | return value.ToString("hh:mm"); 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /MyTrains.iOS/StoryBoardContainer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using MvvmCross.Core.ViewModels; 3 | using MvvmCross.iOS.Views; 4 | using UIKit; 5 | 6 | namespace MyTrains.iOS 7 | { 8 | public class StoryBoardContainer: MvxIosViewsContainer 9 | { 10 | protected override IMvxIosView CreateViewOfType(Type viewType, MvxViewModelRequest request) 11 | { 12 | return (IMvxIosView)UIStoryboard.FromName("Storyboard", null) 13 | .InstantiateViewController(viewType.Name); 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /MyTrains.iOS/Views/MainView.designer.cs: -------------------------------------------------------------------------------- 1 | // WARNING 2 | // 3 | // This file has been generated automatically by Xamarin Studio from the outlets and 4 | // actions declared in your storyboard file. 5 | // Manual changes to this file will not be maintained. 6 | // 7 | using Foundation; 8 | using System; 9 | using System.CodeDom.Compiler; 10 | using UIKit; 11 | 12 | namespace MyTrains.iOS.Views 13 | { 14 | [Register ("MainView")] 15 | partial class MainView 16 | { 17 | void ReleaseDesignerOutlets () 18 | { 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Components/square.androidtimessquare-1.6.5.0/samples/AndroidTimesSquareSample/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/splash.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "splash.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "splash@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "splash@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/arrow-up.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "arrow-up.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "arrow-up@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "arrow-up@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/arrow-down.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "arrow-down.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "arrow-down@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "arrow-down@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/arrow-left.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "arrow-left.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "arrow-left@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "arrow-left@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/arrow-right.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "arrow-right.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "arrow-right@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "arrow-right@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Libraries/MvvmCross.Droid.Support.V7.Fragging.4.1.1/lib/MonoAndroid403/MvvmCross.Droid.Support.V7.Fragging.dll.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/ic-home-active.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic-home-active.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "ic-home-active@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "ic-home-active@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/ic-home-normal.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic-home-normal.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "ic-home-normal@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "ic-home-normal@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/ic-saved-active.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic-saved-active.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "ic-saved-active@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "ic-saved-active@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/ic-saved-normal.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic-saved-normal.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "ic-saved-normal@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "ic-saved-normal@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /MyTrains.iOS/Utility/MyTrainsColors.cs: -------------------------------------------------------------------------------- 1 | using UIKit; 2 | 3 | namespace MyTrains.iOS.Utility 4 | { 5 | public static class MyTrainsColors 6 | { 7 | public static UIColor AccentColor = new UIColor(59 / 255f, 202 / 255f, 219 / 255f, 1); 8 | 9 | public static UIColor DarkColor = new UIColor (6 / 255f, 116 / 255f, 173 / 255f, 1); 10 | 11 | public static UIColor DarkTextColor = new UIColor(55 / 255f, 59 / 255f, 73 / 255f, 1); 12 | 13 | public static UIColor BorderColor = new UIColor(225 / 255f, 225 / 255f, 225 / 255f, 1); 14 | } 15 | } -------------------------------------------------------------------------------- /Components/fmcalendar-1.5.3/samples/FMCalendarSample.iOS-Unified/Main.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | 5 | using Foundation; 6 | using UIKit; 7 | 8 | namespace FMCalendarSample 9 | { 10 | public class Application 11 | { 12 | // This is the main entry point of the application. 13 | static void Main (string[] args) 14 | { 15 | // if you want to use a different Application Delegate class from "AppDelegate" 16 | // you can specify it here. 17 | UIApplication.Main (args, null, "AppDelegate"); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/ic-search-active.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic-search-active.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "ic-search-active@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "ic-search-active@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/ic-search-normal.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic-search-normal.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "ic-search-normal@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "ic-search-normal@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/ic-settings-active.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic-settings-active.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "ic-settings-active@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "ic-settings-active@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /MyTrains.iOS/Resources/Assets.xcassets/ic-settings-normal.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic-settings-normal.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "ic-settings-normal@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "ic-settings-normal@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Components/square.androidtimessquare-1.6.5.0/samples/AndroidTimesSquareSample/Resources/layout/Dialog.axml: -------------------------------------------------------------------------------- 1 | 13 | -------------------------------------------------------------------------------- /Components/fmcalendar-1.5.3/samples/FMCalendarSample.iOS/Main.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | 5 | using MonoTouch.Foundation; 6 | using MonoTouch.UIKit; 7 | 8 | namespace FMCalendarSample.iOS 9 | { 10 | public class Application 11 | { 12 | // This is the main entry point of the application. 13 | static void Main (string[] args) 14 | { 15 | // if you want to use a different Application Delegate class from "AppDelegate" 16 | // you can specify it here. 17 | UIApplication.Main (args, null, "AppDelegate"); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /MyTrains.iOS/Services/DialogService.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | using MyTrains.Core.Contracts.Services; 3 | using UIKit; 4 | 5 | namespace MyTrains.iOS.Services 6 | { 7 | public class DialogService: IDialogService 8 | { 9 | public Task ShowAlertAsync(string message, string title, string buttonText) 10 | { 11 | return Task.Run(() => 12 | UIApplication.SharedApplication.InvokeOnMainThread(() => 13 | { 14 | new UIAlertView(title, message, null, buttonText).Show(); 15 | })); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Components/square.androidtimessquare-1.6.5.0/samples/AndroidTimesSquareSample/Resources/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #85B100 4 | #A8D324 5 | #F0F8DB 6 | #FF9105 7 | #F0F8DB 8 | #FFFFFFFF 9 | #7f778088 10 | #00000000 11 | -------------------------------------------------------------------------------- /MyTrains.Core/AppStart.cs: -------------------------------------------------------------------------------- 1 | using MvvmCross.Core.ViewModels; 2 | using MvvmCross.Platform; 3 | using MyTrains.Core.Contracts.Services; 4 | using MyTrains.Core.ViewModel; 5 | 6 | namespace MyTrains.Core 7 | { 8 | public class AppStart: MvxNavigatingObject, IMvxAppStart 9 | { 10 | public async void Start(object hint = null) 11 | { 12 | //hardcoded login for this demo 13 | var userService = Mvx.Resolve(); 14 | await userService.Login("gillcleeren", "123456"); 15 | 16 | ShowViewModel(); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 15 | -------------------------------------------------------------------------------- /Components/fmcalendar-1.5.3/component/License.md: -------------------------------------------------------------------------------- 1 | Copyright 2014 Factory Mind 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | -------------------------------------------------------------------------------- /MyTrains.Core/Converters/CurrencyToStringConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Globalization; 3 | using MvvmCross.Platform; 4 | using MvvmCross.Platform.Converters; 5 | using MyTrains.Core.Contracts.Services; 6 | 7 | namespace MyTrains.Core.Converters 8 | { 9 | public class CurrencyToStringConverter: MvxValueConverter 10 | { 11 | protected override string Convert(double value, Type targetType, object parameter, CultureInfo culture) 12 | { 13 | var service = Mvx.Resolve(); 14 | return service.GetActiveCurrency().CurrencySymbol + " " + value; 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/drawable/spinner_border.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /MyTrains.Droid/SplashScreen.cs: -------------------------------------------------------------------------------- 1 | using Android.App; 2 | using Android.Content.PM; 3 | using MvvmCross.Droid.Views; 4 | 5 | namespace MyTrains.Droid 6 | { 7 | [Activity( 8 | MainLauncher = true, 9 | Label = "@string/ApplicationName", 10 | Theme = "@style/Theme.Splash", NoHistory = true, 11 | ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation, 12 | ScreenOrientation = ScreenOrientation.Portrait)] 13 | public class SplashScreen : MvxSplashScreenActivity 14 | { 15 | public SplashScreen() 16 | : base(Resource.Layout.SplashScreen) 17 | { 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /MyTrains.Droid/Extensions/ActivityExtensions.cs: -------------------------------------------------------------------------------- 1 | using Android.App; 2 | using Android.Widget; 3 | using Toolbar = Android.Support.V7.Widget.Toolbar; 4 | 5 | namespace MyTrains.Droid.Extensions 6 | { 7 | public static class ActivityExtensions 8 | { 9 | public static void SetCustomTitle(this Activity activity, string title) 10 | { 11 | var toolbar = activity.FindViewById(Resource.Id.toolbar); 12 | var textTitle = toolbar?.FindViewById(Resource.Id.toolbar_title); 13 | if (textTitle != null) 14 | { 15 | textTitle.Text = title; 16 | } 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /MyTrains.Core/Model/Journey.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace MyTrains.Core.Model 4 | { 5 | public class Journey: BaseModel 6 | { 7 | public int JourneyId { get; set; } 8 | 9 | public int FromCityId{ get; set; } 10 | 11 | public int ToCityId { get; set; } 12 | 13 | public City FromCity { get; set; } 14 | 15 | public City ToCity { get; set; } 16 | 17 | public DateTime JourneyDate { get; set; } 18 | 19 | public DateTime DepartureTime { get; set; } 20 | 21 | public DateTime ArrivalTime { get; set; } 22 | 23 | public double Price { get; set; } 24 | 25 | public string Platform { get; set; } 26 | } 27 | } -------------------------------------------------------------------------------- /Components/square.androidtimessquare-1.6.5.0/samples/AndroidTimesSquareSample/Resources/drawable/bg_circle_selected.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /MyTrains.iOS/Main.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using UIKit; 3 | 4 | namespace MyTrains.iOS 5 | { 6 | public class Application 7 | { 8 | // This is the main entry point of the application. 9 | static void Main(string[] args) 10 | { 11 | // if you want to use a different Application Delegate class from "AppDelegate" 12 | // you can specify it here. 13 | try 14 | { 15 | UIApplication.Main(args, null, "AppDelegate"); 16 | 17 | } 18 | catch (Exception ex) 19 | { 20 | string e = ex.Message; 21 | throw ex; 22 | } 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /Components/square.androidtimessquare-1.6.5.0/samples/AndroidTimesSquareSample/Resources/drawable/bg_circle_today.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Components/square.androidtimessquare-1.6.5.0/samples/AndroidTimesSquareSample/Resources/values/Strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | TimesSquare Sample 4 | Done 5 | Customized 6 | Decorator 7 | RTL 8 | Dialog 9 | Display Only 10 | Weekdays Only 11 | Range 12 | Multi 13 | Single 14 | 15 | 16 | -------------------------------------------------------------------------------- /MyTrains.Droid/Assets/AboutAssets.txt: -------------------------------------------------------------------------------- 1 | Any raw assets you want to be deployed with your application can be placed in 2 | this directory (and child directories) and given a Build Action of "AndroidAsset". 3 | 4 | These files will be deployed with you package and will be accessible using Android's 5 | AssetManager, like this: 6 | 7 | public class ReadAsset : Activity 8 | { 9 | protected override void OnCreate (Bundle bundle) 10 | { 11 | base.OnCreate (bundle); 12 | 13 | InputStream input = Assets.Open ("my_asset.txt"); 14 | } 15 | } 16 | 17 | Additionally, some Android functions will automatically load asset files: 18 | 19 | Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf"); -------------------------------------------------------------------------------- /MyTrains.Core/Fake/SearchJourneyViewModel.cs: -------------------------------------------------------------------------------- 1 | using MyTrains.Core.ViewModel; 2 | using System.Threading.Tasks; 3 | using MvvmCross.Plugins.Messenger; 4 | using MyTrains.Core.Contracts.Services; 5 | 6 | namespace MyTrains.Core.Fake 7 | { 8 | public class FakeSearchJourneyViewModel : SearchJourneyViewModel 9 | { 10 | public FakeSearchJourneyViewModel(IMvxMessenger messenger, ICityDataService cityDataService, IConnectionService connectionService, IDialogService dialogService) : base(messenger, cityDataService, connectionService, dialogService) 11 | { 12 | } 13 | 14 | public new Task InitializeAsync() 15 | { 16 | return base.InitializeAsync(); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Components/square.androidtimessquare-1.6.5.0/component/License.md: -------------------------------------------------------------------------------- 1 | # TimesSquare License 2 | 3 | Copyright 2015 Square, Inc. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | -------------------------------------------------------------------------------- /MyTrains.Core/Model/App/MenuItem.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using MvvmCross.Core.ViewModels; 3 | using MyTrains.Core.Utility; 4 | 5 | namespace MyTrains.Core.Model.App 6 | { 7 | public class MenuItem : MvxViewModel 8 | { 9 | private bool _isSelected; 10 | 11 | public string Title { get; set; } 12 | public Type ViewModelType { get; set; } 13 | public MenuOption Option { get; set; } 14 | public bool IsSelected 15 | { 16 | get 17 | { 18 | return _isSelected; 19 | } 20 | set 21 | { 22 | _isSelected = value; 23 | RaisePropertyChanged(() => IsSelected); 24 | } 25 | } 26 | } 27 | } -------------------------------------------------------------------------------- /MyTrains.Droid/Extensions/MonoTypeExtensions.cs: -------------------------------------------------------------------------------- 1 | //using System; 2 | //using System.Collections.Generic; 3 | 4 | //namespace MyTrains.Droid.Extensions 5 | //{ 6 | // static class MonoTypeExtensions 7 | // { 8 | // public static string TagName(this Type type) 9 | // { 10 | // var tokens = type.FullName.Split('.'); 11 | // var convertedTokens = new List(tokens.Length); 12 | // for (int idx = 0; idx < tokens.Length - 2; idx++) 13 | // { 14 | // convertedTokens.Add(tokens[idx].ToLowerInvariant()); 15 | // } 16 | 17 | // convertedTokens.Add(tokens[tokens.Length - 1]); 18 | // return string.Join(".", convertedTokens); 19 | // } 20 | // } 21 | //} -------------------------------------------------------------------------------- /MyTrains.iOS/Views/SavedJourneysView.designer.cs: -------------------------------------------------------------------------------- 1 | // WARNING 2 | // 3 | // This file has been generated automatically by Xamarin Studio from the outlets and 4 | // actions declared in your storyboard file. 5 | // Manual changes to this file will not be maintained. 6 | // 7 | using Foundation; 8 | using System; 9 | using System.CodeDom.Compiler; 10 | using UIKit; 11 | 12 | namespace MyTrains.iOS.Views 13 | { 14 | [Register ("SavedJourneysView")] 15 | partial class SavedJourneysView 16 | { 17 | [Outlet] 18 | [GeneratedCode ("iOS Designer", "1.0")] 19 | UITableView savedJourneyTableView { get; set; } 20 | 21 | void ReleaseDesignerOutlets () 22 | { 23 | if (savedJourneyTableView != null) { 24 | savedJourneyTableView.Dispose (); 25 | savedJourneyTableView = null; 26 | } 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /MyTrains.iOS/Views/SearchResultView.designer.cs: -------------------------------------------------------------------------------- 1 | // WARNING 2 | // 3 | // This file has been generated automatically by Xamarin Studio from the outlets and 4 | // actions declared in your storyboard file. 5 | // Manual changes to this file will not be maintained. 6 | // 7 | using Foundation; 8 | using System; 9 | using System.CodeDom.Compiler; 10 | using UIKit; 11 | 12 | namespace MyTrains.iOS.Views 13 | { 14 | [Register ("SearchResultView")] 15 | partial class SearchResultView 16 | { 17 | [Outlet] 18 | [GeneratedCode ("iOS Designer", "1.0")] 19 | UITableView searchResultsTableView { get; set; } 20 | 21 | void ReleaseDesignerOutlets () 22 | { 23 | if (searchResultsTableView != null) { 24 | searchResultsTableView.Dispose (); 25 | searchResultsTableView = null; 26 | } 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Components/square.androidtimessquare-1.6.5.0/component/Manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | TimesSquare 4 | Xamarin Inc 5 | http://xamarin.com 6 | https://github.com/mattleibow/square-bindings 7 | 1.6.5.0 8 | Standalone Android widget for picking a single date from a calendar view.. 9 | 10 | 11 | 12 | 13 | 14 | Android Sample 15 | Android Sample 16 | 17 | 18 | -------------------------------------------------------------------------------- /Components/fmcalendar-1.5.3/component/Manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | FMCalendar for iOS 4 | Factory Mind 5 | http://factorymind.com 6 | 1.5.3 7 | Awesome and customizable calendar control for your iOS app 8 | 9 | 10 | 11 | 12 | 13 | iOS Sample 14 | iOS Sample 15 | 16 | 17 | iOS-Unified Sample 18 | iOS-Unified Sample 19 | 20 | 21 | -------------------------------------------------------------------------------- /MyTrains.Core.UnitTests/Tests/Repository/CityRepositoryTests.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.VisualStudio.TestTools.UnitTesting; 2 | using MyTrains.Core.Contracts.Repository; 3 | using MyTrains.Core.UnitTests.Mocks; 4 | using System.Threading.Tasks; 5 | 6 | namespace MyTrains.Core.UnitTests.Tests.Repository 7 | { 8 | [TestClass] 9 | public class CityRepositoryTests 10 | { 11 | ICityRepository repository; 12 | 13 | [TestInitialize] 14 | public void Initialize() 15 | { 16 | repository = RepositoryMocks.GetMockCityRepository(3).Object; 17 | } 18 | 19 | [TestMethod] 20 | public async Task GetCities_Return_All_Cities() 21 | { 22 | var cities = await repository.GetAllCities(); 23 | 24 | Assert.AreEqual(3, cities.Count); 25 | } 26 | } 27 | } -------------------------------------------------------------------------------- /MyTrains.Core/Extensions/ListExtensions.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Collections.ObjectModel; 3 | 4 | namespace MyTrains.Core.Extensions 5 | { 6 | public static class ListExtensions 7 | { 8 | public static ObservableCollection ToObservableCollection(this List items) 9 | { 10 | var collection = new ObservableCollection(); 11 | foreach (var item in items) 12 | collection.Add(item); 13 | return collection; 14 | } 15 | 16 | public static ObservableCollection ToObservableCollection(this IEnumerable items) 17 | { 18 | var collection = new ObservableCollection(); 19 | foreach (var item in items) 20 | collection.Add(item); 21 | return collection; 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /Components/square.androidtimessquare-1.6.5.0/samples/AndroidTimesSquareSample/Resources/color/custom_calendar_text_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /MyTrains.Core.UnitTests/Mocks/RepositoryMocks.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using Moq; 3 | using MyTrains.Core.Contracts.Repository; 4 | using MyTrains.Core.Model; 5 | 6 | namespace MyTrains.Core.UnitTests.Mocks 7 | { 8 | public class RepositoryMocks 9 | { 10 | public static Mock GetMockCityRepository(int count) 11 | { 12 | var list = new List(); 13 | var mockCityRepository = new Mock(); 14 | 15 | for (int i = 0; i < count; i++) 16 | { 17 | list.Add(new City { CityId = count }); 18 | } 19 | 20 | mockCityRepository.Setup(m => m.GetAllCities()).ReturnsAsync(list); 21 | mockCityRepository.Setup(m => m.GetCityById(It.IsAny())).ReturnsAsync(list[0]); 22 | return mockCityRepository; 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /MyTrains.Core.UnitTests/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /MyTrains.Core/Services/Data/CityDataService.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Threading.Tasks; 3 | using MyTrains.Core.Contracts.Repository; 4 | using MyTrains.Core.Contracts.Services; 5 | using MyTrains.Core.Model; 6 | 7 | namespace MyTrains.Core.Services.Data 8 | { 9 | public class CityDataService: ICityDataService 10 | { 11 | private readonly ICityRepository _cityRepository; 12 | public CityDataService(ICityRepository cityRepository) 13 | { 14 | _cityRepository = cityRepository; 15 | } 16 | 17 | public virtual async Task> GetAllCities() 18 | { 19 | return await _cityRepository.GetAllCities(); 20 | } 21 | 22 | public async Task GetCityById(int cityId) 23 | { 24 | return await _cityRepository.GetCityById(cityId); 25 | } 26 | } 27 | } -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/layout/SavedJourneysView.axml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 18 | -------------------------------------------------------------------------------- /MyTrains.Core.UnitTests/Tests/Services/CityDataServiceTests.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.VisualStudio.TestTools.UnitTesting; 2 | using Moq; 3 | using MyTrains.Core.Contracts.Repository; 4 | using MyTrains.Core.Contracts.Services; 5 | using MyTrains.Core.UnitTests.Mocks; 6 | using System.Threading.Tasks; 7 | 8 | namespace MyTrains.Core.UnitTests.Tests.Services 9 | { 10 | [TestClass] 11 | public class CityDataServiceTests 12 | { 13 | ICityDataService cityDataService; 14 | 15 | [TestInitialize] 16 | public void Initialize() 17 | { 18 | cityDataService = ServiceMocks.GetMockCityDataService(3); 19 | } 20 | 21 | [TestMethod] 22 | public async Task GetCities_Return_All_Cities() 23 | { 24 | var cities = await cityDataService.GetAllCities(); 25 | 26 | Assert.AreEqual(3, cities.Count); 27 | } 28 | } 29 | } -------------------------------------------------------------------------------- /MyTrains.Core.UnitTests/Mocks/ServiceMocks.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using Moq; 3 | using MyTrains.Core.Contracts.Repository; 4 | using MyTrains.Core.Model; 5 | using MyTrains.Core.Services.Data; 6 | 7 | namespace MyTrains.Core.UnitTests.Mocks 8 | { 9 | public class ServiceMocks 10 | { 11 | public static CityDataService GetMockCityDataService(int count) 12 | { 13 | var list = new List(); 14 | 15 | var mockexpenseRepository = new Mock(); 16 | for (int i = 0; i < count; i++) 17 | { 18 | list.Add(new City { CityId = count }); 19 | } 20 | mockexpenseRepository.Setup(m => m.GetAllCities()).ReturnsAsync(list); 21 | 22 | var cityDataService = new CityDataService(mockexpenseRepository.Object); 23 | return cityDataService; 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/layout/SearchResultsView.axml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 18 | -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/layout/fragment_menu.axml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 19 | -------------------------------------------------------------------------------- /MyTrains.Core/App.cs: -------------------------------------------------------------------------------- 1 | using MvvmCross.Core.ViewModels; 2 | using MvvmCross.Localization; 3 | using MvvmCross.Platform; 4 | using MvvmCross.Platform.IoC; 5 | using MyTrains.Core.Utility; 6 | using MyTrains.Localization; 7 | 8 | namespace MyTrains.Core 9 | { 10 | public class App : MvxApplication 11 | { 12 | public override void Initialize() 13 | { 14 | base.Initialize(); 15 | 16 | CreatableTypes() 17 | .EndingWith("Repository") 18 | .AsInterfaces() 19 | .RegisterAsLazySingleton(); 20 | 21 | CreatableTypes() 22 | .EndingWith("Service") 23 | .AsInterfaces() 24 | .RegisterAsLazySingleton(); 25 | 26 | Mvx.RegisterSingleton 27 | (new ResxTextProvider(Strings.ResourceManager)); 28 | 29 | RegisterAppStart(new AppStart()); 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/layout/toolbar.axml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 19 | -------------------------------------------------------------------------------- /Components/square.androidtimessquare-1.6.5.0/samples/AndroidTimesSquareSample/Resources/drawable/custom_calendar_bg_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /MyTrains.Droid/DebugTrace.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Diagnostics; 3 | using MvvmCross.Platform.Platform; 4 | 5 | namespace MyTrains.Droid 6 | { 7 | public class DebugTrace : IMvxTrace 8 | { 9 | public void Trace(MvxTraceLevel level, string tag, Func message) 10 | { 11 | Debug.WriteLine(tag + ":" + level + ":" + message()); 12 | } 13 | 14 | public void Trace(MvxTraceLevel level, string tag, string message) 15 | { 16 | Debug.WriteLine(tag + ":" + level + ":" + message); 17 | } 18 | 19 | public void Trace(MvxTraceLevel level, string tag, string message, params object[] args) 20 | { 21 | try 22 | { 23 | Debug.WriteLine(string.Format(tag + ":" + level + ":" + message, args)); 24 | } 25 | catch (FormatException) 26 | { 27 | Trace(MvxTraceLevel.Error, tag, "Exception during trace of {0} {1}", level, message); 28 | } 29 | } 30 | } 31 | } -------------------------------------------------------------------------------- /Components/square.androidtimessquare-1.6.5.0/samples/AndroidTimesSquareSample/Resources/layout/DialogCustomized.axml: -------------------------------------------------------------------------------- 1 | 19 | -------------------------------------------------------------------------------- /MyTrains.Core/Services/Data/UserDataService.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | using MyTrains.Core.Contracts.Repository; 3 | using MyTrains.Core.Contracts.Services; 4 | using MyTrains.Core.Model; 5 | 6 | namespace MyTrains.Core.Services.Data 7 | { 8 | public class UserDataService: IUserDataService 9 | { 10 | private readonly IUserRepository _userRepository; 11 | private User _activeUser; 12 | public UserDataService(IUserRepository userRepository) 13 | { 14 | _userRepository = userRepository; 15 | } 16 | 17 | public async Task SearchUser(string userName) 18 | { 19 | return await _userRepository.SearchUser(userName); 20 | } 21 | 22 | public async Task Login(string userName, string password) 23 | { 24 | _activeUser = await _userRepository.Login(userName, password); 25 | return _activeUser; 26 | } 27 | 28 | public User GetActiveUser() 29 | { 30 | return _activeUser; 31 | } 32 | } 33 | } -------------------------------------------------------------------------------- /Components/fmcalendar-1.5.3/samples/FMCalendarSample.iOS-Unified/AppDelegate.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | 5 | using Foundation; 6 | using UIKit; 7 | 8 | namespace FMCalendarSample.iOS 9 | { 10 | // The UIApplicationDelegate for the application. This class is responsible for launching the 11 | // User Interface of the application, as well as listening (and optionally responding) to 12 | // application events from iOS. 13 | [Register ("AppDelegate")] 14 | public partial class AppDelegate : UIApplicationDelegate 15 | { 16 | // class-level declarations 17 | 18 | public override UIWindow Window { 19 | get; 20 | set; 21 | } 22 | 23 | public override bool FinishedLaunching (UIApplication application, NSDictionary launchOptions) 24 | { 25 | // We create a FlyoutNavigationController to be the 'root' of our app 26 | var controller = new FMCalendarViewController (); 27 | 28 | Window = new UIWindow (UIScreen.MainScreen.Bounds); 29 | Window.MakeKeyAndVisible (); 30 | Window.RootViewController = controller; 31 | return true; 32 | } 33 | } 34 | } -------------------------------------------------------------------------------- /Components/fmcalendar-1.5.3/samples/FMCalendarSample.iOS/AppDelegate.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | 5 | using MonoTouch.Foundation; 6 | using MonoTouch.UIKit; 7 | 8 | namespace FMCalendarSample.iOS 9 | { 10 | // The UIApplicationDelegate for the application. This class is responsible for launching the 11 | // User Interface of the application, as well as listening (and optionally responding) to 12 | // application events from iOS. 13 | [Register ("AppDelegate")] 14 | public partial class AppDelegate : UIApplicationDelegate 15 | { 16 | // class-level declarations 17 | 18 | public override UIWindow Window { 19 | get; 20 | set; 21 | } 22 | 23 | public override bool FinishedLaunching (UIApplication application, NSDictionary launchOptions) 24 | { 25 | // We create a FlyoutNavigationController to be the 'root' of our app 26 | var controller = new FMCalendarViewController (); 27 | 28 | Window = new UIWindow (UIScreen.MainScreen.Bounds); 29 | Window.MakeKeyAndVisible (); 30 | Window.RootViewController = controller; 31 | return true; 32 | } 33 | } 34 | } -------------------------------------------------------------------------------- /MyTrains.Core/Repositories/BaseRepository.cs: -------------------------------------------------------------------------------- 1 | using System.Net.Http; 2 | using System.Net.Http.Headers; 3 | using System.Threading.Tasks; 4 | using Newtonsoft.Json; 5 | 6 | namespace MyTrains.Core.Repositories 7 | { 8 | public class BaseRepository 9 | { 10 | 11 | private HttpClient CreateHttpClient() 12 | { 13 | var httpClient = new HttpClient(); 14 | httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 15 | return httpClient; 16 | } 17 | 18 | protected async Task GetAsync(string url) 19 | where T : new() 20 | { 21 | HttpClient httpClient = CreateHttpClient(); 22 | T result; 23 | 24 | try 25 | { 26 | var response = await httpClient.GetStringAsync(url); 27 | result = await Task.Run(() => JsonConvert.DeserializeObject(response)); 28 | } 29 | catch 30 | { 31 | result = new T(); 32 | } 33 | 34 | return result; 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /Components/fmcalendar-1.5.3/samples/FMCalendarSample.iOS/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDisplayName 6 | FMCalendarSample.iOS 7 | CFBundleIdentifier 8 | com.factorymind.FMCalendarSample 9 | CFBundleShortVersionString 10 | 1.0 11 | CFBundleVersion 12 | 1.0 13 | LSRequiresIPhoneOS 14 | 15 | MinimumOSVersion 16 | 7.0 17 | UIDeviceFamily 18 | 19 | 1 20 | 2 21 | 22 | UIRequiredDeviceCapabilities 23 | 24 | armv7 25 | 26 | UISupportedInterfaceOrientations 27 | 28 | UIInterfaceOrientationPortrait 29 | 30 | UISupportedInterfaceOrientations~ipad 31 | 32 | UIInterfaceOrientationPortrait 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /MyTrains.iOS/TableViewSources/SavedJourneysTableViewSource.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Foundation; 3 | using MvvmCross.Binding.ExtensionMethods; 4 | using MvvmCross.Binding.iOS.Views; 5 | using UIKit; 6 | 7 | namespace MyTrains.iOS.TableViewSources 8 | { 9 | public class SavedJourneysTableViewSource: MvxTableViewSource 10 | { 11 | public SavedJourneysTableViewSource(UITableView tableView) : base(tableView) 12 | { 13 | } 14 | 15 | public SavedJourneysTableViewSource(IntPtr handle) : base(handle) 16 | { 17 | } 18 | 19 | public override nint RowsInSection(UITableView tableview, nint section) 20 | { 21 | return ItemsSource.Count(); 22 | } 23 | 24 | public override nint NumberOfSections(UITableView tableView) 25 | { 26 | return 1; 27 | } 28 | 29 | protected override UITableViewCell GetOrCreateCellFor(UITableView tableView, NSIndexPath indexPath, object item) 30 | { 31 | var cell = (SavedJourneyCell)tableView.DequeueReusableCell(SavedJourneyCell.Identifier); 32 | return cell; 33 | } 34 | } 35 | } -------------------------------------------------------------------------------- /Components/fmcalendar-1.5.3/samples/FMCalendarSample.iOS-Unified/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDisplayName 6 | FMCalendarSample 7 | CFBundleIdentifier 8 | com.factorymind.FMCalendarSample 9 | CFBundleShortVersionString 10 | 1.0 11 | CFBundleVersion 12 | 1.0 13 | LSRequiresIPhoneOS 14 | 15 | MinimumOSVersion 16 | 7.1 17 | UIDeviceFamily 18 | 19 | 1 20 | 2 21 | 22 | UIRequiredDeviceCapabilities 23 | 24 | armv7 25 | 26 | UISupportedInterfaceOrientations 27 | 28 | UIInterfaceOrientationPortrait 29 | 30 | UISupportedInterfaceOrientations~ipad 31 | 32 | UIInterfaceOrientationPortrait 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/layout/MainView.axml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 9 | 12 | 13 | 19 | 20 | 21 | 26 | -------------------------------------------------------------------------------- /MyTrains.Core/ViewModel/BaseViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Threading.Tasks; 3 | using MvvmCross.Core.ViewModels; 4 | using MvvmCross.Localization; 5 | using MvvmCross.Plugins.Messenger; 6 | 7 | namespace MyTrains.Core.ViewModel 8 | { 9 | public class BaseViewModel: MvxViewModel, IDisposable 10 | { 11 | protected IMvxMessenger Messenger; 12 | 13 | public BaseViewModel(IMvxMessenger messenger) 14 | { 15 | Messenger = messenger; 16 | } 17 | 18 | public IMvxLanguageBinder TextSource => 19 | new MvxLanguageBinder("", GetType().Name); 20 | 21 | protected async Task ReloadDataAsync() 22 | { 23 | try 24 | { 25 | await InitializeAsync(); 26 | } 27 | catch (Exception ex) 28 | { 29 | System.Diagnostics.Debug.WriteLine(ex.ToString()); 30 | } 31 | } 32 | 33 | protected virtual Task InitializeAsync() 34 | { 35 | return Task.FromResult(0); 36 | } 37 | 38 | public void Dispose() 39 | { 40 | Messenger = null; 41 | } 42 | } 43 | } -------------------------------------------------------------------------------- /MyTrains.Droid/Views/SettingsFragment.cs: -------------------------------------------------------------------------------- 1 | using Android.OS; 2 | using Android.Runtime; 3 | using Android.Views; 4 | using MvvmCross.Binding.Droid.BindingContext; 5 | using MvvmCross.Droid.Shared.Attributes; 6 | using MvvmCross.Droid.Support.V7.Fragging.Fragments; 7 | using MyTrains.Core.ViewModel; 8 | using MyTrains.Droid.Activities; 9 | using MyTrains.Droid.Extensions; 10 | 11 | namespace MyTrains.Droid.Views 12 | { 13 | [MvxFragment(typeof(MainViewModel), Resource.Id.content_frame, true)] 14 | [Register("mytrains.droid.views.SettingsFragment")] 15 | public class SettingsFragment : MvxFragment 16 | { 17 | public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 18 | { 19 | base.OnCreateView(inflater, container, savedInstanceState); 20 | return this.BindingInflate(Resource.Layout.SettingsView, null); 21 | } 22 | 23 | public override void OnViewCreated(View view, Bundle savedInstanceState) 24 | { 25 | base.OnViewCreated(view, savedInstanceState); 26 | (Activity as MainActivity).SetCustomTitle("Settings"); 27 | } 28 | } 29 | } -------------------------------------------------------------------------------- /MyTrains.Core/Repositories/UserRepository.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Linq; 3 | using System.Threading.Tasks; 4 | using MyTrains.Core.Contracts.Repository; 5 | using MyTrains.Core.Model; 6 | 7 | namespace MyTrains.Core.Repositories 8 | { 9 | public class UserRepository : BaseRepository, IUserRepository 10 | { 11 | 12 | private static readonly List AllKnownUsers = new List 13 | { 14 | new User { UserName = "gillcleeren", Password="123456", UserId = 1}, //extremely secure, don't try this at home 15 | new User { UserName = "johnsmith", Password="789456", UserId = 2}, 16 | new User { UserName = "annawhite", Password="100000", UserId = 3} 17 | }; 18 | 19 | public async Task SearchUser(string userName) 20 | { 21 | return await Task.FromResult(AllKnownUsers.FirstOrDefault(u => u.UserName == userName)); 22 | } 23 | 24 | public async Task Login(string userName, string password) 25 | { 26 | return await Task.FromResult(AllKnownUsers.FirstOrDefault(u => u.UserName == userName && u.Password == password)); 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /MyTrains.iOS/Views/BaseView.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using MvvmCross.iOS.Views; 3 | using MyTrains.iOS.Utility; 4 | using UIKit; 5 | 6 | namespace MyTrains.iOS.Views 7 | { 8 | public class BaseView: MvxViewController 9 | { 10 | public BaseView(IntPtr handle) : base(handle) 11 | { 12 | } 13 | 14 | public override void ViewDidLoad() 15 | { 16 | base.ViewDidLoad(); 17 | 18 | var stringAttributes = new UIStringAttributes (); 19 | stringAttributes.Font = UIFont.SystemFontOfSize (16); 20 | stringAttributes.ForegroundColor = UIColor.FromRGB (255, 255, 255); 21 | NavigationController.NavigationBar.BarTintColor = MyTrainsColors.DarkColor; 22 | NavigationController.NavigationBar.TintColor = UIColor.White; 23 | NavigationController.NavigationBar.TitleTextAttributes = stringAttributes; 24 | 25 | CreateBindings(); 26 | } 27 | 28 | public override UIStatusBarStyle PreferredStatusBarStyle () 29 | { 30 | return UIStatusBarStyle.LightContent; 31 | } 32 | 33 | protected virtual void CreateBindings() 34 | { 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /MyTrains.Droid/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | using Android.App; 5 | 6 | // General Information about an assembly is controlled through the following 7 | // set of attributes. Change these attribute values to modify the information 8 | // associated with an assembly. 9 | [assembly: AssemblyTitle("MyTrains.Droid")] 10 | [assembly: AssemblyDescription("")] 11 | [assembly: AssemblyConfiguration("")] 12 | [assembly: AssemblyCompany("")] 13 | [assembly: AssemblyProduct("MyTrains.Droid")] 14 | [assembly: AssemblyCopyright("Copyright © 2016")] 15 | [assembly: AssemblyTrademark("")] 16 | [assembly: AssemblyCulture("")] 17 | [assembly: ComVisible(false)] 18 | 19 | // Version information for an assembly consists of the following four values: 20 | // 21 | // Major Version 22 | // Minor Version 23 | // Build Number 24 | // Revision 25 | // 26 | // You can specify all the values or you can default the Build and Revision Numbers 27 | // by using the '*' as shown below: 28 | // [assembly: AssemblyVersion("1.0.*")] 29 | [assembly: AssemblyVersion("1.0.0.0")] 30 | [assembly: AssemblyFileVersion("1.0.0.0")] 31 | -------------------------------------------------------------------------------- /MyTrains.Droid/Views/SavedJourneysFragment.cs: -------------------------------------------------------------------------------- 1 | using Android.OS; 2 | using Android.Runtime; 3 | using Android.Views; 4 | using MvvmCross.Binding.Droid.BindingContext; 5 | using MvvmCross.Droid.Shared.Attributes; 6 | using MvvmCross.Droid.Support.V7.Fragging.Fragments; 7 | using MyTrains.Core.ViewModel; 8 | using MyTrains.Droid.Activities; 9 | using MyTrains.Droid.Extensions; 10 | 11 | namespace MyTrains.Droid.Views 12 | { 13 | [MvxFragment(typeof(MainViewModel), Resource.Id.content_frame, true)] 14 | [Register("mytrains.droid.views.SavedJourneysFragment")] 15 | public class SavedJourneysFragment : MvxFragment 16 | { 17 | public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 18 | { 19 | base.OnCreateView(inflater, container, savedInstanceState); 20 | return this.BindingInflate(Resource.Layout.SavedJourneysView, null); 21 | } 22 | 23 | public override void OnViewCreated(View view, Bundle savedInstanceState) 24 | { 25 | base.OnViewCreated(view, savedInstanceState); 26 | (this.Activity as MainActivity).SetCustomTitle("Saved journeys"); 27 | } 28 | } 29 | } -------------------------------------------------------------------------------- /MyTrains.Core/Services/Data/SettingsDataService.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using MyTrains.Core.Contracts.Repository; 3 | using MyTrains.Core.Contracts.Services; 4 | using MyTrains.Core.Model; 5 | 6 | namespace MyTrains.Core.Services.Data 7 | { 8 | public class SettingsDataService : ISettingsDataService 9 | { 10 | private readonly ISettingsRepository _settingsRepository; 11 | private Currency _activeCurrency; 12 | 13 | public SettingsDataService(ISettingsRepository settingsRepository) 14 | { 15 | _settingsRepository = settingsRepository; 16 | } 17 | 18 | public List GetCurrencies() 19 | { 20 | return _settingsRepository.GetAvailableCurrencies(); 21 | } 22 | 23 | public Currency GetActiveCurrency() 24 | { 25 | return _activeCurrency ?? (_activeCurrency = _settingsRepository.GetCurrencyById(1)); 26 | } 27 | 28 | public void SetActiveCurrency(Currency currency) 29 | { 30 | _activeCurrency = currency; 31 | } 32 | 33 | public string GetAboutContent() 34 | { 35 | return _settingsRepository.GetAboutContent(); 36 | } 37 | } 38 | } -------------------------------------------------------------------------------- /MyTrains.Droid/Views/JourneyDetailsFragment.cs: -------------------------------------------------------------------------------- 1 | using Android.OS; 2 | using Android.Runtime; 3 | using Android.Views; 4 | using MvvmCross.Binding.Droid.BindingContext; 5 | using MvvmCross.Droid.Shared.Attributes; 6 | using MvvmCross.Droid.Support.V7.Fragging.Fragments; 7 | using MyTrains.Core.ViewModel; 8 | using MyTrains.Droid.Activities; 9 | using MyTrains.Droid.Extensions; 10 | 11 | namespace MyTrains.Droid.Views 12 | { 13 | [MvxFragment(typeof(MainViewModel), Resource.Id.content_frame, true)] 14 | [Register("mytrains.droid.views.JourneyDetailsFragment")] 15 | public class JourneyDetailsFragment: MvxFragment 16 | { 17 | public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 18 | { 19 | base.OnCreateView(inflater, container, savedInstanceState); 20 | return this.BindingInflate(Resource.Layout.JourneyDetailsView, null); 21 | } 22 | 23 | public override void OnViewCreated(View view, Bundle savedInstanceState) 24 | { 25 | base.OnViewCreated(view, savedInstanceState); 26 | (this.Activity as MainActivity).SetCustomTitle("Journey details"); 27 | } 28 | } 29 | 30 | } -------------------------------------------------------------------------------- /MyTrains.Localization/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Resources; 2 | using System.Reflection; 3 | using System.Runtime.CompilerServices; 4 | using System.Runtime.InteropServices; 5 | 6 | // General Information about an assembly is controlled through the following 7 | // set of attributes. Change these attribute values to modify the information 8 | // associated with an assembly. 9 | [assembly: AssemblyTitle("MyTrains.Localization")] 10 | [assembly: AssemblyDescription("")] 11 | [assembly: AssemblyConfiguration("")] 12 | [assembly: AssemblyCompany("")] 13 | [assembly: AssemblyProduct("MyTrains.Localization")] 14 | [assembly: AssemblyCopyright("Copyright © 2016")] 15 | [assembly: AssemblyTrademark("")] 16 | [assembly: AssemblyCulture("")] 17 | [assembly: NeutralResourcesLanguage("en")] 18 | 19 | // Version information for an assembly consists of the following four values: 20 | // 21 | // Major Version 22 | // Minor Version 23 | // Build Number 24 | // Revision 25 | // 26 | // You can specify all the values or you can default the Build and Revision Numbers 27 | // by using the '*' as shown below: 28 | // [assembly: AssemblyVersion("1.0.*")] 29 | [assembly: AssemblyVersion("1.0.0.0")] 30 | [assembly: AssemblyFileVersion("1.0.0.0")] 31 | -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/layout/item_menu.axml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 14 | 25 | 26 | -------------------------------------------------------------------------------- /Components/square.androidtimessquare-1.6.5.0/samples/AndroidTimesSquareSample/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | using Android.App; 5 | 6 | // General Information about an assembly is controlled through the following 7 | // set of attributes. Change these attribute values to modify the information 8 | // associated with an assembly. 9 | [assembly: AssemblyTitle("AndroidTimesSquareSample")] 10 | [assembly: AssemblyDescription("")] 11 | [assembly: AssemblyConfiguration("")] 12 | [assembly: AssemblyCompany("")] 13 | [assembly: AssemblyProduct("AndroidTimesSquareSample")] 14 | [assembly: AssemblyCopyright("Copyright © 2015")] 15 | [assembly: AssemblyTrademark("")] 16 | [assembly: AssemblyCulture("")] 17 | [assembly: ComVisible(false)] 18 | 19 | // Version information for an assembly consists of the following four values: 20 | // 21 | // Major Version 22 | // Minor Version 23 | // Build Number 24 | // Revision 25 | // 26 | // You can specify all the values or you can default the Build and Revision Numbers 27 | // by using the '*' as shown below: 28 | // [assembly: AssemblyVersion("1.0.*")] 29 | [assembly: AssemblyVersion("1.0.0.0")] 30 | [assembly: AssemblyFileVersion("1.0.0.0")] 31 | -------------------------------------------------------------------------------- /MyTrains.Core/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Resources; 2 | using System.Reflection; 3 | using System.Runtime.CompilerServices; 4 | using System.Runtime.InteropServices; 5 | 6 | // General Information about an assembly is controlled through the following 7 | // set of attributes. Change these attribute values to modify the information 8 | // associated with an assembly. 9 | [assembly: AssemblyTitle("MyTrains.Core")] 10 | [assembly: AssemblyDescription("")] 11 | [assembly: AssemblyConfiguration("")] 12 | [assembly: AssemblyCompany("")] 13 | [assembly: AssemblyProduct("MyTrains.Core")] 14 | [assembly: AssemblyCopyright("Copyright © 2016")] 15 | [assembly: AssemblyTrademark("")] 16 | [assembly: AssemblyCulture("")] 17 | [assembly: NeutralResourcesLanguage("en")] 18 | 19 | // Version information for an assembly consists of the following four values: 20 | // 21 | // Major Version 22 | // Minor Version 23 | // Build Number 24 | // Revision 25 | // 26 | // You can specify all the values or you can default the Build and Revision Numbers 27 | // by using the '*' as shown below: 28 | // [assembly: AssemblyVersion("1.0.*")] 29 | [assembly: AssemblyVersion("1.0.0.0")] 30 | [assembly: AssemblyFileVersion("1.0.0.0")] 31 | [assembly: InternalsVisibleTo("MyTrains.Core.UnitTests")] 32 | 33 | -------------------------------------------------------------------------------- /MyTrains.Droid/Services/DialogService.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | using Android.App; 3 | using MvvmCross.Platform; 4 | using MvvmCross.Platform.Droid.Platform; 5 | using MyTrains.Core.Contracts.Services; 6 | 7 | namespace MyTrains.Droid.Services 8 | { 9 | public class DialogService: IDialogService 10 | { 11 | protected Activity CurrentActivity => 12 | Mvx.Resolve().Activity; 13 | 14 | public Task ShowAlertAsync(string message, 15 | string title, string buttonText) 16 | { 17 | return Task.Run(() => 18 | { 19 | Alert(message, title, buttonText); 20 | }); 21 | } 22 | 23 | private void Alert(string message, string title, string okButton) 24 | { 25 | Application.SynchronizationContext.Post(ignored => 26 | { 27 | var builder = new AlertDialog.Builder(CurrentActivity); 28 | builder.SetIconAttribute 29 | (Android.Resource.Attribute.AlertDialogIcon); 30 | builder.SetTitle(title); 31 | builder.SetMessage(message); 32 | builder.SetPositiveButton(okButton, delegate { }); 33 | builder.Create().Show(); 34 | }, null); 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /MyTrains.Droid/obj/Debug/sdks.cache: -------------------------------------------------------------------------------- 1 | 2 | 3 | 23 4 | 23 5 | C:\Users\gill\Documents\Android\ndk\android-ndk-r10e 6 | C:\Users\gill\AppData\Local\Android\android-sdk\build-tools\23.0.1 7 | C:\Users\gill\AppData\Local\Android\android-sdk\build-tools\23.0.1 8 | C:\Users\gill\AppData\Local\Android\android-sdk 9 | C:\Program Files (x86)\Java\jdk1.7.0_71 10 | C:\Program Files (x86)\MSBuild\Xamarin\Android 11 | C:\Program Files (x86)\MSBuild\Xamarin\Android 12 | 13 | C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\MonoAndroid\v1.0\ 14 | 15 | v6.0 16 | C:\Users\gill\AppData\Local\Android\android-sdk\build-tools\23.0.1 17 | 18 | 23 19 | None 20 | -------------------------------------------------------------------------------- /MyTrains.Core/Repositories/SettingsRepository.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using MyTrains.Core.Contracts.Repository; 3 | using MyTrains.Core.Model; 4 | 5 | namespace MyTrains.Core.Repositories 6 | { 7 | public class SettingsRepository: ISettingsRepository 8 | { 9 | private static readonly List AllAvailableCurrencies = new List 10 | { 11 | new Currency { CurrencyId = 1, CurrencyName = "Dollar", CurrencySymbol = "$"}, 12 | new Currency { CurrencyId = 2, CurrencyName = "Euro", CurrencySymbol = "€"}, 13 | new Currency { CurrencyId = 3, CurrencyName = "Pound", CurrencySymbol = "£"} 14 | }; 15 | public List GetAvailableCurrencies() 16 | { 17 | return AllAvailableCurrencies; 18 | } 19 | 20 | public Currency GetCurrencyById(int currencyId) 21 | { 22 | return AllAvailableCurrencies[currencyId]; 23 | } 24 | 25 | public string GetAboutContent() 26 | { 27 | return "Leverage agile frameworks to provide a robust synopsis for high level overviews. Iterative approaches to corporate strategy foster collaborative thinking to further the overall value proposition. Organically grow the holistic world view of disruptive innovation via workplace diversity and empowerment."; 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /MyTrains.iOS/TableViewSources/SearchResultsTableViewSource.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Foundation; 3 | using MvvmCross.Binding.ExtensionMethods; 4 | using MvvmCross.Binding.iOS.Views; 5 | using UIKit; 6 | 7 | namespace MyTrains.iOS.TableViewSources 8 | { 9 | public class SearchResultsTableViewSource: MvxTableViewSource 10 | { 11 | public SearchResultsTableViewSource(UITableView tableView) : 12 | base(tableView) 13 | { 14 | } 15 | 16 | public SearchResultsTableViewSource(IntPtr handle) : base(handle) 17 | { 18 | } 19 | 20 | public override nint NumberOfSections(UITableView tableView) 21 | { 22 | return 1; 23 | } 24 | 25 | public override nint RowsInSection(UITableView tableview, nint section) 26 | { 27 | return ItemsSource.Count(); 28 | } 29 | 30 | protected override UITableViewCell GetOrCreateCellFor 31 | (UITableView tableView, NSIndexPath indexPath, object item) 32 | { 33 | var cell = (SearchResultsCell) 34 | tableView.DequeueReusableCell(SearchResultsCell.Identifier); 35 | return cell; 36 | } 37 | 38 | protected override object GetItemAt(NSIndexPath indexPath) 39 | { 40 | return ItemsSource?.ElementAt(indexPath.Row); 41 | } 42 | } 43 | } -------------------------------------------------------------------------------- /MyTrains.iOS/Setup.cs: -------------------------------------------------------------------------------- 1 | using MvvmCross.Core.ViewModels; 2 | using MvvmCross.iOS.Platform; 3 | using MvvmCross.iOS.Views; 4 | using MvvmCross.iOS.Views.Presenters; 5 | using MvvmCross.Platform; 6 | using MyTrains.Core; 7 | using MyTrains.Core.Contracts.Services; 8 | using MyTrains.iOS.Services; 9 | using UIKit; 10 | 11 | namespace MyTrains.iOS 12 | { 13 | public class Setup: MvxIosSetup 14 | { 15 | private MvxApplicationDelegate _applicationDelegate; 16 | UIWindow _window; 17 | 18 | public Setup(MvxApplicationDelegate applicationDelegate, UIWindow window) : base(applicationDelegate, window) 19 | { 20 | _applicationDelegate = applicationDelegate; 21 | _window = window; 22 | } 23 | 24 | public Setup(IMvxApplicationDelegate applicationDelegate, IMvxIosViewPresenter presenter) : base(applicationDelegate, presenter) 25 | { 26 | } 27 | 28 | protected override IMvxApplication CreateApp() 29 | { 30 | return new App(); 31 | } 32 | 33 | protected override void InitializeIoC() 34 | { 35 | base.InitializeIoC(); 36 | Mvx.RegisterSingleton(() => new DialogService()); 37 | } 38 | 39 | protected override IMvxIosViewsContainer CreateIosViewsContainer() 40 | { 41 | return new StoryBoardContainer(); 42 | } 43 | } 44 | } -------------------------------------------------------------------------------- /MyTrains.iOS/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /MyTrains.iOS/SearchResultCell.designer.cs: -------------------------------------------------------------------------------- 1 | // WARNING 2 | // 3 | // This file has been generated automatically by Xamarin Studio from the outlets and 4 | // actions declared in your storyboard file. 5 | // Manual changes to this file will not be maintained. 6 | // 7 | using Foundation; 8 | using System; 9 | using System.CodeDom.Compiler; 10 | using UIKit; 11 | 12 | namespace MyTrains.iOS 13 | { 14 | [Register ("SearchResultCell")] 15 | partial class SearchResultCell 16 | { 17 | [Outlet] 18 | [GeneratedCode ("iOS Designer", "1.0")] 19 | UILabel departureDateLabel { get; set; } 20 | 21 | [Outlet] 22 | [GeneratedCode ("iOS Designer", "1.0")] 23 | UILabel departureTimeLabel { get; set; } 24 | 25 | [Outlet] 26 | [GeneratedCode ("iOS Designer", "1.0")] 27 | UILabel fromCityLabel { get; set; } 28 | 29 | [Outlet] 30 | [GeneratedCode ("iOS Designer", "1.0")] 31 | UILabel toCityLabel { get; set; } 32 | 33 | void ReleaseDesignerOutlets () 34 | { 35 | if (departureDateLabel != null) { 36 | departureDateLabel.Dispose (); 37 | departureDateLabel = null; 38 | } 39 | if (departureTimeLabel != null) { 40 | departureTimeLabel.Dispose (); 41 | departureTimeLabel = null; 42 | } 43 | if (fromCityLabel != null) { 44 | fromCityLabel.Dispose (); 45 | fromCityLabel = null; 46 | } 47 | if (toCityLabel != null) { 48 | toCityLabel.Dispose (); 49 | toCityLabel = null; 50 | } 51 | } 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /MyTrains.iOS/Views/SettingsView.designer.cs: -------------------------------------------------------------------------------- 1 | // WARNING 2 | // 3 | // This file has been generated automatically by Xamarin Studio from the outlets and 4 | // actions declared in your storyboard file. 5 | // Manual changes to this file will not be maintained. 6 | // 7 | using Foundation; 8 | using System; 9 | using System.CodeDom.Compiler; 10 | using UIKit; 11 | 12 | namespace MyTrains.iOS.Views 13 | { 14 | [Register ("SettingsView")] 15 | partial class SettingsView 16 | { 17 | [Outlet] 18 | [GeneratedCode ("iOS Designer", "1.0")] 19 | UITextView AboutTextView { get; set; } 20 | 21 | [Outlet] 22 | [GeneratedCode ("iOS Designer", "1.0")] 23 | UITextField CurrencyTextField { get; set; } 24 | 25 | [Outlet] 26 | [GeneratedCode ("iOS Designer", "1.0")] 27 | UITextView testTextView { get; set; } 28 | 29 | [Outlet] 30 | [GeneratedCode ("iOS Designer", "1.0")] 31 | UIButton VisitSiteButton { get; set; } 32 | 33 | void ReleaseDesignerOutlets () 34 | { 35 | if (AboutTextView != null) { 36 | AboutTextView.Dispose (); 37 | AboutTextView = null; 38 | } 39 | if (CurrencyTextField != null) { 40 | CurrencyTextField.Dispose (); 41 | CurrencyTextField = null; 42 | } 43 | if (testTextView != null) { 44 | testTextView.Dispose (); 45 | testTextView = null; 46 | } 47 | if (VisitSiteButton != null) { 48 | VisitSiteButton.Dispose (); 49 | VisitSiteButton = null; 50 | } 51 | } 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /MyTrains.iOS/SearchResultsCell.designer.cs: -------------------------------------------------------------------------------- 1 | // WARNING 2 | // 3 | // This file has been generated automatically by Xamarin Studio from the outlets and 4 | // actions declared in your storyboard file. 5 | // Manual changes to this file will not be maintained. 6 | // 7 | using Foundation; 8 | using System; 9 | using System.CodeDom.Compiler; 10 | using UIKit; 11 | 12 | namespace MyTrains.iOS 13 | { 14 | [Register ("SearchResultsCell")] 15 | partial class SearchResultsCell 16 | { 17 | [Outlet] 18 | [GeneratedCode ("iOS Designer", "1.0")] 19 | UILabel departureDateLabel { get; set; } 20 | 21 | [Outlet] 22 | [GeneratedCode ("iOS Designer", "1.0")] 23 | UILabel departureTimeLabel { get; set; } 24 | 25 | [Outlet] 26 | [GeneratedCode ("iOS Designer", "1.0")] 27 | UILabel fromCityLabel { get; set; } 28 | 29 | [Outlet] 30 | [GeneratedCode ("iOS Designer", "1.0")] 31 | UILabel toCityLabel { get; set; } 32 | 33 | void ReleaseDesignerOutlets () 34 | { 35 | if (departureDateLabel != null) { 36 | departureDateLabel.Dispose (); 37 | departureDateLabel = null; 38 | } 39 | if (departureTimeLabel != null) { 40 | departureTimeLabel.Dispose (); 41 | departureTimeLabel = null; 42 | } 43 | if (fromCityLabel != null) { 44 | fromCityLabel.Dispose (); 45 | fromCityLabel = null; 46 | } 47 | if (toCityLabel != null) { 48 | toCityLabel.Dispose (); 49 | toCityLabel = null; 50 | } 51 | } 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /MyTrains.iOS/Controls/CalendarHelper.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using CoreGraphics; 3 | using Factorymind.Components; 4 | using MyTrains.iOS.Utility; 5 | using UIKit; 6 | 7 | namespace MyTrains.iOS.Controls 8 | { 9 | public static class CalendarHelper 10 | { 11 | public static FMCalendar Calendar; 12 | 13 | public static FMCalendar GetPreconfiguredInstance( 14 | CGRect frame, Action dateSelected) 15 | { 16 | Calendar = new FMCalendar(frame) 17 | { 18 | LeftArrow = UIImage.FromBundle("arrow-left.png"), 19 | RightArrow = UIImage.FromBundle("arrow-right.png"), 20 | SelectionColor = MyTrainsColors.AccentColor, 21 | TodayCircleColor = MyTrainsColors.AccentColor, 22 | MonthFormatString = "MMMM yyyy", 23 | SundayFirst = true, 24 | DateSelected = date => 25 | { 26 | DeselectUnavailableDate(date); 27 | dateSelected?.Invoke(date); 28 | }, 29 | IsDateAvailable = date => date >= DateTime.Today 30 | }; 31 | 32 | return Calendar; 33 | } 34 | 35 | static void DeselectUnavailableDate(DateTime date) 36 | { 37 | if (!Calendar.IsDateAvailable(date)) 38 | { 39 | Calendar.DeselectDate(); 40 | } 41 | } 42 | } 43 | } -------------------------------------------------------------------------------- /MyTrains.iOS/SearchResultsCell.cs: -------------------------------------------------------------------------------- 1 | using Foundation; 2 | using System; 3 | using System.CodeDom.Compiler; 4 | using MvvmCross.Binding.BindingContext; 5 | using MvvmCross.Binding.iOS.Views; 6 | using MyTrains.Core.Converters; 7 | using MyTrains.Core.Model; 8 | using UIKit; 9 | 10 | namespace MyTrains.iOS 11 | { 12 | public partial class SearchResultsCell : MvxTableViewCell 13 | { 14 | internal static readonly NSString Identifier = 15 | new NSString("SearchResultsCell"); 16 | 17 | public SearchResultsCell(IntPtr handle) : base(handle) 18 | { 19 | } 20 | 21 | private void CreateBindings() 22 | { 23 | var set = this.CreateBindingSet(); 24 | 25 | set.Bind(fromCityLabel) 26 | .To(vm => vm.FromCity.CityName); 27 | 28 | set.Bind(toCityLabel) 29 | .To(vm => vm.ToCity.CityName); 30 | 31 | set.Bind(departureDateLabel) 32 | .To(vm => vm.JourneyDate) 33 | .WithConversion(new DateTimeToDayConverter()); 34 | 35 | set.Bind(departureTimeLabel) 36 | .To(vm => vm.DepartureTime) 37 | .WithConversion(new DateTimeToTimeConverter()); 38 | 39 | set.Apply(); 40 | } 41 | 42 | public override void LayoutSubviews() 43 | { 44 | base.LayoutSubviews(); 45 | CreateBindings(); 46 | } 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /MyTrains.Core/ViewModel/MainViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using MvvmCross.Core.ViewModels; 3 | using MvvmCross.Platform; 4 | using MyTrains.Core.Contracts.ViewModel; 5 | 6 | namespace MyTrains.Core.ViewModel 7 | { 8 | public class MainViewModel : MvxViewModel, IMainViewModel 9 | { 10 | private readonly Lazy _searchJourneyViewModel; 11 | private readonly Lazy _savedJourneysViewModel; 12 | private readonly Lazy _settingsViewModel; 13 | 14 | public SearchJourneyViewModel SearchJourneyViewModel => _searchJourneyViewModel.Value; 15 | 16 | public SavedJourneysViewModel SavedJourneysViewModel => _savedJourneysViewModel.Value; 17 | 18 | public SettingsViewModel SettingsViewModel => _settingsViewModel.Value; 19 | 20 | public MainViewModel() 21 | { 22 | _searchJourneyViewModel = new Lazy(Mvx.IocConstruct); 23 | _savedJourneysViewModel = new Lazy(Mvx.IocConstruct); 24 | _settingsViewModel = new Lazy(Mvx.IocConstruct); 25 | } 26 | 27 | public void ShowMenu() 28 | { 29 | ShowViewModel(); 30 | } 31 | 32 | public void ShowSearchJourneys() 33 | { 34 | ShowViewModel(); 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /MyTrains.iOS/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | UIViewControllerBasedStatusBarAppearance 6 | 7 | CFBundleDisplayName 8 | MyTrains.iOS 9 | CFBundleIdentifier 10 | com.companyname.MyTrains.iOS 11 | CFBundleShortVersionString 12 | 1.0 13 | CFBundleVersion 14 | 1.0 15 | LSRequiresIPhoneOS 16 | 17 | MinimumOSVersion 18 | 19 | UIDeviceFamily 20 | 21 | 1 22 | 23 | UILaunchStoryboardName 24 | LaunchScreen 25 | UIRequiredDeviceCapabilities 26 | 27 | armv7 28 | 29 | UISupportedInterfaceOrientations 30 | 31 | UIInterfaceOrientationPortrait 32 | UIInterfaceOrientationLandscapeLeft 33 | UIInterfaceOrientationLandscapeRight 34 | 35 | CFBundleName 36 | MyTrains.iOS 37 | UIStatusBarStyle 38 | UIStatusBarStyleLightContent 39 | XSAppIconAssets 40 | Assets.xcassets/AppIcons.appiconset 41 | XSLaunchImageAssets 42 | Assets.xcassets/LaunchImage.launchimage 43 | 44 | 45 | -------------------------------------------------------------------------------- /MyTrains.Core/Services/Data/JourneyDataService.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Threading.Tasks; 4 | using MyTrains.Core.Contracts.Repository; 5 | using MyTrains.Core.Contracts.Services; 6 | using MyTrains.Core.Model; 7 | 8 | namespace MyTrains.Core.Services.Data 9 | { 10 | public class JourneyDataService: IJourneyDataService 11 | { 12 | private readonly IJourneyRepository _journeyRepository; 13 | private readonly ICityRepository _cityRepository; 14 | 15 | 16 | public JourneyDataService(IJourneyRepository journeyRepository, 17 | ICityRepository cityRepository) 18 | { 19 | _journeyRepository = journeyRepository; 20 | _cityRepository = cityRepository; 21 | } 22 | 23 | public async Task> SearchJourney(int fromCity, int toCity, DateTime journeyDate, DateTime departureTime) 24 | { 25 | var journeys = await _journeyRepository.SearchJourney(fromCity, toCity, journeyDate, departureTime); 26 | foreach (var journey in journeys) 27 | { 28 | journey.FromCity = await _cityRepository.GetCityById(journey.FromCityId); 29 | journey.ToCity = await _cityRepository.GetCityById(journey.ToCityId); 30 | } 31 | return journeys; 32 | } 33 | 34 | public async Task GetJourneyDetails(int journeyId) 35 | { 36 | return await _journeyRepository.GetJourneyDetails(journeyId); 37 | } 38 | } 39 | } -------------------------------------------------------------------------------- /MyTrains.iOS/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("MyTrains.iOS")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("MyTrains.iOS")] 13 | [assembly: AssemblyCopyright("Copyright © 2016")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("bbd6ba79-365c-46fb-9662-04318221a0a7")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /MyTrains.iOS/SavedJourneyCell.cs: -------------------------------------------------------------------------------- 1 | using Foundation; 2 | using System; 3 | using System.CodeDom.Compiler; 4 | using MvvmCross.Binding.BindingContext; 5 | using MvvmCross.Binding.iOS.Views; 6 | using MyTrains.Core.Converters; 7 | using MyTrains.Core.Model; 8 | using UIKit; 9 | 10 | namespace MyTrains.iOS 11 | { 12 | partial class SavedJourneyCell : MvxTableViewCell 13 | { 14 | public SavedJourneyCell (IntPtr handle) : base (handle) 15 | { 16 | } 17 | 18 | internal static NSString Identifier = new NSString("SavedJourneyCell"); 19 | 20 | private void CreateBindings() 21 | { 22 | var set = this.CreateBindingSet(); 23 | 24 | set.Bind(FromCityLabel) 25 | .To(vm => vm.Journey.FromCity.CityName); 26 | 27 | set.Bind(ToCityLabel) 28 | .To(vm => vm.Journey.ToCity.CityName); 29 | 30 | set.Bind(NumberOfTicketsLabel) 31 | .To(vm => vm.NumberOfTravellers); 32 | 33 | set.Bind(DepartureDateLabel) 34 | .To(vm => vm.Journey.JourneyDate) 35 | .WithConversion(new DateTimeToDayConverter()); 36 | 37 | set.Bind(DepartureTimeLabel) 38 | .To(vm => vm.Journey.DepartureTime) 39 | .WithConversion(new DateTimeToTimeConverter()); 40 | 41 | set.Apply(); 42 | } 43 | 44 | public override void LayoutSubviews() 45 | { 46 | base.LayoutSubviews(); 47 | CreateBindings(); 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /MyTrains.Core.UnitTests/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("MyTrains.Core.UnitTests")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("MyTrains.Core.UnitTests")] 13 | [assembly: AssemblyCopyright("Copyright © 2016")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("1442781b-1e63-418c-a2d9-ce28cd91adea")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /MyTrains.Core/Utility/ResxTextProvider.cs: -------------------------------------------------------------------------------- 1 | using System.Globalization; 2 | using System.Resources; 3 | using MvvmCross.Localization; 4 | 5 | namespace MyTrains.Core.Utility 6 | { 7 | public class ResxTextProvider : IMvxTextProvider 8 | { 9 | private readonly ResourceManager _resourceManager; 10 | 11 | public ResxTextProvider(ResourceManager resourceManager) 12 | { 13 | _resourceManager = resourceManager; 14 | CurrentLanguage = new CultureInfo("en-US"); 15 | } 16 | 17 | public CultureInfo CurrentLanguage { get; set; } 18 | 19 | public string GetText(string namespaceKey, 20 | string typeKey, string name) 21 | { 22 | string resolvedKey = name; 23 | 24 | if (!string.IsNullOrEmpty(typeKey)) 25 | { 26 | resolvedKey = $"{typeKey}.{resolvedKey}"; 27 | } 28 | 29 | if (!string.IsNullOrEmpty(namespaceKey)) 30 | { 31 | resolvedKey = $"{namespaceKey}.{resolvedKey}"; 32 | } 33 | 34 | return _resourceManager.GetString(resolvedKey, CurrentLanguage); 35 | } 36 | 37 | public string GetText(string namespaceKey, string typeKey, string name, params object[] formatArgs) 38 | { 39 | string baseText = GetText(namespaceKey, typeKey, name); 40 | 41 | if (string.IsNullOrEmpty(baseText)) 42 | { 43 | return baseText; 44 | } 45 | 46 | return string.Format(baseText, formatArgs); 47 | } 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /MyTrains.Droid/Views/MenuFragment.cs: -------------------------------------------------------------------------------- 1 | using Android.OS; 2 | using Android.Runtime; 3 | using Android.Views; 4 | using MvvmCross.Binding.Droid.BindingContext; 5 | using MvvmCross.Droid.Shared.Attributes; 6 | using MyTrains.Core.ViewModel; 7 | using MyTrains.Droid.Activities; 8 | using System; 9 | using MvvmCross.Droid.Support.V7.Fragging.Fragments; 10 | 11 | namespace MyTrains.Droid.Views 12 | { 13 | [MvxFragment(typeof(MainViewModel), Resource.Id.left_drawer, true)] 14 | [Register("mytrains.droid.views.MenuFragment")] 15 | public class MenuFragment : MvxFragment 16 | { 17 | public MenuFragment() 18 | { 19 | 20 | } 21 | 22 | public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 23 | { 24 | base.OnCreateView(inflater, container, savedInstanceState); 25 | return this.BindingInflate(Resource.Layout.fragment_menu, null); 26 | } 27 | 28 | public override void OnStart() 29 | { 30 | base.OnStart(); 31 | ViewModel.CloseMenu += OnCloseMenu; 32 | } 33 | 34 | public override void OnStop() 35 | { 36 | base.OnStop(); 37 | ViewModel.CloseMenu -= OnCloseMenu; 38 | } 39 | 40 | private void OnCloseMenu(object sender, EventArgs e) 41 | { 42 | (Activity as MainActivity)?.CloseDrawerMenu(); 43 | } 44 | 45 | public bool OnNavigationItemSelected(IMenuItem menuItem) 46 | { 47 | return true; 48 | } 49 | } 50 | } -------------------------------------------------------------------------------- /MyTrains.Core/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /MyTrains.Droid/Views/SearchResultsFragment.cs: -------------------------------------------------------------------------------- 1 | using Android.OS; 2 | using Android.Runtime; 3 | using Android.Views; 4 | using MvvmCross.Binding.Droid.BindingContext; 5 | using MvvmCross.Droid.Shared.Attributes; 6 | using MvvmCross.Droid.Support.V7.Fragging.Fragments; 7 | using MyTrains.Core.ViewModel; 8 | using MyTrains.Droid.Activities; 9 | using MyTrains.Droid.Extensions; 10 | 11 | namespace MyTrains.Droid.Views 12 | { 13 | [MvxFragment(typeof(MainViewModel), Resource.Id.content_frame, true)] 14 | [Register("mytrains.droid.views.SearchResultsFragment")] 15 | public class SearchResultsFragment: MvxFragment 16 | { 17 | private bool _alreadyLoaded; 18 | 19 | public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 20 | { 21 | _alreadyLoaded = true; 22 | 23 | base.OnCreateView(inflater, container, savedInstanceState); 24 | return this.BindingInflate(Resource.Layout.SearchResultsView, null); 25 | } 26 | 27 | public override void OnViewCreated(View view, Bundle savedInstanceState) 28 | { 29 | base.OnViewCreated(view, savedInstanceState); 30 | (this.Activity as MainActivity).SetCustomTitle("Search results"); 31 | } 32 | 33 | public override void OnResume() 34 | { 35 | if(!_alreadyLoaded)ViewModel.Start(); 36 | base.OnResume(); 37 | } 38 | 39 | public override void OnStop() 40 | { 41 | _alreadyLoaded = false; 42 | base.OnStop(); 43 | } 44 | } 45 | } -------------------------------------------------------------------------------- /Components/square.androidtimessquare-1.6.5.0/samples/AndroidTimesSquareSample/AndroidTimesSquareSample.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.23107.0 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AndroidTimesSquareSample", "AndroidTimesSquareSample.csproj", "{8B81483F-E882-4EAE-BCB5-F78328971FE8}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {4FE5BA3F-1D95-419E-85D8-8D61ED3C0941}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {4FE5BA3F-1D95-419E-85D8-8D61ED3C0941}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {4FE5BA3F-1D95-419E-85D8-8D61ED3C0941}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {4FE5BA3F-1D95-419E-85D8-8D61ED3C0941}.Release|Any CPU.Build.0 = Release|Any CPU 18 | {8B81483F-E882-4EAE-BCB5-F78328971FE8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 19 | {8B81483F-E882-4EAE-BCB5-F78328971FE8}.Debug|Any CPU.Build.0 = Debug|Any CPU 20 | {8B81483F-E882-4EAE-BCB5-F78328971FE8}.Debug|Any CPU.Deploy.0 = Debug|Any CPU 21 | {8B81483F-E882-4EAE-BCB5-F78328971FE8}.Release|Any CPU.ActiveCfg = Release|Any CPU 22 | {8B81483F-E882-4EAE-BCB5-F78328971FE8}.Release|Any CPU.Build.0 = Release|Any CPU 23 | {8B81483F-E882-4EAE-BCB5-F78328971FE8}.Release|Any CPU.Deploy.0 = Release|Any CPU 24 | EndGlobalSection 25 | GlobalSection(SolutionProperties) = preSolution 26 | HideSolutionNode = FALSE 27 | EndGlobalSection 28 | EndGlobal 29 | -------------------------------------------------------------------------------- /Components/square.androidtimessquare-1.6.5.0/component/GettingStarted.md: -------------------------------------------------------------------------------- 1 | # Getting Started with TimesSquare 2 | 3 | > Standalone Android widget for picking a single date from a calendar view. 4 | 5 | ## Usage 6 | 7 | We can include the `CalendarPickerView` element in out layout resource: 8 | 9 | 13 | 14 | This is a fairly large control so it is wise to give it ample space in our 15 | layout. On small devices it is recommended to use a dialog, full-screen 16 | fragment, or dedicated activity. On larger devices like tablets, displaying 17 | full-screen is not recommended. A fragment occupying part of the layout or 18 | a dialog is a better choice. 19 | 20 | In the `OnCreate` of our activity/dialog or the `OnCreateView` of our fragment, 21 | we initialize the view with a range of valid dates as well as the currently 22 | selected date: 23 | 24 | CalendarPickerView calendar = ... 25 | 26 | var today = DateTime.Now; 27 | var nextYear = today.AddYears(1); 28 | 29 | calendar 30 | .Init(today, nextYear) 31 | .WithSelectedDate(today); 32 | 33 | The default mode of the view is to have one selectable date. 34 | If we want the user to be able to select multiple dates or a date range, we 35 | use the `InMode` method: 36 | 37 | CalendarPickerView calendar = ... 38 | 39 | var today = DateTime.Now; 40 | var nextYear = today.AddYears(1); 41 | 42 | calendar 43 | .Init(today, nextYear) 44 | .InMode(CalendarPickerView.SelectionMode.Range) 45 | .WithSelectedDate(today); 46 | -------------------------------------------------------------------------------- /MyTrains.iOS/SavedJourneyCell.designer.cs: -------------------------------------------------------------------------------- 1 | // WARNING 2 | // 3 | // This file has been generated automatically by Xamarin Studio from the outlets and 4 | // actions declared in your storyboard file. 5 | // Manual changes to this file will not be maintained. 6 | // 7 | using Foundation; 8 | using System; 9 | using System.CodeDom.Compiler; 10 | using UIKit; 11 | 12 | namespace MyTrains.iOS 13 | { 14 | [Register ("SavedJourneyCell")] 15 | partial class SavedJourneyCell 16 | { 17 | [Outlet] 18 | [GeneratedCode ("iOS Designer", "1.0")] 19 | UILabel DepartureDateLabel { get; set; } 20 | 21 | [Outlet] 22 | [GeneratedCode ("iOS Designer", "1.0")] 23 | UILabel DepartureTimeLabel { get; set; } 24 | 25 | [Outlet] 26 | [GeneratedCode ("iOS Designer", "1.0")] 27 | UILabel FromCityLabel { get; set; } 28 | 29 | [Outlet] 30 | [GeneratedCode ("iOS Designer", "1.0")] 31 | UILabel NumberOfTicketsLabel { get; set; } 32 | 33 | [Outlet] 34 | [GeneratedCode ("iOS Designer", "1.0")] 35 | UILabel ToCityLabel { get; set; } 36 | 37 | void ReleaseDesignerOutlets () 38 | { 39 | if (DepartureDateLabel != null) { 40 | DepartureDateLabel.Dispose (); 41 | DepartureDateLabel = null; 42 | } 43 | if (DepartureTimeLabel != null) { 44 | DepartureTimeLabel.Dispose (); 45 | DepartureTimeLabel = null; 46 | } 47 | if (FromCityLabel != null) { 48 | FromCityLabel.Dispose (); 49 | FromCityLabel = null; 50 | } 51 | if (NumberOfTicketsLabel != null) { 52 | NumberOfTicketsLabel.Dispose (); 53 | NumberOfTicketsLabel = null; 54 | } 55 | if (ToCityLabel != null) { 56 | ToCityLabel.Dispose (); 57 | ToCityLabel = null; 58 | } 59 | } 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | #FFFFFF 3 | #000000 4 | 5 | 6 | #0674AD 7 | #186089 8 | #3BCADB 9 | #3ea4b4 10 | #373B49 11 | #373B49 12 | #CCCCCC 13 | #00000000 14 | 15 | 18 | 19 | 36 | 37 | -------------------------------------------------------------------------------- /MyTrains.iOS/Views/SearchJourneyView.designer.cs: -------------------------------------------------------------------------------- 1 | // WARNING 2 | // 3 | // This file has been generated automatically by Xamarin Studio from the outlets and 4 | // actions declared in your storyboard file. 5 | // Manual changes to this file will not be maintained. 6 | // 7 | using Foundation; 8 | using System; 9 | using System.CodeDom.Compiler; 10 | using UIKit; 11 | 12 | namespace MyTrains.iOS.Views 13 | { 14 | [Register ("SearchJourneyView")] 15 | partial class SearchJourneyView 16 | { 17 | [Outlet] 18 | [GeneratedCode ("iOS Designer", "1.0")] 19 | UIView calendarContainerView { get; set; } 20 | 21 | [Outlet] 22 | [GeneratedCode ("iOS Designer", "1.0")] 23 | UITextField depatureTimeTextField { get; set; } 24 | 25 | [Outlet] 26 | [GeneratedCode ("iOS Designer", "1.0")] 27 | UITextField fromCityTextField { get; set; } 28 | 29 | [Outlet] 30 | [GeneratedCode ("iOS Designer", "1.0")] 31 | UIButton searchButton { get; set; } 32 | 33 | [Outlet] 34 | [GeneratedCode ("iOS Designer", "1.0")] 35 | UITextField toCityTextField { get; set; } 36 | 37 | void ReleaseDesignerOutlets () 38 | { 39 | if (calendarContainerView != null) { 40 | calendarContainerView.Dispose (); 41 | calendarContainerView = null; 42 | } 43 | if (depatureTimeTextField != null) { 44 | depatureTimeTextField.Dispose (); 45 | depatureTimeTextField = null; 46 | } 47 | if (fromCityTextField != null) { 48 | fromCityTextField.Dispose (); 49 | fromCityTextField = null; 50 | } 51 | if (searchButton != null) { 52 | searchButton.Dispose (); 53 | searchButton = null; 54 | } 55 | if (toCityTextField != null) { 56 | toCityTextField.Dispose (); 57 | toCityTextField = null; 58 | } 59 | } 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /MyTrains.Core/Repositories/SavedJourneyRepository.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Linq; 3 | using System.Threading.Tasks; 4 | using MyTrains.Core.Contracts.Repository; 5 | using MyTrains.Core.Model; 6 | 7 | namespace MyTrains.Core.Repositories 8 | { 9 | public class SavedJourneyRepository : BaseRepository , ISavedJourneyRepository 10 | { 11 | 12 | private static readonly List AllSavedJourneys = new List 13 | { 14 | new SavedJourney {JourneyId = 1, NumberOfTravellers = 3, UserId = 1}, 15 | new SavedJourney {JourneyId = 2, NumberOfTravellers = 2, UserId = 1}, 16 | new SavedJourney {JourneyId = 3, NumberOfTravellers = 3, UserId = 1}, 17 | new SavedJourney {JourneyId = 4, NumberOfTravellers = 2, UserId = 1}, 18 | new SavedJourney {JourneyId = 1, NumberOfTravellers = 3, UserId = 2}, 19 | new SavedJourney {JourneyId = 2, NumberOfTravellers = 3, UserId = 2} 20 | }; 21 | 22 | public async Task> GetSavedJourneyForUser(int userId) 23 | { 24 | return await Task.FromResult(AllSavedJourneys.Where(j => j.UserId == userId)); 25 | } 26 | 27 | public async Task AddSavedJourney(int userId, int journeyId, int numberOfTravellers) 28 | { 29 | await 30 | Task.Run( 31 | () => 32 | AllSavedJourneys.Add(new SavedJourney 33 | { 34 | JourneyId = journeyId, 35 | NumberOfTravellers = numberOfTravellers, 36 | UserId = userId 37 | })); 38 | } 39 | 40 | } 41 | } -------------------------------------------------------------------------------- /Components/fmcalendar-1.5.3/samples/FMCalendarSample.iOS-Unified/FMCalendarViewController.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Factorymind.Components; 3 | using UIKit; 4 | 5 | namespace FMCalendarSample.iOS 6 | { 7 | public class FMCalendarViewController : UIViewController 8 | { 9 | private FMCalendar fmCalendar; 10 | 11 | public override void ViewDidLoad () 12 | { 13 | base.ViewDidLoad (); 14 | 15 | fmCalendar = new FMCalendar (View.Bounds); 16 | 17 | View.BackgroundColor = UIColor.White; 18 | 19 | // Specify selection color 20 | fmCalendar.SelectionColor = UIColor.Red; 21 | 22 | // Specify today circle Color 23 | fmCalendar.TodayCircleColor = UIColor.Red; 24 | 25 | // Customizing appearance 26 | fmCalendar.LeftArrow = UIImage.FromFile ("leftArrow.png"); 27 | fmCalendar.RightArrow = UIImage.FromFile ("rightArrow.png"); 28 | 29 | fmCalendar.MonthFormatString = "MMMM yyyy"; 30 | 31 | // Shows Sunday as last day of the week 32 | fmCalendar.SundayFirst = false; 33 | 34 | // Mark with a dot dates that fulfill the predicate 35 | fmCalendar.IsDayMarkedDelegate = (date) => 36 | { 37 | return date.Day % 2 == 0; 38 | }; 39 | 40 | // Turn gray dates that fulfill the predicate 41 | fmCalendar.IsDateAvailable = (date) => 42 | { 43 | return (date >= DateTime.Today); 44 | }; 45 | 46 | fmCalendar.MonthChanged = (date) => 47 | { 48 | Console.WriteLine ("Month changed {0}", date.Date); 49 | }; 50 | 51 | fmCalendar.DateSelected += (date) => 52 | { 53 | Console.WriteLine ("Date selected: {0}", date); 54 | }; 55 | 56 | // Add FMCalendar to SuperView 57 | fmCalendar.Center = this.View.Center; 58 | this.View.AddSubview (fmCalendar); 59 | } 60 | 61 | public override bool PrefersStatusBarHidden () 62 | { 63 | return true; 64 | } 65 | } 66 | } -------------------------------------------------------------------------------- /Components/fmcalendar-1.5.3/samples/FMCalendarSample.iOS/FMCalendarViewController.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using MonoTouch.UIKit; 3 | using Factorymind.Components; 4 | 5 | namespace FMCalendarSample.iOS 6 | { 7 | public class FMCalendarViewController : UIViewController 8 | { 9 | private FMCalendar fmCalendar; 10 | 11 | public override void ViewDidLoad () 12 | { 13 | base.ViewDidLoad (); 14 | 15 | fmCalendar = new FMCalendar (View.Bounds); 16 | 17 | View.BackgroundColor = UIColor.White; 18 | 19 | // Specify selection color 20 | fmCalendar.SelectionColor = UIColor.Red; 21 | 22 | // Specify today circle Color 23 | fmCalendar.TodayCircleColor = UIColor.Red; 24 | 25 | // Customizing appearance 26 | fmCalendar.LeftArrow = UIImage.FromFile ("leftArrow.png"); 27 | fmCalendar.RightArrow = UIImage.FromFile ("rightArrow.png"); 28 | 29 | fmCalendar.MonthFormatString = "MMMM yyyy"; 30 | 31 | // Shows Sunday as last day of the week 32 | fmCalendar.SundayFirst = false; 33 | 34 | // Mark with a dot dates that fulfill the predicate 35 | fmCalendar.IsDayMarkedDelegate = (date) => 36 | { 37 | return date.Day % 2 == 0; 38 | }; 39 | 40 | // Turn gray dates that fulfill the predicate 41 | fmCalendar.IsDateAvailable = (date) => 42 | { 43 | return (date >= DateTime.Today); 44 | }; 45 | 46 | fmCalendar.MonthChanged = (date) => 47 | { 48 | Console.WriteLine ("Month changed {0}", date.Date); 49 | }; 50 | 51 | fmCalendar.DateSelected += (date) => 52 | { 53 | Console.WriteLine ("Date selected: {0}", date); 54 | }; 55 | 56 | // Add FMCalendar to SuperView 57 | fmCalendar.Center = this.View.Center; 58 | this.View.AddSubview (fmCalendar); 59 | } 60 | 61 | public override bool PrefersStatusBarHidden () 62 | { 63 | return true; 64 | } 65 | } 66 | } -------------------------------------------------------------------------------- /Components/fmcalendar-1.5.3/component/Details.md: -------------------------------------------------------------------------------- 1 | FMCalendar control is a calendar view for your iPhone or iPad app. 2 | 3 | It can be easily added to your iOS app, and allows you to customize it's appearance and to handle it's events. 4 | 5 | All the day and month names are automatically localized, based on the system language. 6 | 7 | Here is an example on how it works: 8 | 9 | ```csharp 10 | using Factorymind.Components; 11 | ... 12 | 13 | public override void ViewDidLoad () 14 | { 15 | base.ViewDidLoad (); 16 | 17 | fmCalendar = new FMCalendar (View.Bounds); 18 | 19 | View.BackgroundColor = UIColor.White; 20 | 21 | // Specify selection color 22 | fmCalendar.SelectionColor = UIColor.Red; 23 | 24 | // Specify today circle Color 25 | fmCalendar.TodayCircleColor = UIColor.Red; 26 | 27 | // Customizing appearance 28 | fmCalendar.LeftArrow = UIImage.FromFile ("leftArrow.png"); 29 | fmCalendar.RightArrow = UIImage.FromFile ("rightArrow.png"); 30 | 31 | fmCalendar.MonthFormatString = "MMMM yyyy"; 32 | 33 | // Shows Sunday as last day of the week 34 | fmCalendar.SundayFirst = false; 35 | 36 | // Mark with a dot dates that fulfill the predicate 37 | fmCalendar.IsDayMarkedDelegate = (date) => 38 | { 39 | return date.Day % 2 == 1; 40 | }; 41 | 42 | // Turn gray dates that fulfill the predicate 43 | fmCalendar.IsDateAvailable = (date) => 44 | { 45 | return (date >= DateTime.Today); 46 | }; 47 | 48 | fmCalendar.MonthChanged = (date) => 49 | { 50 | Console.WriteLine ("Month changed {0}", date.Date); 51 | }; 52 | 53 | fmCalendar.DateSelected += (date) => 54 | { 55 | Console.WriteLine ("Date selected: {0}", date); 56 | }; 57 | 58 | // Add FMCalendar to SuperView 59 | fmCalendar.Center = this.View.Center; 60 | this.View.AddSubview (fmCalendar); 61 | } 62 | ``` 63 | 64 | Inspired by Eduardo Scoz https://github.com/escoz -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/AboutResources.txt: -------------------------------------------------------------------------------- 1 | Images, layout descriptions, binary blobs and string dictionaries can be included 2 | in your application as resource files. Various Android APIs are designed to 3 | operate on the resource IDs instead of dealing with images, strings or binary blobs 4 | directly. 5 | 6 | For example, a sample Android app that contains a user interface layout (main.axml), 7 | an internationalization string table (strings.xml) and some icons (drawable-XXX/icon.png) 8 | would keep its resources in the "Resources" directory of the application: 9 | 10 | Resources/ 11 | drawable/ 12 | icon.png 13 | 14 | layout/ 15 | main.axml 16 | 17 | values/ 18 | strings.xml 19 | 20 | In order to get the build system to recognize Android resources, set the build action to 21 | "AndroidResource". The native Android APIs do not operate directly with filenames, but 22 | instead operate on resource IDs. When you compile an Android application that uses resources, 23 | the build system will package the resources for distribution and generate a class called "R" 24 | (this is an Android convention) that contains the tokens for each one of the resources 25 | included. For example, for the above Resources layout, this is what the R class would expose: 26 | 27 | public class R { 28 | public class drawable { 29 | public const int icon = 0x123; 30 | } 31 | 32 | public class layout { 33 | public const int main = 0x456; 34 | } 35 | 36 | public class strings { 37 | public const int first_string = 0xabc; 38 | public const int second_string = 0xbcd; 39 | } 40 | } 41 | 42 | You would then use R.drawable.icon to reference the drawable/icon.png file, or R.layout.main 43 | to reference the layout/main.axml file, or R.strings.first_string to reference the first 44 | string in the dictionary file values/strings.xml. -------------------------------------------------------------------------------- /Components/fmcalendar-1.5.3/component/GettingStarted.md: -------------------------------------------------------------------------------- 1 | FMCalendar control is a calendar view for your iPhone or iPad app. 2 | 3 | It can be easily added to your iOS app, and allows you to customize it's appearance and to handle it's events. 4 | 5 | All the day and month names are automatically localized, based on the system language. 6 | 7 | Here is an example on how it works: 8 | 9 | ```csharp 10 | using Factorymind.Components; 11 | ... 12 | 13 | public override void ViewDidLoad () 14 | { 15 | base.ViewDidLoad (); 16 | 17 | fmCalendar = new FMCalendar (View.Bounds); 18 | 19 | View.BackgroundColor = UIColor.White; 20 | 21 | // Specify selection color 22 | fmCalendar.SelectionColor = UIColor.Red; 23 | 24 | // Specify today circle Color 25 | fmCalendar.TodayCircleColor = UIColor.Red; 26 | 27 | // Customizing appearance 28 | fmCalendar.LeftArrow = UIImage.FromFile ("leftArrow.png"); 29 | fmCalendar.RightArrow = UIImage.FromFile ("rightArrow.png"); 30 | 31 | fmCalendar.MonthFormatString = "MMMM yyyy"; 32 | 33 | // Shows Sunday as last day of the week 34 | fmCalendar.SundayFirst = false; 35 | 36 | // Mark with a dot dates that fulfill the predicate 37 | fmCalendar.IsDayMarkedDelegate = (date) => 38 | { 39 | return date.Day % 2 == 1; 40 | }; 41 | 42 | // Turn gray dates that fulfill the predicate 43 | fmCalendar.IsDateAvailable = (date) => 44 | { 45 | return (date >= DateTime.Today); 46 | }; 47 | 48 | fmCalendar.MonthChanged = (date) => 49 | { 50 | Console.WriteLine ("Month changed {0}", date.Date); 51 | }; 52 | 53 | fmCalendar.DateSelected += (date) => 54 | { 55 | Console.WriteLine ("Date selected: {0}", date); 56 | }; 57 | 58 | // Add FMCalendar to SuperView 59 | fmCalendar.Center = this.View.Center; 60 | this.View.AddSubview (fmCalendar); 61 | } 62 | ``` 63 | 64 | You can download all the sources here: http://www.factorymind.com/Public/Sources/FMCalendar.zip -------------------------------------------------------------------------------- /MyTrains.Core/Repositories/CityRepository.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Linq; 3 | using System.Threading.Tasks; 4 | using MyTrains.Core.Contracts.Repository; 5 | using MyTrains.Core.Model; 6 | 7 | namespace MyTrains.Core.Repositories 8 | { 9 | public class CityRepository: BaseRepository, ICityRepository 10 | { 11 | private static readonly List AllCities = new List 12 | { 13 | new City 14 | { 15 | CityId = 1, 16 | CityName = "London" 17 | }, 18 | new City 19 | { 20 | CityId = 2, 21 | CityName = "Manchester" 22 | }, 23 | new City 24 | { 25 | CityId = 3, 26 | CityName = "Liverpool" 27 | }, 28 | new City 29 | { 30 | CityId = 4, 31 | CityName = "Cambridge" 32 | }, 33 | 34 | new City 35 | { 36 | CityId = 5, 37 | CityName = "Glasgow" 38 | }, 39 | 40 | new City 41 | { 42 | CityId = 6, 43 | CityName = "Aberdeen" 44 | }, 45 | new City 46 | { 47 | CityId = 7, 48 | CityName = "Bath" 49 | }, 50 | new City 51 | { 52 | CityId = 8, 53 | CityName = "Oxford" 54 | } 55 | }; 56 | 57 | public async Task> GetAllCities() 58 | { 59 | return await Task.FromResult(AllCities); 60 | } 61 | 62 | public async Task GetCityById(int cityId) 63 | { 64 | return await Task.FromResult(AllCities.FirstOrDefault(c => c.CityId == cityId)); 65 | } 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /MyTrains.Core/Services/Data/SavedJourneyDataService.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Threading.Tasks; 3 | using MyTrains.Core.Contracts.Repository; 4 | using MyTrains.Core.Contracts.Services; 5 | using MyTrains.Core.Model; 6 | 7 | namespace MyTrains.Core.Services.Data 8 | { 9 | public class SavedJourneyDataService: ISavedJourneyDataService 10 | { 11 | private readonly ISavedJourneyRepository _savedJourneyRepository; 12 | private readonly IJourneyDataService _journeyDataService; 13 | private readonly ICityDataService _cityDataService; 14 | 15 | public SavedJourneyDataService(ISavedJourneyRepository savedJourneyRepository, IJourneyDataService journeyDataService, ICityDataService cityDataService) 16 | { 17 | _savedJourneyRepository = savedJourneyRepository; 18 | _journeyDataService = journeyDataService; 19 | _cityDataService = cityDataService; 20 | } 21 | 22 | public async Task> GetSavedJourneyForUser(int userId) 23 | { 24 | 25 | var list = await _savedJourneyRepository.GetSavedJourneyForUser(userId); 26 | foreach (var savedJourney in list) 27 | { 28 | var journey = await _journeyDataService.GetJourneyDetails(savedJourney.JourneyId); 29 | journey.FromCity = await _cityDataService.GetCityById(journey.FromCityId); 30 | journey.ToCity = await _cityDataService.GetCityById(journey.ToCityId); 31 | 32 | savedJourney.Journey = journey; 33 | savedJourney.JourneyId = journey.JourneyId; 34 | } 35 | 36 | return list; 37 | } 38 | 39 | public async Task AddSavedJourney(int userId, int journeyId, int numberOfTravellers) 40 | { 41 | await _savedJourneyRepository.AddSavedJourney(userId, journeyId, numberOfTravellers); 42 | } 43 | } 44 | } -------------------------------------------------------------------------------- /Components/square.androidtimessquare-1.6.5.0/component/Details.md: -------------------------------------------------------------------------------- 1 | # TimesSquare Details 2 | 3 | 6 | 7 | > Standalone Android widget for picking a single date from a calendar view. 8 | 9 | ## Usage 10 | 11 | We can include the `CalendarPickerView` element in out layout resource: 12 | 13 | 17 | 18 | This is a fairly large control so it is wise to give it ample space in our 19 | layout. On small devices it is recommended to use a dialog, full-screen 20 | fragment, or dedicated activity. On larger devices like tablets, displaying 21 | full-screen is not recommended. A fragment occupying part of the layout or 22 | a dialog is a better choice. 23 | 24 | In the `OnCreate` of our activity/dialog or the `OnCreateView` of our fragment, 25 | we initialize the view with a range of valid dates as well as the currently 26 | selected date: 27 | 28 | CalendarPickerView calendar = ... 29 | 30 | var today = DateTime.Now; 31 | var nextYear = today.AddYears(1); 32 | 33 | calendar 34 | .Init(today, nextYear) 35 | .WithSelectedDate(today); 36 | 37 | The default mode of the view is to have one selectable date. 38 | If we want the user to be able to select multiple dates or a date range, we 39 | use the `InMode` method: 40 | 41 | CalendarPickerView calendar = ... 42 | 43 | var today = DateTime.Now; 44 | var nextYear = today.AddYears(1); 45 | 46 | calendar 47 | .Init(today, nextYear) 48 | .InMode(CalendarPickerView.SelectionMode.Range) 49 | .WithSelectedDate(today); 50 | -------------------------------------------------------------------------------- /Components/fmcalendar-1.5.3/samples/FMCalendarSample.iOS/FMCalendarSample.iOS.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 2012 4 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FMCalendarSample.iOS", "FMCalendarSample.iOS.csproj", "{2447E45A-82C1-4F1E-92C4-BFCD88C7A753}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|iPhoneSimulator = Debug|iPhoneSimulator 9 | Release|iPhoneSimulator = Release|iPhoneSimulator 10 | Debug|iPhone = Debug|iPhone 11 | Release|iPhone = Release|iPhone 12 | Ad-Hoc|iPhone = Ad-Hoc|iPhone 13 | AppStore|iPhone = AppStore|iPhone 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {2447E45A-82C1-4F1E-92C4-BFCD88C7A753}.Ad-Hoc|iPhone.ActiveCfg = Ad-Hoc|iPhone 17 | {2447E45A-82C1-4F1E-92C4-BFCD88C7A753}.Ad-Hoc|iPhone.Build.0 = Ad-Hoc|iPhone 18 | {2447E45A-82C1-4F1E-92C4-BFCD88C7A753}.AppStore|iPhone.ActiveCfg = AppStore|iPhone 19 | {2447E45A-82C1-4F1E-92C4-BFCD88C7A753}.AppStore|iPhone.Build.0 = AppStore|iPhone 20 | {2447E45A-82C1-4F1E-92C4-BFCD88C7A753}.Debug|iPhone.ActiveCfg = Debug|iPhone 21 | {2447E45A-82C1-4F1E-92C4-BFCD88C7A753}.Debug|iPhone.Build.0 = Debug|iPhone 22 | {2447E45A-82C1-4F1E-92C4-BFCD88C7A753}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator 23 | {2447E45A-82C1-4F1E-92C4-BFCD88C7A753}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator 24 | {2447E45A-82C1-4F1E-92C4-BFCD88C7A753}.Release|iPhone.ActiveCfg = Release|iPhone 25 | {2447E45A-82C1-4F1E-92C4-BFCD88C7A753}.Release|iPhone.Build.0 = Release|iPhone 26 | {2447E45A-82C1-4F1E-92C4-BFCD88C7A753}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator 27 | {2447E45A-82C1-4F1E-92C4-BFCD88C7A753}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator 28 | EndGlobalSection 29 | GlobalSection(MonoDevelopProperties) = preSolution 30 | StartupItem = FMCalendarSample.iOS.csproj 31 | EndGlobalSection 32 | EndGlobal 33 | -------------------------------------------------------------------------------- /Components/fmcalendar-1.5.3/samples/FMCalendarSample.iOS-Unified/FMCalendarSample.iOS-Unified.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 2012 4 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FMCalendarSample.iOS-Unified", "FMCalendarSample.iOS-Unified.csproj", "{87A1FEE8-05BF-40D6-8882-D5EA94925388}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|iPhoneSimulator = Debug|iPhoneSimulator 9 | Release|iPhoneSimulator = Release|iPhoneSimulator 10 | Debug|iPhone = Debug|iPhone 11 | Release|iPhone = Release|iPhone 12 | Ad-Hoc|iPhone = Ad-Hoc|iPhone 13 | AppStore|iPhone = AppStore|iPhone 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {87A1FEE8-05BF-40D6-8882-D5EA94925388}.Ad-Hoc|iPhone.ActiveCfg = Ad-Hoc|iPhone 17 | {87A1FEE8-05BF-40D6-8882-D5EA94925388}.Ad-Hoc|iPhone.Build.0 = Ad-Hoc|iPhone 18 | {87A1FEE8-05BF-40D6-8882-D5EA94925388}.AppStore|iPhone.ActiveCfg = AppStore|iPhone 19 | {87A1FEE8-05BF-40D6-8882-D5EA94925388}.AppStore|iPhone.Build.0 = AppStore|iPhone 20 | {87A1FEE8-05BF-40D6-8882-D5EA94925388}.Debug|iPhone.ActiveCfg = Debug|iPhone 21 | {87A1FEE8-05BF-40D6-8882-D5EA94925388}.Debug|iPhone.Build.0 = Debug|iPhone 22 | {87A1FEE8-05BF-40D6-8882-D5EA94925388}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator 23 | {87A1FEE8-05BF-40D6-8882-D5EA94925388}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator 24 | {87A1FEE8-05BF-40D6-8882-D5EA94925388}.Release|iPhone.ActiveCfg = Release|iPhone 25 | {87A1FEE8-05BF-40D6-8882-D5EA94925388}.Release|iPhone.Build.0 = Release|iPhone 26 | {87A1FEE8-05BF-40D6-8882-D5EA94925388}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator 27 | {87A1FEE8-05BF-40D6-8882-D5EA94925388}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator 28 | EndGlobalSection 29 | GlobalSection(MonoDevelopProperties) = preSolution 30 | StartupItem = FMCalendarSample.iOS-Unified.csproj 31 | EndGlobalSection 32 | EndGlobal 33 | -------------------------------------------------------------------------------- /MyTrains.Core/ViewModel/MenuViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.ObjectModel; 3 | using MvvmCross.Core.ViewModels; 4 | using MvvmCross.Plugins.Messenger; 5 | using MyTrains.Core.Model.App; 6 | using MyTrains.Core.Utility; 7 | 8 | namespace MyTrains.Core.ViewModel 9 | { 10 | public class MenuViewModel: BaseViewModel 11 | { 12 | public MvxCommand MenuItemSelectCommand => new MvxCommand(OnMenuEntrySelect); 13 | public ObservableCollection MenuItems { get; } 14 | 15 | public event EventHandler CloseMenu; 16 | 17 | public MenuViewModel(IMvxMessenger messenger) : base(messenger) 18 | { 19 | MenuItems = new ObservableCollection(); 20 | CreateMenuItems(); 21 | } 22 | 23 | private void CreateMenuItems() 24 | { 25 | MenuItems.Add(new MenuItem 26 | { 27 | Title = "Search Journey", 28 | ViewModelType = typeof(SearchJourneyViewModel), 29 | Option = MenuOption.SearchJourney, 30 | IsSelected = true 31 | }); 32 | 33 | MenuItems.Add(new MenuItem 34 | { 35 | Title = "My Saved Journeys", 36 | ViewModelType = typeof(SavedJourneysViewModel), 37 | Option = MenuOption.SavedJourneys, 38 | IsSelected = false 39 | }); 40 | 41 | MenuItems.Add(new MenuItem 42 | { 43 | Title = "Settings", 44 | ViewModelType = typeof(SettingsViewModel), 45 | Option = MenuOption.Settings, 46 | IsSelected = false 47 | }); 48 | } 49 | 50 | private void OnMenuEntrySelect(MenuItem item) 51 | { 52 | ShowViewModel(item.ViewModelType); 53 | RaiseCloseMenu(); 54 | } 55 | 56 | private void RaiseCloseMenu() 57 | { 58 | CloseMenu?.Invoke(this, EventArgs.Empty); 59 | } 60 | } 61 | } -------------------------------------------------------------------------------- /MyTrains.iOS/Views/SearchResultView.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using MvvmCross.Binding.BindingContext; 3 | using MyTrains.Core.ViewModel; 4 | using MyTrains.iOS.TableViewSources; 5 | using UIKit; 6 | 7 | namespace MyTrains.iOS.Views 8 | { 9 | public partial class SearchResultView : BaseView 10 | { 11 | SearchResultsTableViewSource _searchResultsTableViewSource; 12 | 13 | public SearchResultView(IntPtr handle) : base(handle) 14 | { 15 | Title = "Search result"; 16 | } 17 | 18 | protected SearchResultViewModel SearchResultViewModel 19 | => ViewModel as SearchResultViewModel; 20 | 21 | public override void DidReceiveMemoryWarning() 22 | { 23 | // Releases the view if it doesn't have a superview. 24 | base.DidReceiveMemoryWarning(); 25 | 26 | // Release any cached data, images, etc that aren't in use. 27 | } 28 | 29 | protected override void CreateBindings() 30 | { 31 | var set = 32 | this.CreateBindingSet(); 33 | 34 | set.Bind(_searchResultsTableViewSource).To(vm => vm.Journeys); 35 | set.Bind(_searchResultsTableViewSource) 36 | .For(source => source.SelectionChangedCommand) 37 | .To(vm => vm.ShowJourneyDetailsCommand); 38 | 39 | set.Apply(); 40 | } 41 | 42 | #region View lifecycle 43 | 44 | public override void ViewDidLoad() 45 | { 46 | _searchResultsTableViewSource = 47 | new SearchResultsTableViewSource(searchResultsTableView); 48 | 49 | base.ViewDidLoad(); 50 | 51 | searchResultsTableView.Source = _searchResultsTableViewSource; 52 | searchResultsTableView.ReloadData(); 53 | } 54 | 55 | public override void ViewWillAppear(bool animated) 56 | { 57 | base.ViewWillAppear(animated); 58 | 59 | SearchResultViewModel.ReloadDataCommand.Execute(); 60 | searchResultsTableView.DeselectRow(searchResultsTableView.IndexPathForSelectedRow, true); 61 | } 62 | 63 | #endregion 64 | } 65 | } -------------------------------------------------------------------------------- /MyTrains.Droid/Resources/layout/SettingsView.axml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 16 | 27 | 36 |