diff --git a/src/TravelMonkey.Android/Resources/Resource.designer.cs b/src/TravelMonkey.Android/Resources/Resource.designer.cs index 5e6cbf4..4eedfe7 100644 --- a/src/TravelMonkey.Android/Resources/Resource.designer.cs +++ b/src/TravelMonkey.Android/Resources/Resource.designer.cs @@ -1,10 +1,11 @@ #pragma warning disable 1591 //------------------------------------------------------------------------------ // -// This code was generated by a tool. +// Este código fue generado por una herramienta. +// Versión de runtime:4.0.30319.42000 // -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. +// Los cambios en este archivo podrían causar un comportamiento incorrecto y se perderán si +// se vuelve a generar el código. // //------------------------------------------------------------------------------ diff --git a/src/TravelMonkey.iOS/TravelMonkey.iOS.csproj b/src/TravelMonkey.iOS/TravelMonkey.iOS.csproj index 479887f..3fd599a 100644 --- a/src/TravelMonkey.iOS/TravelMonkey.iOS.csproj +++ b/src/TravelMonkey.iOS/TravelMonkey.iOS.csproj @@ -75,24 +75,60 @@ false - - - - - - - - - - - - - - - - - - + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + diff --git a/src/TravelMonkey.sln b/src/TravelMonkey.sln index 222f516..10d910a 100644 --- a/src/TravelMonkey.sln +++ b/src/TravelMonkey.sln @@ -1,57 +1,65 @@ - Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30011.22 +MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TravelMonkey.Android", "TravelMonkey.Android\TravelMonkey.Android.csproj", "{A06A377B-F901-4238-88BD-A92726C715C2}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TravelMonkey.iOS", "TravelMonkey.iOS\TravelMonkey.iOS.csproj", "{8C00CCB8-214B-4B88-8042-4C8D31284CD3}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TravelMonkey", "TravelMonkey\TravelMonkey.csproj", "{04991790-FBB2-415A-9531-268B4193DB3E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TravelMonkey", "TravelMonkey\TravelMonkey.csproj", "{04991790-FBB2-415A-9531-268B4193DB3E}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - Debug|iPhoneSimulator = Debug|iPhoneSimulator - Release|iPhoneSimulator = Release|iPhoneSimulator Debug|iPhone = Debug|iPhone + Debug|iPhoneSimulator = Debug|iPhoneSimulator + Release|Any CPU = Release|Any CPU Release|iPhone = Release|iPhone + Release|iPhoneSimulator = Release|iPhoneSimulator EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {A06A377B-F901-4238-88BD-A92726C715C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A06A377B-F901-4238-88BD-A92726C715C2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A06A377B-F901-4238-88BD-A92726C715C2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A06A377B-F901-4238-88BD-A92726C715C2}.Release|Any CPU.Build.0 = Release|Any CPU - {A06A377B-F901-4238-88BD-A92726C715C2}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {A06A377B-F901-4238-88BD-A92726C715C2}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {A06A377B-F901-4238-88BD-A92726C715C2}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {A06A377B-F901-4238-88BD-A92726C715C2}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {A06A377B-F901-4238-88BD-A92726C715C2}.Debug|Any CPU.Deploy.0 = Debug|Any CPU {A06A377B-F901-4238-88BD-A92726C715C2}.Debug|iPhone.ActiveCfg = Debug|Any CPU {A06A377B-F901-4238-88BD-A92726C715C2}.Debug|iPhone.Build.0 = Debug|Any CPU + {A06A377B-F901-4238-88BD-A92726C715C2}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {A06A377B-F901-4238-88BD-A92726C715C2}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {A06A377B-F901-4238-88BD-A92726C715C2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A06A377B-F901-4238-88BD-A92726C715C2}.Release|Any CPU.Build.0 = Release|Any CPU {A06A377B-F901-4238-88BD-A92726C715C2}.Release|iPhone.ActiveCfg = Release|Any CPU {A06A377B-F901-4238-88BD-A92726C715C2}.Release|iPhone.Build.0 = Release|Any CPU + {A06A377B-F901-4238-88BD-A92726C715C2}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {A06A377B-F901-4238-88BD-A92726C715C2}.Release|iPhoneSimulator.Build.0 = Release|Any CPU {8C00CCB8-214B-4B88-8042-4C8D31284CD3}.Debug|Any CPU.ActiveCfg = Debug|iPhoneSimulator {8C00CCB8-214B-4B88-8042-4C8D31284CD3}.Debug|Any CPU.Build.0 = Debug|iPhoneSimulator - {8C00CCB8-214B-4B88-8042-4C8D31284CD3}.Release|Any CPU.ActiveCfg = Release|iPhoneSimulator - {8C00CCB8-214B-4B88-8042-4C8D31284CD3}.Release|Any CPU.Build.0 = Release|iPhoneSimulator - {8C00CCB8-214B-4B88-8042-4C8D31284CD3}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator - {8C00CCB8-214B-4B88-8042-4C8D31284CD3}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator - {8C00CCB8-214B-4B88-8042-4C8D31284CD3}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator - {8C00CCB8-214B-4B88-8042-4C8D31284CD3}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator {8C00CCB8-214B-4B88-8042-4C8D31284CD3}.Debug|iPhone.ActiveCfg = Debug|iPhone {8C00CCB8-214B-4B88-8042-4C8D31284CD3}.Debug|iPhone.Build.0 = Debug|iPhone + {8C00CCB8-214B-4B88-8042-4C8D31284CD3}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator + {8C00CCB8-214B-4B88-8042-4C8D31284CD3}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator + {8C00CCB8-214B-4B88-8042-4C8D31284CD3}.Release|Any CPU.ActiveCfg = Release|iPhoneSimulator + {8C00CCB8-214B-4B88-8042-4C8D31284CD3}.Release|Any CPU.Build.0 = Release|iPhoneSimulator {8C00CCB8-214B-4B88-8042-4C8D31284CD3}.Release|iPhone.ActiveCfg = Release|iPhone {8C00CCB8-214B-4B88-8042-4C8D31284CD3}.Release|iPhone.Build.0 = Release|iPhone + {8C00CCB8-214B-4B88-8042-4C8D31284CD3}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator + {8C00CCB8-214B-4B88-8042-4C8D31284CD3}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator {04991790-FBB2-415A-9531-268B4193DB3E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {04991790-FBB2-415A-9531-268B4193DB3E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {04991790-FBB2-415A-9531-268B4193DB3E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {04991790-FBB2-415A-9531-268B4193DB3E}.Release|Any CPU.Build.0 = Release|Any CPU - {04991790-FBB2-415A-9531-268B4193DB3E}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {04991790-FBB2-415A-9531-268B4193DB3E}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {04991790-FBB2-415A-9531-268B4193DB3E}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {04991790-FBB2-415A-9531-268B4193DB3E}.Release|iPhoneSimulator.Build.0 = Release|Any CPU {04991790-FBB2-415A-9531-268B4193DB3E}.Debug|iPhone.ActiveCfg = Debug|Any CPU {04991790-FBB2-415A-9531-268B4193DB3E}.Debug|iPhone.Build.0 = Debug|Any CPU + {04991790-FBB2-415A-9531-268B4193DB3E}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {04991790-FBB2-415A-9531-268B4193DB3E}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {04991790-FBB2-415A-9531-268B4193DB3E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {04991790-FBB2-415A-9531-268B4193DB3E}.Release|Any CPU.Build.0 = Release|Any CPU {04991790-FBB2-415A-9531-268B4193DB3E}.Release|iPhone.ActiveCfg = Release|Any CPU {04991790-FBB2-415A-9531-268B4193DB3E}.Release|iPhone.Build.0 = Release|Any CPU + {04991790-FBB2-415A-9531-268B4193DB3E}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {04991790-FBB2-415A-9531-268B4193DB3E}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {22BAEAC3-A8AD-42DE-B6AD-67ABEC0D42B8} EndGlobalSection EndGlobal diff --git a/src/TravelMonkey/Models/OldSearchs.cs b/src/TravelMonkey/Models/OldSearchs.cs new file mode 100644 index 0000000..b1dce74 --- /dev/null +++ b/src/TravelMonkey/Models/OldSearchs.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace TravelMonkey.Models +{ + public class OldSearchs + { + public string Phrase { get; set; } + public Dictionary Resultados { get; set; } + } +} diff --git a/src/TravelMonkey/Services/DataTranslationsService.cs b/src/TravelMonkey/Services/DataTranslationsService.cs new file mode 100644 index 0000000..232b9e8 --- /dev/null +++ b/src/TravelMonkey/Services/DataTranslationsService.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Text; +using TravelMonkey.Models; + +namespace TravelMonkey.Services +{ + internal class DataTranslationsService + { + static DataTranslationsService item; + public static DataTranslationsService Instance + { + get + { + if (item == null) + { + item = new DataTranslationsService(); + } + return item; + } + } + public List Listado = new List(); + public void Add(string phrase, Dictionary results) + { + try + { + Listado.Add(new OldSearchs() + { + Phrase = phrase, + Resultados = results + }); + } + catch (Exception) + { + + } + } + } +} diff --git a/src/TravelMonkey/TravelMonkey.csproj b/src/TravelMonkey/TravelMonkey.csproj index de0691b..6c7964f 100644 --- a/src/TravelMonkey/TravelMonkey.csproj +++ b/src/TravelMonkey/TravelMonkey.csproj @@ -22,11 +22,7 @@ - - - - @@ -50,5 +46,8 @@ MainPage.xaml Code + + OldTranslationsPage.xaml + \ No newline at end of file diff --git a/src/TravelMonkey/ViewModels/MainPageViewModel.cs b/src/TravelMonkey/ViewModels/MainPageViewModel.cs index 187ec60..35170e0 100644 --- a/src/TravelMonkey/ViewModels/MainPageViewModel.cs +++ b/src/TravelMonkey/ViewModels/MainPageViewModel.cs @@ -1,8 +1,11 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.Collections.ObjectModel; using System.Timers; +using System.Windows.Input; using TravelMonkey.Data; using TravelMonkey.Models; +using TravelMonkey.Views; using Xamarin.Essentials; using Xamarin.Forms; @@ -33,6 +36,7 @@ public Destination CurrentDestination }); }); + public ICommand BTgoLastSearchs { get; } public MainPageViewModel() { if (Destinations.Count > 0) @@ -49,6 +53,12 @@ public MainPageViewModel() CurrentDestination = Destinations[currentIdx + 1]; }; } + BTgoLastSearchs = new Command(()=>GoLast()); + } + + private void GoLast() + { + App.Current.MainPage.Navigation.PushModalAsync(new OldTranslationsPage()); } public void StartSlideShow() diff --git a/src/TravelMonkey/ViewModels/OldTranslationsViewModel.cs b/src/TravelMonkey/ViewModels/OldTranslationsViewModel.cs new file mode 100644 index 0000000..9bae4df --- /dev/null +++ b/src/TravelMonkey/ViewModels/OldTranslationsViewModel.cs @@ -0,0 +1,44 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq.Expressions; +using System.Net.Http.Headers; +using System.Windows.Input; +using TravelMonkey.Models; +using TravelMonkey.Services; +using TravelMonkey.Views; +using Xamarin.Forms; + +namespace TravelMonkey.ViewModels +{ + public class OldTranslationsViewModel : BaseViewModel + { + private string _inputText; + private List _searchs; + + public List Searchs + { + get => _searchs; + set + { + Set(ref _searchs, value); + } + } + public ICommand BTGo { get; } + public OldTranslationsViewModel() + { + BTGo = new Command(dat => Goto(dat)); + } + internal void Refresh() + { + Searchs = DataTranslationsService.Instance.Listado; + } + + internal async void Goto(object dat) + { + OldSearchs item = dat as OldSearchs; + if (item == null) return; + await App.Current.MainPage.Navigation.PushModalAsync(new TranslationResultPage(item.Phrase)); + } + } +} \ No newline at end of file diff --git a/src/TravelMonkey/ViewModels/TranslateResultPageViewModel.cs b/src/TravelMonkey/ViewModels/TranslateResultPageViewModel.cs index 137b899..0e67dc0 100644 --- a/src/TravelMonkey/ViewModels/TranslateResultPageViewModel.cs +++ b/src/TravelMonkey/ViewModels/TranslateResultPageViewModel.cs @@ -1,53 +1,75 @@ using System.Collections.Generic; -using TravelMonkey.Services; -using Xamarin.Forms; - -namespace TravelMonkey.ViewModels -{ - public class TranslateResultPageViewModel : BaseViewModel - { - private readonly TranslationService _translationService = - new TranslationService(); - - private string _inputText; - private Dictionary _translations; - - public string InputText - { - get => _inputText; - set - { - if (_inputText == value) - return; - - Set(ref _inputText, value); - - TranslateText(); - } - } - - public Dictionary Translations - { - get => _translations; - set - { - Set(ref _translations, value); - } - } - - public Command TranslateTextCommand => new Command((inputText) => - { - InputText = inputText; - }); - - private async void TranslateText() - { - var result = await _translationService.TranslateText(_inputText); - - if (!result.Succeeded) - MessagingCenter.Send(this, Constants.TranslationFailedMessage); - - Translations = result.Translations; - } - } +using TravelMonkey.Models; +using TravelMonkey.Services; +using Xamarin.Forms; + +namespace TravelMonkey.ViewModels +{ + public class TranslateResultPageViewModel : BaseViewModel + { + private readonly TranslationService _translationService = + new TranslationService(); + + private string _inputText; + private Dictionary _translations; + + public string InputText + { + get => _inputText; + set + { + if (_inputText == value) + return; + + Set(ref _inputText, value); + + TranslateText(); + } + } + + public Dictionary Translations + { + get => _translations; + set + { + Set(ref _translations, value); + } + } + + public Command TranslateTextCommand => new Command((inputText) => + { + InputText = inputText; + }); + + private async void TranslateText() + { + OldSearchs old = null; + foreach(var item in DataTranslationsService.Instance.Listado) + { + if (item.Phrase.Equals(_inputText)) + { + old = item; + break; + } + } + if (old == null) + { + var result = await _translationService.TranslateText(_inputText); + + if (!result.Succeeded) + { + MessagingCenter.Send(this, Constants.TranslationFailedMessage); + } + else + { + DataTranslationsService.Instance.Add(_inputText, result.Translations); + } + Translations = result.Translations; + } + else + { + Translations = old.Resultados; + } + } + } } \ No newline at end of file diff --git a/src/TravelMonkey/Views/MainPage.xaml b/src/TravelMonkey/Views/MainPage.xaml index ee8eb69..53cbaea 100644 --- a/src/TravelMonkey/Views/MainPage.xaml +++ b/src/TravelMonkey/Views/MainPage.xaml @@ -42,10 +42,17 @@ - - - diff --git a/src/TravelMonkey/Views/OldTranslationsPage.xaml b/src/TravelMonkey/Views/OldTranslationsPage.xaml new file mode 100644 index 0000000..25cf3f4 --- /dev/null +++ b/src/TravelMonkey/Views/OldTranslationsPage.xaml @@ -0,0 +1,39 @@ + + + + + + + + + + + +