diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/Base/ViewModelLocator.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/Base/ViewModelLocator.cs index 7e35f6c77..f30f2b18e 100755 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/Base/ViewModelLocator.cs +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/Base/ViewModelLocator.cs @@ -49,6 +49,7 @@ namespace eShopOnContainers.Core.ViewModels.Base builder.RegisterType(); builder.RegisterType(); builder.RegisterType(); + builder.RegisterType(); // Services builder.RegisterType().As().SingleInstance(); diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/CampaignDetailsViewModel.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/CampaignDetailsViewModel.cs new file mode 100644 index 000000000..c38a89375 --- /dev/null +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/CampaignDetailsViewModel.cs @@ -0,0 +1,99 @@ +using System; + +namespace eShopOnContainers.Core.ViewModels +{ + using System.Threading.Tasks; + using System.Windows.Input; + using eShopOnContainers.Core.Helpers; + using Xamarin.Forms; + using Models.Marketing; + using Services.Marketing; + using Base; + + public class CampaignDetailsViewModel : ViewModelBase + { + private CampaignItem _campaign; + private readonly ICampaignService _campaignService; + private string _campaignAvailability; + + + public CampaignDetailsViewModel(ICampaignService campaignService) + { + _campaignService = campaignService; + } + + public CampaignItem Campaign + { + get => _campaign; + set + { + _campaign = value; + RaisePropertyChanged(() => Campaign); + } + } + + public string Name + { + get => _campaign.Name; + set + { + _campaign.Name = value; + RaisePropertyChanged(() => Name); + } + } + + public string Description + { + get => _campaign.Description; + set + { + _campaign.Description = value; + RaisePropertyChanged(() => Description); + } + } + + public string PictureUri + { + get => _campaign.PictureUri; + set + { + _campaign.PictureUri = value; + RaisePropertyChanged(() => PictureUri); + } + } + + public string From + { + get => _campaign.From.ToString("MMMM dd, yyyy"); + } + + public string To + { + get => _campaign.To.ToString("MMMM dd, yyyy"); + } + + //public string CampaignAvailability + //{ + // get => $"{_campaign.From:MMMM dd, yyyy} until {_campaign.To:MMMM dd, yyyy}"; + // set + // { + // _campaignAvailability = value; + // RaisePropertyChanged(() => CampaignAvailability); + // } + //} + + + public override async Task InitializeAsync(object navigationData) + { + if (navigationData is int) + { + IsBusy = true; + + // Get campaign by id + Campaign = await _campaignService.GetCampaignByIdAsync((int) navigationData, Settings.AuthAccessToken); + + IsBusy = false; + } + } + } +} \ No newline at end of file diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/CampaignDetailsView.xaml b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/CampaignDetailsView.xaml new file mode 100644 index 000000000..d996f698b --- /dev/null +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/CampaignDetailsView.xaml @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/CampaignDetailsView.xaml.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/CampaignDetailsView.xaml.cs new file mode 100644 index 000000000..f76a904c0 --- /dev/null +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/CampaignDetailsView.xaml.cs @@ -0,0 +1,12 @@ +using Xamarin.Forms; + +namespace eShopOnContainers.Core.Views +{ + public partial class CampaignDetailsView : ContentPage + { + public CampaignDetailsView() + { + InitializeComponent(); + } + } +}