OrderDetail mobile apps view
This commit is contained in:
parent
068eb3bed9
commit
6ee3659f2c
@ -54,6 +54,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.iOS", "sr
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.Windows", "src\Mobile\eShopOnContainers\eShopOnContainers.Windows\eShopOnContainers.Windows.csproj", "{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.Windows", "src\Mobile\eShopOnContainers\eShopOnContainers.Windows\eShopOnContainers.Windows.csproj", "{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Shared Code", "Shared Code", "{778289CA-31F7-4464-8C2A-612EE846F8A7}"
|
||||||
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Targets", "Targets", "{9CC7814B-72A6-465B-A61C-57B512DEE303}"
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Ad-Hoc|Any CPU = Ad-Hoc|Any CPU
|
Ad-Hoc|Any CPU = Ad-Hoc|Any CPU
|
||||||
@ -523,9 +527,11 @@ Global
|
|||||||
{48FC45C5-223F-4B59-AC77-6CBB1C561E85} = {932D8224-11F6-4D07-B109-DA28AD288A63}
|
{48FC45C5-223F-4B59-AC77-6CBB1C561E85} = {932D8224-11F6-4D07-B109-DA28AD288A63}
|
||||||
{C10C7B69-CE4F-4167-928E-33B7FA1DFFC7} = {48FC45C5-223F-4B59-AC77-6CBB1C561E85}
|
{C10C7B69-CE4F-4167-928E-33B7FA1DFFC7} = {48FC45C5-223F-4B59-AC77-6CBB1C561E85}
|
||||||
{F0333D8E-0B27-42B7-B2C6-78F3657624E2} = {E279BF0F-7F66-4F3A-A3AB-2CDA66C1CD04}
|
{F0333D8E-0B27-42B7-B2C6-78F3657624E2} = {E279BF0F-7F66-4F3A-A3AB-2CDA66C1CD04}
|
||||||
{65116D1C-145B-4693-ABDA-F0FB6F425191} = {F61357CE-1CC2-410E-8776-B16EEBC98EB8}
|
{65116D1C-145B-4693-ABDA-F0FB6F425191} = {778289CA-31F7-4464-8C2A-612EE846F8A7}
|
||||||
{62DBB163-9CA9-4818-B48B-13233DF37C24} = {F61357CE-1CC2-410E-8776-B16EEBC98EB8}
|
{62DBB163-9CA9-4818-B48B-13233DF37C24} = {9CC7814B-72A6-465B-A61C-57B512DEE303}
|
||||||
{6EEB23DC-7063-4444-9AF8-90DF24F549C0} = {F61357CE-1CC2-410E-8776-B16EEBC98EB8}
|
{6EEB23DC-7063-4444-9AF8-90DF24F549C0} = {9CC7814B-72A6-465B-A61C-57B512DEE303}
|
||||||
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B} = {F61357CE-1CC2-410E-8776-B16EEBC98EB8}
|
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B} = {9CC7814B-72A6-465B-A61C-57B512DEE303}
|
||||||
|
{778289CA-31F7-4464-8C2A-612EE846F8A7} = {F61357CE-1CC2-410E-8776-B16EEBC98EB8}
|
||||||
|
{9CC7814B-72A6-465B-A61C-57B512DEE303} = {F61357CE-1CC2-410E-8776-B16EEBC98EB8}
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
EndGlobal
|
EndGlobal
|
||||||
|
@ -11,6 +11,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.Core", "e
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.Windows", "eShopOnContainers\eShopOnContainers.Windows\eShopOnContainers.Windows.csproj", "{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "eShopOnContainers.Windows", "eShopOnContainers\eShopOnContainers.Windows\eShopOnContainers.Windows.csproj", "{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Shared Code", "Shared Code", "{65D002E7-E869-491C-ABA8-9650CEAF677A}"
|
||||||
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Targets", "Targets", "{8F848898-6B21-4905-AE2E-B3ABDEDA1963}"
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Ad-Hoc|Any CPU = Ad-Hoc|Any CPU
|
Ad-Hoc|Any CPU = Ad-Hoc|Any CPU
|
||||||
@ -258,4 +262,10 @@ Global
|
|||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
|
GlobalSection(NestedProjects) = preSolution
|
||||||
|
{62DBB163-9CA9-4818-B48B-13233DF37C24} = {8F848898-6B21-4905-AE2E-B3ABDEDA1963}
|
||||||
|
{6EEB23DC-7063-4444-9AF8-90DF24F549C0} = {8F848898-6B21-4905-AE2E-B3ABDEDA1963}
|
||||||
|
{65116D1C-145B-4693-ABDA-F0FB6F425191} = {65D002E7-E869-491C-ABA8-9650CEAF677A}
|
||||||
|
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B} = {8F848898-6B21-4905-AE2E-B3ABDEDA1963}
|
||||||
|
EndGlobalSection
|
||||||
EndGlobal
|
EndGlobal
|
||||||
|
@ -100,6 +100,8 @@
|
|||||||
<!-- CONVERTERS -->
|
<!-- CONVERTERS -->
|
||||||
<converters:ToUpperConverter x:Key="ToUpperConverter" />
|
<converters:ToUpperConverter x:Key="ToUpperConverter" />
|
||||||
<converters:DatetimeConverter x:Key="DatetimeConverter" />
|
<converters:DatetimeConverter x:Key="DatetimeConverter" />
|
||||||
|
<converters:ItemTappedEventArgsConverter x:Key="ItemTappedEventArgsConverter" />
|
||||||
|
|
||||||
<!-- STYLES -->
|
<!-- STYLES -->
|
||||||
<Style x:Key="EntryStyle"
|
<Style x:Key="EntryStyle"
|
||||||
TargetType="{x:Type Entry}">
|
TargetType="{x:Type Entry}">
|
||||||
|
@ -0,0 +1,38 @@
|
|||||||
|
using System;
|
||||||
|
using Xamarin.Forms;
|
||||||
|
|
||||||
|
namespace eShopOnContainers.Core.Behaviors.Base
|
||||||
|
{
|
||||||
|
public class BindableBehavior<T> : Behavior<T> where T : BindableObject
|
||||||
|
{
|
||||||
|
public T AssociatedObject { get; private set; }
|
||||||
|
|
||||||
|
protected override void OnAttachedTo(T visualElement)
|
||||||
|
{
|
||||||
|
base.OnAttachedTo(visualElement);
|
||||||
|
|
||||||
|
AssociatedObject = visualElement;
|
||||||
|
|
||||||
|
if (visualElement.BindingContext != null)
|
||||||
|
BindingContext = visualElement.BindingContext;
|
||||||
|
|
||||||
|
visualElement.BindingContextChanged += OnBindingContextChanged;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnBindingContextChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
OnBindingContextChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnDetachingFrom(T view)
|
||||||
|
{
|
||||||
|
view.BindingContextChanged -= OnBindingContextChanged;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnBindingContextChanged()
|
||||||
|
{
|
||||||
|
base.OnBindingContextChanged();
|
||||||
|
BindingContext = AssociatedObject.BindingContext;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,134 @@
|
|||||||
|
using eShopOnContainers.Core.Behaviors.Base;
|
||||||
|
using System;
|
||||||
|
using System.Globalization;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Linq.Expressions;
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Windows.Input;
|
||||||
|
using Xamarin.Forms;
|
||||||
|
|
||||||
|
namespace eShopOnContainers.Core.Behaviors
|
||||||
|
{
|
||||||
|
public class EventToCommandBehavior : BindableBehavior<View>
|
||||||
|
{
|
||||||
|
public static BindableProperty EventNameProperty =
|
||||||
|
BindableProperty.CreateAttached("EventName", typeof(string), typeof(EventToCommandBehavior), null,
|
||||||
|
BindingMode.OneWay);
|
||||||
|
|
||||||
|
public static BindableProperty CommandProperty =
|
||||||
|
BindableProperty.CreateAttached("Command", typeof(ICommand), typeof(EventToCommandBehavior), null,
|
||||||
|
BindingMode.OneWay);
|
||||||
|
|
||||||
|
public static BindableProperty CommandParameterProperty =
|
||||||
|
BindableProperty.CreateAttached("CommandParameter", typeof(object), typeof(EventToCommandBehavior), null,
|
||||||
|
BindingMode.OneWay);
|
||||||
|
|
||||||
|
public static BindableProperty EventArgsConverterProperty =
|
||||||
|
BindableProperty.CreateAttached("EventArgsConverter", typeof(IValueConverter), typeof(EventToCommandBehavior), null,
|
||||||
|
BindingMode.OneWay);
|
||||||
|
|
||||||
|
public static BindableProperty EventArgsConverterParameterProperty =
|
||||||
|
BindableProperty.CreateAttached("EventArgsConverterParameter", typeof(object), typeof(EventToCommandBehavior), null,
|
||||||
|
BindingMode.OneWay);
|
||||||
|
|
||||||
|
private Delegate _handler;
|
||||||
|
private EventInfo _eventInfo;
|
||||||
|
|
||||||
|
public string EventName
|
||||||
|
{
|
||||||
|
get { return (string)GetValue(EventNameProperty); }
|
||||||
|
set { SetValue(EventNameProperty, value); }
|
||||||
|
}
|
||||||
|
|
||||||
|
public ICommand Command
|
||||||
|
{
|
||||||
|
get { return (ICommand)GetValue(CommandProperty); }
|
||||||
|
set { SetValue(CommandProperty, value); }
|
||||||
|
}
|
||||||
|
|
||||||
|
public object CommandParameter
|
||||||
|
{
|
||||||
|
get { return GetValue(CommandParameterProperty); }
|
||||||
|
set { SetValue(CommandParameterProperty, value); }
|
||||||
|
}
|
||||||
|
|
||||||
|
public IValueConverter EventArgsConverter
|
||||||
|
{
|
||||||
|
get { return (IValueConverter)GetValue(EventArgsConverterProperty); }
|
||||||
|
set { SetValue(EventArgsConverterProperty, value); }
|
||||||
|
}
|
||||||
|
|
||||||
|
public object EventArgsConverterParameter
|
||||||
|
{
|
||||||
|
get { return GetValue(EventArgsConverterParameterProperty); }
|
||||||
|
set { SetValue(EventArgsConverterParameterProperty, value); }
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnAttachedTo(View visualElement)
|
||||||
|
{
|
||||||
|
base.OnAttachedTo(visualElement);
|
||||||
|
|
||||||
|
var events = AssociatedObject.GetType().GetRuntimeEvents().ToArray();
|
||||||
|
if (events.Any())
|
||||||
|
{
|
||||||
|
_eventInfo = events.FirstOrDefault(e => e.Name == EventName);
|
||||||
|
if (_eventInfo == null)
|
||||||
|
throw new ArgumentException(String.Format("EventToCommand: Can't find any event named '{0}' on attached type", EventName));
|
||||||
|
|
||||||
|
AddEventHandler(_eventInfo, AssociatedObject, OnFired);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnDetachingFrom(View view)
|
||||||
|
{
|
||||||
|
if (_handler != null)
|
||||||
|
_eventInfo.RemoveEventHandler(AssociatedObject, _handler);
|
||||||
|
|
||||||
|
base.OnDetachingFrom(view);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void AddEventHandler(EventInfo eventInfo, object item, Action<object, EventArgs> action)
|
||||||
|
{
|
||||||
|
var eventParameters = eventInfo.EventHandlerType
|
||||||
|
.GetRuntimeMethods().First(m => m.Name == "Invoke")
|
||||||
|
.GetParameters()
|
||||||
|
.Select(p => Expression.Parameter(p.ParameterType))
|
||||||
|
.ToArray();
|
||||||
|
|
||||||
|
var actionInvoke = action.GetType()
|
||||||
|
.GetRuntimeMethods().First(m => m.Name == "Invoke");
|
||||||
|
|
||||||
|
_handler = Expression.Lambda(
|
||||||
|
eventInfo.EventHandlerType,
|
||||||
|
Expression.Call(Expression.Constant(action), actionInvoke, eventParameters[0], eventParameters[1]),
|
||||||
|
eventParameters
|
||||||
|
)
|
||||||
|
.Compile();
|
||||||
|
|
||||||
|
eventInfo.AddEventHandler(item, _handler);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnFired(object sender, EventArgs eventArgs)
|
||||||
|
{
|
||||||
|
if (Command == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var parameter = CommandParameter;
|
||||||
|
|
||||||
|
if (eventArgs != null && eventArgs != EventArgs.Empty)
|
||||||
|
{
|
||||||
|
parameter = eventArgs;
|
||||||
|
|
||||||
|
if (EventArgsConverter != null)
|
||||||
|
{
|
||||||
|
parameter = EventArgsConverter.Convert(eventArgs, typeof(object), EventArgsConverterParameter, CultureInfo.CurrentUICulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Command.CanExecute(parameter))
|
||||||
|
{
|
||||||
|
Command.Execute(parameter);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,23 @@
|
|||||||
|
using System;
|
||||||
|
using System.Globalization;
|
||||||
|
using Xamarin.Forms;
|
||||||
|
|
||||||
|
namespace eShopOnContainers.Core.Converters
|
||||||
|
{
|
||||||
|
public class ItemTappedEventArgsConverter : IValueConverter
|
||||||
|
{
|
||||||
|
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||||
|
{
|
||||||
|
var eventArgs = value as ItemTappedEventArgs;
|
||||||
|
if (eventArgs == null)
|
||||||
|
throw new ArgumentException("Expected TappedEventArgs as value", "value");
|
||||||
|
|
||||||
|
return eventArgs.Item;
|
||||||
|
}
|
||||||
|
|
||||||
|
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,13 @@
|
|||||||
|
using System;
|
||||||
|
|
||||||
|
namespace eShopOnContainers.Core.Models.Catalog
|
||||||
|
{
|
||||||
|
public class CatalogItem
|
||||||
|
{
|
||||||
|
public int Id { get; set; }
|
||||||
|
public string Name { get; set; }
|
||||||
|
public string Description { get; set; }
|
||||||
|
public decimal Price { get; set; }
|
||||||
|
public string Image { get; set; }
|
||||||
|
}
|
||||||
|
}
|
@ -1,12 +1,21 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace eShopOnContainers.Core.Models.Orders
|
namespace eShopOnContainers.Core.Models.Orders
|
||||||
{
|
{
|
||||||
public class Order
|
public class Order
|
||||||
{
|
{
|
||||||
public long OrderNumber { get; set; }
|
public int SequenceNumber { get; set; }
|
||||||
public double Total { get; set; }
|
public double Total { get; set; }
|
||||||
public DateTime Date { get; set; }
|
public DateTime OrderDate { get; set; }
|
||||||
public OrderStatus Status { get; set; }
|
public OrderStatus Status { get; set; }
|
||||||
|
public User.User ShippingAddress { get; set; }
|
||||||
|
public int BuyerId { get; set; }
|
||||||
|
public List<OrderItem> OrderItems { get; set; }
|
||||||
|
|
||||||
|
public string OrderNumber
|
||||||
|
{
|
||||||
|
get { return string.Format("{0}/{1}-{2}", OrderDate.Year, OrderDate.Month, SequenceNumber); }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -0,0 +1,20 @@
|
|||||||
|
using System;
|
||||||
|
|
||||||
|
namespace eShopOnContainers.Core.Models.Orders
|
||||||
|
{
|
||||||
|
public class OrderItem
|
||||||
|
{
|
||||||
|
public int ProductId { get; set; }
|
||||||
|
public Guid OrderId { get; set; }
|
||||||
|
public string ProductName { get; set; }
|
||||||
|
public decimal UnitPrice { get; set; }
|
||||||
|
public int Quantity { get; set; }
|
||||||
|
public decimal Discount { get; set; }
|
||||||
|
public decimal Total { get { return Quantity * UnitPrice; } }
|
||||||
|
|
||||||
|
public override string ToString()
|
||||||
|
{
|
||||||
|
return String.Format("Product Id: {0}, Quantity: {1}", ProductId, Quantity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,9 +0,0 @@
|
|||||||
namespace eShopOnContainers.Core.Models.Products
|
|
||||||
{
|
|
||||||
public class Product
|
|
||||||
{
|
|
||||||
public string Name { get; set; }
|
|
||||||
public string Image { get; set; }
|
|
||||||
public double Price { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
@ -0,0 +1,22 @@
|
|||||||
|
namespace eShopOnContainers.Core.Models.User
|
||||||
|
{
|
||||||
|
public class User
|
||||||
|
{
|
||||||
|
public string Name { get; set; }
|
||||||
|
public string LastName { get; set; }
|
||||||
|
public string CardNumber { get; set; }
|
||||||
|
public string SecurityNumber { get; set; }
|
||||||
|
public string Expiration { get; set; }
|
||||||
|
public string CardHolderName { get; set; }
|
||||||
|
public int CardType { get; set; }
|
||||||
|
public string Street { get; set; }
|
||||||
|
public string City { get; set; }
|
||||||
|
public string State { get; set; }
|
||||||
|
public string StateCode { get; set; }
|
||||||
|
public string Country { get; set; }
|
||||||
|
public string CountryCode { get; set; }
|
||||||
|
public string ZipCode { get; set; }
|
||||||
|
public double Latitude { get; set; }
|
||||||
|
public double Longitude { get; set; }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,23 @@
|
|||||||
|
using eShopOnContainers.Core.Models.Catalog;
|
||||||
|
using System;
|
||||||
|
using System.Collections.ObjectModel;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Xamarin.Forms;
|
||||||
|
|
||||||
|
namespace eShopOnContainers.Core.Services.Catalog
|
||||||
|
{
|
||||||
|
public class CatalogMockService : ICatalogService
|
||||||
|
{
|
||||||
|
public async Task<ObservableCollection<CatalogItem>> GetProductsAsync()
|
||||||
|
{
|
||||||
|
await Task.Delay(500);
|
||||||
|
|
||||||
|
return new ObservableCollection<CatalogItem>
|
||||||
|
{
|
||||||
|
new CatalogItem { Id = 1, Image = Device.OS != TargetPlatform.Windows ? "fake_product_01" : "Assets/fake_product_01.png", Name = ".NET Bot Blue Sweatshirt (M)", Price = 19.50M },
|
||||||
|
new CatalogItem { Id = 2, Image = Device.OS != TargetPlatform.Windows ? "fake_product_02": "Assets/fake_product_02.png", Name = ".NET Bot Purple Sweatshirt (M)", Price = 19.50M },
|
||||||
|
new CatalogItem { Id = 3, Image = Device.OS != TargetPlatform.Windows ? "fake_product_03": "Assets/fake_product_03.png", Name = ".NET Bot Black Sweatshirt (M)", Price = 19.95M }
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
using eShopOnContainers.Core.Models.Catalog;
|
||||||
|
using System.Collections.ObjectModel;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace eShopOnContainers.Core.Services.Catalog
|
||||||
|
{
|
||||||
|
public interface ICatalogService
|
||||||
|
{
|
||||||
|
Task<ObservableCollection<CatalogItem>> GetProductsAsync();
|
||||||
|
}
|
||||||
|
}
|
@ -152,7 +152,6 @@ namespace eShopOnContainers.Services
|
|||||||
_mappings.Add(typeof(LoginViewModel), typeof(LoginView));
|
_mappings.Add(typeof(LoginViewModel), typeof(LoginView));
|
||||||
_mappings.Add(typeof(MainViewModel), typeof(MainView));
|
_mappings.Add(typeof(MainViewModel), typeof(MainView));
|
||||||
_mappings.Add(typeof(OrderDetailViewModel), typeof(OrderDetailView));
|
_mappings.Add(typeof(OrderDetailViewModel), typeof(OrderDetailView));
|
||||||
_mappings.Add(typeof(OrdersViewModel), typeof(OrdersView));
|
|
||||||
_mappings.Add(typeof(ProfileViewModel), typeof(ProfileView));
|
_mappings.Add(typeof(ProfileViewModel), typeof(ProfileView));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,29 +0,0 @@
|
|||||||
using eShopOnContainers.Core.Models.Orders;
|
|
||||||
using System;
|
|
||||||
using System.Collections.ObjectModel;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace eShopOnContainers.Core.Services.Orders
|
|
||||||
{
|
|
||||||
public class FakeOrdersService : IOrdersService
|
|
||||||
{
|
|
||||||
public async Task<ObservableCollection<Order>> GetOrdersAsync()
|
|
||||||
{
|
|
||||||
await Task.Delay(500);
|
|
||||||
|
|
||||||
return new ObservableCollection<Order>
|
|
||||||
{
|
|
||||||
new Order { OrderNumber = 0123456789, Total = 45.30, Date = DateTime.Now, Status = OrderStatus.Delivered },
|
|
||||||
new Order { OrderNumber = 9123456780, Total = 39.95, Date = DateTime.Now, Status = OrderStatus.Delivered },
|
|
||||||
new Order { OrderNumber = 8765432190, Total = 15.00, Date = DateTime.Now, Status = OrderStatus.Delivered },
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
public async Task<Order> GetCartAsync()
|
|
||||||
{
|
|
||||||
await Task.Delay(500);
|
|
||||||
|
|
||||||
return new Order { OrderNumber = 0123456789, Total = 45.99, Date = DateTime.Now, Status = OrderStatus.Pending };
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -0,0 +1,39 @@
|
|||||||
|
using eShopOnContainers.Core.Models.Orders;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Collections.ObjectModel;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace eShopOnContainers.Core.Services.Orders
|
||||||
|
{
|
||||||
|
public class OrdersMockService : IOrdersService
|
||||||
|
{
|
||||||
|
public async Task<ObservableCollection<Order>> GetOrdersAsync()
|
||||||
|
{
|
||||||
|
await Task.Delay(500);
|
||||||
|
|
||||||
|
return new ObservableCollection<Order>
|
||||||
|
{
|
||||||
|
new Order { SequenceNumber = 123, Total = 56.40, OrderDate = DateTime.Now, Status = OrderStatus.Delivered, OrderItems = GetOrderItems() },
|
||||||
|
new Order { SequenceNumber = 132, Total = 56.40, OrderDate = DateTime.Now, Status = OrderStatus.Delivered, OrderItems = GetOrderItems() },
|
||||||
|
new Order { SequenceNumber = 231, Total = 56.40, OrderDate = DateTime.Now, Status = OrderStatus.Delivered, OrderItems = GetOrderItems() },
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<Order> GetCartAsync()
|
||||||
|
{
|
||||||
|
await Task.Delay(500);
|
||||||
|
|
||||||
|
return new Order { SequenceNumber = 0123456789, Total = 56.40, OrderDate = DateTime.Now, Status = OrderStatus.Pending, OrderItems = GetOrderItems() };
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<OrderItem> GetOrderItems()
|
||||||
|
{
|
||||||
|
return new List<OrderItem>
|
||||||
|
{
|
||||||
|
new OrderItem { OrderId = Guid.NewGuid(), ProductId = 1, Discount = 15, ProductName = ".NET Bot Blue Sweatshirt (M)", Quantity = 1, UnitPrice = 16.50M },
|
||||||
|
new OrderItem { OrderId = Guid.NewGuid(), ProductId = 3, Discount = 0, ProductName = ".NET Bot Black Sweatshirt (M)", Quantity = 2, UnitPrice = 19.95M }
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,22 +0,0 @@
|
|||||||
using eShopOnContainers.Core.Models.Products;
|
|
||||||
using System.Collections.ObjectModel;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using Xamarin.Forms;
|
|
||||||
|
|
||||||
namespace eShopOnContainers.Core.Services.Products
|
|
||||||
{
|
|
||||||
public class FakeProductsService : IProductsService
|
|
||||||
{
|
|
||||||
public async Task<ObservableCollection<Product>> GetProductsAsync()
|
|
||||||
{
|
|
||||||
await Task.Delay(500);
|
|
||||||
|
|
||||||
return new ObservableCollection<Product>
|
|
||||||
{
|
|
||||||
new Product { Image = Device.OS != TargetPlatform.Windows ? "fake_product_01" : "Assets/fake_product_01.png", Name = ".NET Bot Blue Sweatshirt (M)", Price = 19.50 },
|
|
||||||
new Product { Image = Device.OS != TargetPlatform.Windows ? "fake_product_02": "Assets/fake_product_02.png", Name = ".NET Bot Purple Sweatshirt (M)", Price = 19.50 },
|
|
||||||
new Product { Image = Device.OS != TargetPlatform.Windows ? "fake_product_03": "Assets/fake_product_03.png", Name = ".NET Bot Black Sweatshirt (M)", Price = 19.95 }
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,11 +0,0 @@
|
|||||||
using eShopOnContainers.Core.Models.Products;
|
|
||||||
using System.Collections.ObjectModel;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace eShopOnContainers.Core.Services.Products
|
|
||||||
{
|
|
||||||
public interface IProductsService
|
|
||||||
{
|
|
||||||
Task<ObservableCollection<Product>> GetProductsAsync();
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,9 +1,9 @@
|
|||||||
using Microsoft.Practices.Unity;
|
using Microsoft.Practices.Unity;
|
||||||
using eShopOnContainers.Core.Services.Orders;
|
using eShopOnContainers.Core.Services.Orders;
|
||||||
using eShopOnContainers.Core.Services.Products;
|
|
||||||
using eShopOnContainers.Core.ViewModels;
|
using eShopOnContainers.Core.ViewModels;
|
||||||
using eShopOnContainers.Services;
|
using eShopOnContainers.Services;
|
||||||
using System;
|
using System;
|
||||||
|
using eShopOnContainers.Core.Services.Catalog;
|
||||||
|
|
||||||
namespace eShopOnContainers.ViewModels.Base
|
namespace eShopOnContainers.ViewModels.Base
|
||||||
{
|
{
|
||||||
@ -28,8 +28,8 @@ namespace eShopOnContainers.ViewModels.Base
|
|||||||
// services
|
// services
|
||||||
_unityContainer.RegisterType<IDialogService, DialogService>();
|
_unityContainer.RegisterType<IDialogService, DialogService>();
|
||||||
RegisterSingleton<INavigationService, NavigationService>();
|
RegisterSingleton<INavigationService, NavigationService>();
|
||||||
_unityContainer.RegisterType<IProductsService, FakeProductsService>();
|
_unityContainer.RegisterType<ICatalogService, CatalogMockService>();
|
||||||
_unityContainer.RegisterType<IOrdersService, FakeOrdersService>();
|
_unityContainer.RegisterType<IOrdersService, OrdersMockService>();
|
||||||
|
|
||||||
// view models
|
// view models
|
||||||
_unityContainer.RegisterType<CartViewModel>();
|
_unityContainer.RegisterType<CartViewModel>();
|
||||||
@ -37,7 +37,6 @@ namespace eShopOnContainers.ViewModels.Base
|
|||||||
_unityContainer.RegisterType<LoginViewModel>();
|
_unityContainer.RegisterType<LoginViewModel>();
|
||||||
_unityContainer.RegisterType<MainViewModel>();
|
_unityContainer.RegisterType<MainViewModel>();
|
||||||
_unityContainer.RegisterType<OrderDetailViewModel>();
|
_unityContainer.RegisterType<OrderDetailViewModel>();
|
||||||
_unityContainer.RegisterType<OrdersViewModel>();
|
|
||||||
_unityContainer.RegisterType<ProfileViewModel>();
|
_unityContainer.RegisterType<ProfileViewModel>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,8 +1,31 @@
|
|||||||
using eShopOnContainers.ViewModels.Base;
|
using System.Threading.Tasks;
|
||||||
|
using eShopOnContainers.Core.Models.Orders;
|
||||||
|
using eShopOnContainers.ViewModels.Base;
|
||||||
|
|
||||||
namespace eShopOnContainers.Core.ViewModels
|
namespace eShopOnContainers.Core.ViewModels
|
||||||
{
|
{
|
||||||
public class OrderDetailViewModel : ViewModelBase
|
public class OrderDetailViewModel : ViewModelBase
|
||||||
{
|
{
|
||||||
|
private Order _order;
|
||||||
|
|
||||||
|
public Order Order
|
||||||
|
{
|
||||||
|
get { return _order; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_order = value;
|
||||||
|
RaisePropertyChanged(() => Order);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override Task InitializeAsync(object navigationData)
|
||||||
|
{
|
||||||
|
if(navigationData is Order)
|
||||||
|
{
|
||||||
|
Order = navigationData as Order;
|
||||||
|
}
|
||||||
|
|
||||||
|
return base.InitializeAsync(navigationData);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,8 +0,0 @@
|
|||||||
using eShopOnContainers.ViewModels.Base;
|
|
||||||
|
|
||||||
namespace eShopOnContainers.Core.ViewModels
|
|
||||||
{
|
|
||||||
public class OrdersViewModel : ViewModelBase
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
@ -31,6 +31,8 @@ namespace eShopOnContainers.Core.ViewModels
|
|||||||
|
|
||||||
public ICommand LogoutCommand => new Command(LogoutAsync);
|
public ICommand LogoutCommand => new Command(LogoutAsync);
|
||||||
|
|
||||||
|
public ICommand OrderDetailCommand => new Command<Order>(OrderDetail);
|
||||||
|
|
||||||
public override async Task InitializeAsync(object navigationData)
|
public override async Task InitializeAsync(object navigationData)
|
||||||
{
|
{
|
||||||
Orders = await _ordersService.GetOrdersAsync();
|
Orders = await _ordersService.GetOrdersAsync();
|
||||||
@ -41,5 +43,10 @@ namespace eShopOnContainers.Core.ViewModels
|
|||||||
await NavigationService.NavigateToAsync<LoginViewModel>();
|
await NavigationService.NavigateToAsync<LoginViewModel>();
|
||||||
await NavigationService.RemoveBackStackAsync();
|
await NavigationService.RemoveBackStackAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void OrderDetail(Order order)
|
||||||
|
{
|
||||||
|
NavigationService.NavigateToAsync<OrderDetailViewModel>(order);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,26 +1,26 @@
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using eShopOnContainers.ViewModels.Base;
|
using eShopOnContainers.ViewModels.Base;
|
||||||
using eShopOnContainers.Core.Services.Products;
|
|
||||||
using System.Collections.ObjectModel;
|
using System.Collections.ObjectModel;
|
||||||
using eShopOnContainers.Core.Models.Products;
|
|
||||||
using Xamarin.Forms;
|
using Xamarin.Forms;
|
||||||
using eShopOnContainers.Core.ViewModels.Base;
|
using eShopOnContainers.Core.ViewModels.Base;
|
||||||
|
using eShopOnContainers.Core.Models.Catalog;
|
||||||
|
using eShopOnContainers.Core.Services.Catalog;
|
||||||
|
|
||||||
namespace eShopOnContainers.Core.ViewModels
|
namespace eShopOnContainers.Core.ViewModels
|
||||||
{
|
{
|
||||||
public class ProductsViewModel : ViewModelBase
|
public class ProductsViewModel : ViewModelBase
|
||||||
{
|
{
|
||||||
private ObservableCollection<Product> _products;
|
private ObservableCollection<CatalogItem> _products;
|
||||||
private Product _product;
|
private CatalogItem _product;
|
||||||
|
|
||||||
private IProductsService _productsService;
|
private ICatalogService _productsService;
|
||||||
|
|
||||||
public ProductsViewModel(IProductsService productsService)
|
public ProductsViewModel(ICatalogService productsService)
|
||||||
{
|
{
|
||||||
_productsService = productsService;
|
_productsService = productsService;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ObservableCollection<Product> Products
|
public ObservableCollection<CatalogItem> Products
|
||||||
{
|
{
|
||||||
get { return _products; }
|
get { return _products; }
|
||||||
set
|
set
|
||||||
@ -30,7 +30,7 @@ namespace eShopOnContainers.Core.ViewModels
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Product Product
|
public CatalogItem Product
|
||||||
{
|
{
|
||||||
get { return _product; }
|
get { return _product; }
|
||||||
set
|
set
|
||||||
|
@ -29,8 +29,7 @@
|
|||||||
</views:ProfileView>
|
</views:ProfileView>
|
||||||
<views:CartView
|
<views:CartView
|
||||||
x:Name="CartView"
|
x:Name="CartView"
|
||||||
controls:CustomTabbedPage.BadgeText="{Binding BadgeCount}"
|
controls:CustomTabbedPage.BadgeText="{Binding BadgeCount}">
|
||||||
controls:CustomTabbedPage.BadgeColor="{StaticResource LightGreenColor}">
|
|
||||||
<views:HomeView.Icon>
|
<views:HomeView.Icon>
|
||||||
<OnPlatform
|
<OnPlatform
|
||||||
x:TypeArguments="FileImageSource"
|
x:TypeArguments="FileImageSource"
|
||||||
|
@ -1,6 +1,233 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" ?>
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
|
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||||
x:Class="eShopOnContainers.Core.Views.OrderDetailView">
|
x:Class="eShopOnContainers.Core.Views.OrderDetailView"
|
||||||
|
xmlns:templates="clr-namespace:eShopOnContainers.Core.Views.Templates;assembly=eShopOnContainers.Core"
|
||||||
|
xmlns:animations="clr-namespace:eShopOnContainers.Core.Animations;assembly=eShopOnContainers.Core"
|
||||||
|
xmlns:triggers="clr-namespace:eShopOnContainers.Core.Triggers;assembly=eShopOnContainers.Core"
|
||||||
|
Title="{Binding Order.SequenceNumber}">
|
||||||
|
<ContentPage.Resources>
|
||||||
|
<ResourceDictionary>
|
||||||
|
|
||||||
|
<Style x:Key="OrderTitleStyle"
|
||||||
|
TargetType="{x:Type Label}">
|
||||||
|
<Setter Property="FontFamily"
|
||||||
|
Value="{StaticResource MontserratRegular}" />
|
||||||
|
<Setter Property="FontSize"
|
||||||
|
Value="{StaticResource MediumSize}" />
|
||||||
|
<Setter Property="TextColor"
|
||||||
|
Value="Gray" />
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<Style x:Key="OrderContentStyle"
|
||||||
|
TargetType="{x:Type Label}"
|
||||||
|
BasedOn="{StaticResource OrderTitleStyle}">
|
||||||
|
<Setter Property="TextColor"
|
||||||
|
Value="Black" />
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<Style x:Key="ShippingAddressStyle"
|
||||||
|
TargetType="{x:Type Label}"
|
||||||
|
BasedOn="{StaticResource OrderTitleStyle}">
|
||||||
|
<Setter Property="FontSize"
|
||||||
|
Value="{StaticResource LargeSize}" />
|
||||||
|
<Setter Property="TextColor"
|
||||||
|
Value="Black" />
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<Style x:Key="AddressStyle"
|
||||||
|
TargetType="{x:Type Label}"
|
||||||
|
BasedOn="{StaticResource OrderTitleStyle}">
|
||||||
|
<Setter Property="FontSize"
|
||||||
|
Value="{StaticResource LittleSize}" />
|
||||||
|
<Setter Property="TextColor"
|
||||||
|
Value="Black" />
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<Style x:Key="OrderTotalStyle"
|
||||||
|
TargetType="{x:Type Label}">
|
||||||
|
<Setter Property="FontFamily"
|
||||||
|
Value="{StaticResource MontserratRegular}" />
|
||||||
|
<Setter Property="FontSize"
|
||||||
|
Value="{StaticResource LargerSize}" />
|
||||||
|
<Setter Property="HorizontalOptions"
|
||||||
|
Value="End" />
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<animations:StoryBoard
|
||||||
|
x:Key="OrderInfoAnimation"
|
||||||
|
Target="{x:Reference OrderInfo}">
|
||||||
|
<animations:FadeToAnimation
|
||||||
|
Opacity="1"
|
||||||
|
Duration="500"
|
||||||
|
Delay="100"/>
|
||||||
|
</animations:StoryBoard>
|
||||||
|
|
||||||
|
<animations:StoryBoard
|
||||||
|
x:Key="ShippingAddressAnimation"
|
||||||
|
Target="{x:Reference ShippingAddress}">
|
||||||
|
<animations:FadeToAnimation
|
||||||
|
Opacity="1"
|
||||||
|
Duration="1000"
|
||||||
|
Delay="200"/>
|
||||||
|
</animations:StoryBoard>
|
||||||
|
|
||||||
|
<animations:StoryBoard
|
||||||
|
x:Key="OrderItemsAnimation"
|
||||||
|
Target="{x:Reference OrderItems}">
|
||||||
|
<animations:FadeToAnimation
|
||||||
|
Opacity="1"
|
||||||
|
Duration="1500"
|
||||||
|
Delay="300"/>
|
||||||
|
</animations:StoryBoard>
|
||||||
|
|
||||||
|
</ResourceDictionary>
|
||||||
|
</ContentPage.Resources>
|
||||||
|
<ContentPage.Triggers>
|
||||||
|
<EventTrigger
|
||||||
|
Event="Appearing">
|
||||||
|
<triggers:BeginAnimation
|
||||||
|
Animation="{StaticResource OrderInfoAnimation}" />
|
||||||
|
<triggers:BeginAnimation
|
||||||
|
Animation="{StaticResource ShippingAddressAnimation}" />
|
||||||
|
<triggers:BeginAnimation
|
||||||
|
Animation="{StaticResource OrderItemsAnimation}" />
|
||||||
|
</EventTrigger>
|
||||||
|
</ContentPage.Triggers>
|
||||||
|
<ScrollView>
|
||||||
|
<Grid
|
||||||
|
BackgroundColor="{StaticResource BackgroundColor}">
|
||||||
|
<Grid.RowDefinitions>
|
||||||
|
<RowDefinition Height="Auto" />
|
||||||
|
<RowDefinition Height="Auto" />
|
||||||
|
<RowDefinition Height="Auto" />
|
||||||
|
</Grid.RowDefinitions>
|
||||||
|
<!-- ORDER INFO -->
|
||||||
|
<Grid
|
||||||
|
x:Name="OrderInfo"
|
||||||
|
Opacity="0">
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition />
|
||||||
|
<ColumnDefinition />
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<Grid.RowDefinitions>
|
||||||
|
<RowDefinition />
|
||||||
|
<RowDefinition />
|
||||||
|
</Grid.RowDefinitions>
|
||||||
|
<StackLayout
|
||||||
|
Grid.Column="0"
|
||||||
|
Grid.Row="0"
|
||||||
|
Margin="12">
|
||||||
|
<Label
|
||||||
|
Text="ORDER NUMBER"
|
||||||
|
Style="{StaticResource OrderTitleStyle}"/>
|
||||||
|
<Label
|
||||||
|
Text="{Binding Order.OrderNumber, Converter={StaticResource ToUpperConverter}}"
|
||||||
|
Style="{StaticResource OrderContentStyle}"/>
|
||||||
|
</StackLayout>
|
||||||
|
<StackLayout
|
||||||
|
Grid.Column="0"
|
||||||
|
Grid.Row="1"
|
||||||
|
Margin="12">
|
||||||
|
<Label
|
||||||
|
Text="TOTAL"
|
||||||
|
Style="{StaticResource OrderTitleStyle}"/>
|
||||||
|
<Label
|
||||||
|
Text="{Binding Order.Total, StringFormat='${0:N}', Converter={StaticResource ToUpperConverter}}"
|
||||||
|
Style="{StaticResource OrderContentStyle}"/>
|
||||||
|
</StackLayout>
|
||||||
|
<StackLayout
|
||||||
|
Grid.Column="1"
|
||||||
|
Grid.Row="0"
|
||||||
|
Margin="12">
|
||||||
|
<Label
|
||||||
|
Text="DATE"
|
||||||
|
Style="{StaticResource OrderTitleStyle}"/>
|
||||||
|
<Label
|
||||||
|
Text="{Binding Order.OrderDate, Converter={StaticResource DatetimeConverter}}"
|
||||||
|
Style="{StaticResource OrderContentStyle}"/>
|
||||||
|
</StackLayout>
|
||||||
|
<StackLayout
|
||||||
|
Grid.Column="1"
|
||||||
|
Grid.Row="1"
|
||||||
|
Margin="12">
|
||||||
|
<Label
|
||||||
|
Text="STATUS"
|
||||||
|
Style="{StaticResource OrderTitleStyle}"/>
|
||||||
|
<Label
|
||||||
|
Text="{Binding Order.Status, Converter={StaticResource ToUpperConverter}}"
|
||||||
|
Style="{StaticResource OrderContentStyle}"/>
|
||||||
|
</StackLayout>
|
||||||
|
</Grid>
|
||||||
|
<!-- SHIPPING ADDRESS -->
|
||||||
|
<Grid
|
||||||
|
x:Name="ShippingAddress"
|
||||||
|
Grid.Row="1"
|
||||||
|
Margin="12"
|
||||||
|
Opacity="0">
|
||||||
|
<Grid.RowDefinitions>
|
||||||
|
<RowDefinition Height="Auto" />
|
||||||
|
<RowDefinition Height="*" />
|
||||||
|
</Grid.RowDefinitions>
|
||||||
|
<Label
|
||||||
|
Grid.Row="0"
|
||||||
|
Text="SHIPPING ADDRESS"
|
||||||
|
Style="{StaticResource ShippingAddressStyle}"/>
|
||||||
|
<StackLayout
|
||||||
|
Grid.Row="1">
|
||||||
|
<Label
|
||||||
|
Text="120 E 87th Street"
|
||||||
|
Style="{StaticResource AddressStyle}"/>
|
||||||
|
<Label
|
||||||
|
Text="Seattle, WA"
|
||||||
|
Style="{StaticResource AddressStyle}"/>
|
||||||
|
<Label
|
||||||
|
Text="98122"
|
||||||
|
Style="{StaticResource AddressStyle}"/>
|
||||||
|
<Label
|
||||||
|
Text="United States"
|
||||||
|
Style="{StaticResource AddressStyle}"/>
|
||||||
|
</StackLayout>
|
||||||
|
</Grid>
|
||||||
|
<!-- ORDER ITEMS -->
|
||||||
|
<Grid
|
||||||
|
x:Name="OrderItems"
|
||||||
|
Grid.Row="2"
|
||||||
|
Opacity="0">
|
||||||
|
<Grid.RowDefinitions>
|
||||||
|
<RowDefinition Height="*" />
|
||||||
|
<RowDefinition Height="Auto" />
|
||||||
|
</Grid.RowDefinitions>
|
||||||
|
<ListView
|
||||||
|
Grid.Row="0"
|
||||||
|
ItemsSource="{Binding Order.OrderItems}"
|
||||||
|
HasUnevenRows="True"
|
||||||
|
SeparatorVisibility="None"
|
||||||
|
VerticalOptions="FillAndExpand"
|
||||||
|
CachingStrategy="RecycleElement">
|
||||||
|
<ListView.ItemTemplate>
|
||||||
|
<DataTemplate>
|
||||||
|
<ViewCell>
|
||||||
|
<templates:OrderItemTemplate />
|
||||||
|
</ViewCell>
|
||||||
|
</DataTemplate>
|
||||||
|
</ListView.ItemTemplate>
|
||||||
|
</ListView>
|
||||||
|
<StackLayout
|
||||||
|
Grid.Row="1"
|
||||||
|
Margin="0,0,0,24">
|
||||||
|
<Label
|
||||||
|
Grid.Row="0"
|
||||||
|
Text="TOTAL"
|
||||||
|
TextColor="{StaticResource BlackColor}"
|
||||||
|
Style="{StaticResource OrderTotalStyle}"/>
|
||||||
|
<Label
|
||||||
|
Grid.Row="1"
|
||||||
|
Text="{Binding Order.Total, StringFormat='${0:N}'}"
|
||||||
|
TextColor="{StaticResource GreenColor}"
|
||||||
|
Style="{StaticResource OrderTotalStyle}"/>
|
||||||
|
</StackLayout>
|
||||||
|
</Grid>
|
||||||
|
</Grid>
|
||||||
|
</ScrollView>
|
||||||
</ContentPage>
|
</ContentPage>
|
@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" ?>
|
|
||||||
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
|
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
|
||||||
x:Class="eShopOnContainers.Core.Views.OrdersView">
|
|
||||||
|
|
||||||
</ContentPage>
|
|
@ -1,12 +0,0 @@
|
|||||||
using Xamarin.Forms;
|
|
||||||
|
|
||||||
namespace eShopOnContainers.Core.Views
|
|
||||||
{
|
|
||||||
public partial class OrdersView : ContentPage
|
|
||||||
{
|
|
||||||
public OrdersView()
|
|
||||||
{
|
|
||||||
InitializeComponent();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -4,6 +4,7 @@
|
|||||||
x:Class="eShopOnContainers.Core.Views.ProfileView"
|
x:Class="eShopOnContainers.Core.Views.ProfileView"
|
||||||
xmlns:views="clr-namespace:eShopOnContainers.Core.Views;assembly=eShopOnContainers.Core"
|
xmlns:views="clr-namespace:eShopOnContainers.Core.Views;assembly=eShopOnContainers.Core"
|
||||||
xmlns:templates="clr-namespace:eShopOnContainers.Core.Views.Templates;assembly=eShopOnContainers.Core"
|
xmlns:templates="clr-namespace:eShopOnContainers.Core.Views.Templates;assembly=eShopOnContainers.Core"
|
||||||
|
xmlns:behaviors="clr-namespace:eShopOnContainers.Core.Behaviors;assembly=eShopOnContainers.Core"
|
||||||
Title="My profile">
|
Title="My profile">
|
||||||
<ContentPage.Resources>
|
<ContentPage.Resources>
|
||||||
<ResourceDictionary>
|
<ResourceDictionary>
|
||||||
@ -83,6 +84,12 @@
|
|||||||
HasUnevenRows="True"
|
HasUnevenRows="True"
|
||||||
SeparatorVisibility="None"
|
SeparatorVisibility="None"
|
||||||
CachingStrategy="RecycleElement">
|
CachingStrategy="RecycleElement">
|
||||||
|
<ListView.Behaviors>
|
||||||
|
<behaviors:EventToCommandBehavior
|
||||||
|
EventName="ItemTapped"
|
||||||
|
Command="{Binding OrderDetailCommand}"
|
||||||
|
EventArgsConverter="{StaticResource ItemTappedEventArgsConverter}" />
|
||||||
|
</ListView.Behaviors>
|
||||||
<ListView.ItemTemplate>
|
<ListView.ItemTemplate>
|
||||||
<DataTemplate>
|
<DataTemplate>
|
||||||
<ViewCell>
|
<ViewCell>
|
||||||
|
@ -0,0 +1,110 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ContentView
|
||||||
|
xmlns="http://xamarin.com/schemas/2014/forms"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||||
|
x:Class="eShopOnContainers.Core.Views.Templates.OrderItemTemplate">
|
||||||
|
<ContentView.Resources>
|
||||||
|
<ResourceDictionary>
|
||||||
|
|
||||||
|
<Style x:Key="OrderItemTitleStyle"
|
||||||
|
TargetType="{x:Type Label}">
|
||||||
|
<Setter Property="FontFamily"
|
||||||
|
Value="{StaticResource MontserratRegular}" />
|
||||||
|
<Setter Property="FontSize"
|
||||||
|
Value="{StaticResource MediumSize}" />
|
||||||
|
<Setter Property="TextColor"
|
||||||
|
Value="{StaticResource BlackColor}" />
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<Style x:Key="OrderItemUnitPriceStyle"
|
||||||
|
TargetType="{x:Type Label}">
|
||||||
|
<Setter Property="FontFamily"
|
||||||
|
Value="{StaticResource MontserratRegular}" />
|
||||||
|
<Setter Property="FontSize"
|
||||||
|
Value="{StaticResource MidMediumSize}" />
|
||||||
|
<Setter Property="TextColor"
|
||||||
|
Value="{StaticResource BlackColor}" />
|
||||||
|
<Setter Property="HorizontalOptions"
|
||||||
|
Value="Start" />
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<Style x:Key="OrderItemQuantityStyle"
|
||||||
|
TargetType="{x:Type Label}">
|
||||||
|
<Setter Property="FontFamily"
|
||||||
|
Value="{StaticResource MontserratRegular}" />
|
||||||
|
<Setter Property="FontSize"
|
||||||
|
Value="{StaticResource MidMediumSize}" />
|
||||||
|
<Setter Property="TextColor"
|
||||||
|
Value="{StaticResource BlackColor}" />
|
||||||
|
<Setter Property="HorizontalOptions"
|
||||||
|
Value="End" />
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<Style x:Key="OrderTotalStyle"
|
||||||
|
TargetType="{x:Type Label}">
|
||||||
|
<Setter Property="FontFamily"
|
||||||
|
Value="{StaticResource MontserratRegular}" />
|
||||||
|
<Setter Property="FontSize"
|
||||||
|
Value="{StaticResource LargerSize}" />
|
||||||
|
<Setter Property="TextColor"
|
||||||
|
Value="{StaticResource GreenColor}" />
|
||||||
|
<Setter Property="HorizontalOptions"
|
||||||
|
Value="End" />
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
</ResourceDictionary>
|
||||||
|
</ContentView.Resources>
|
||||||
|
<ContentView.Content>
|
||||||
|
<Grid>
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="Auto" />
|
||||||
|
<ColumnDefinition Width="*" />
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<Grid.RowDefinitions>
|
||||||
|
<RowDefinition Height="*" />
|
||||||
|
<RowDefinition Height="1" />
|
||||||
|
</Grid.RowDefinitions>
|
||||||
|
<Image
|
||||||
|
Grid.Column="0"
|
||||||
|
Grid.Row="0"
|
||||||
|
Source="{Binding Image}"/>
|
||||||
|
<Grid
|
||||||
|
Grid.Column="1"
|
||||||
|
Grid.Row="0"
|
||||||
|
Margin="6">
|
||||||
|
<Grid.RowDefinitions>
|
||||||
|
<RowDefinition />
|
||||||
|
<RowDefinition />
|
||||||
|
<RowDefinition />
|
||||||
|
</Grid.RowDefinitions>
|
||||||
|
<Label
|
||||||
|
Grid.Row="0"
|
||||||
|
Text="{Binding ProductName, Converter={StaticResource ToUpperConverter}}"/>
|
||||||
|
<Grid
|
||||||
|
Grid.Row="1">
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition />
|
||||||
|
<ColumnDefinition />
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<Label
|
||||||
|
Grid.Column="0"
|
||||||
|
Text="{Binding UnitPrice, StringFormat='${0:N}'}"
|
||||||
|
Style="{StaticResource OrderItemUnitPriceStyle}"/>
|
||||||
|
<Label
|
||||||
|
Grid.Column="1"
|
||||||
|
Text="{Binding Quantity}"
|
||||||
|
Style="{StaticResource OrderItemQuantityStyle}"/>
|
||||||
|
</Grid>
|
||||||
|
<Label
|
||||||
|
Grid.Row="2"
|
||||||
|
Text="{Binding Total, StringFormat='${0:N}'}"
|
||||||
|
Style="{StaticResource OrderTotalStyle}"/>
|
||||||
|
</Grid>
|
||||||
|
<Grid
|
||||||
|
Grid.Column="0"
|
||||||
|
Grid.ColumnSpan="2"
|
||||||
|
Grid.Row="1"
|
||||||
|
BackgroundColor="Gray"/>
|
||||||
|
</Grid>
|
||||||
|
</ContentView.Content>
|
||||||
|
</ContentView>
|
@ -0,0 +1,12 @@
|
|||||||
|
using Xamarin.Forms;
|
||||||
|
|
||||||
|
namespace eShopOnContainers.Core.Views.Templates
|
||||||
|
{
|
||||||
|
public partial class OrderItemTemplate : ContentView
|
||||||
|
{
|
||||||
|
public OrderItemTemplate()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -25,7 +25,7 @@
|
|||||||
|
|
||||||
</ResourceDictionary>
|
</ResourceDictionary>
|
||||||
</ContentView.Resources>
|
</ContentView.Resources>
|
||||||
<ContentView.Content>
|
<ContentView.Content>
|
||||||
<Grid
|
<Grid
|
||||||
BackgroundColor="{StaticResource BackgroundColor}">
|
BackgroundColor="{StaticResource BackgroundColor}">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
@ -67,7 +67,7 @@
|
|||||||
Text="DATE"
|
Text="DATE"
|
||||||
Style="{StaticResource OrderTitleStyle}"/>
|
Style="{StaticResource OrderTitleStyle}"/>
|
||||||
<Label
|
<Label
|
||||||
Text="{Binding Date, Converter={StaticResource DatetimeConverter}}"
|
Text="{Binding OrderDate, Converter={StaticResource DatetimeConverter}}"
|
||||||
Style="{StaticResource OrderContentStyle}"/>
|
Style="{StaticResource OrderContentStyle}"/>
|
||||||
</StackLayout>
|
</StackLayout>
|
||||||
<StackLayout
|
<StackLayout
|
||||||
@ -87,5 +87,5 @@
|
|||||||
Grid.Row="2"
|
Grid.Row="2"
|
||||||
BackgroundColor="Gray"/>
|
BackgroundColor="Gray"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</ContentView.Content>
|
</ContentView.Content>
|
||||||
</ContentView>
|
</ContentView>
|
@ -42,25 +42,30 @@
|
|||||||
<Compile Include="App.xaml.cs">
|
<Compile Include="App.xaml.cs">
|
||||||
<DependentUpon>App.xaml</DependentUpon>
|
<DependentUpon>App.xaml</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="Behaviors\Base\BindableBehavior.cs" />
|
||||||
|
<Compile Include="Behaviors\EventToCommandBehavior.cs" />
|
||||||
<Compile Include="Controls\BindablePicker.cs" />
|
<Compile Include="Controls\BindablePicker.cs" />
|
||||||
<Compile Include="Controls\CustomTabbedPage.cs" />
|
<Compile Include="Controls\CustomTabbedPage.cs" />
|
||||||
<Compile Include="Converters\DatetimeConverter.cs" />
|
<Compile Include="Converters\DatetimeConverter.cs" />
|
||||||
|
<Compile Include="Converters\ItemTappedConverter.cs" />
|
||||||
<Compile Include="Converters\ToUpperConverter.cs" />
|
<Compile Include="Converters\ToUpperConverter.cs" />
|
||||||
<Compile Include="Effects\LineColorEffect.cs" />
|
<Compile Include="Effects\LineColorEffect.cs" />
|
||||||
<Compile Include="Extensions\AnimationExtension.cs" />
|
<Compile Include="Extensions\AnimationExtension.cs" />
|
||||||
<Compile Include="Helpers\EasingHelper.cs" />
|
<Compile Include="Helpers\EasingHelper.cs" />
|
||||||
<Compile Include="Models\Orders\Order.cs" />
|
<Compile Include="Models\Orders\Order.cs" />
|
||||||
|
<Compile Include="Models\Orders\OrderItem.cs" />
|
||||||
<Compile Include="Models\Orders\OrderStatus.cs" />
|
<Compile Include="Models\Orders\OrderStatus.cs" />
|
||||||
<Compile Include="Models\Products\Product.cs" />
|
<Compile Include="Models\Catalog\CatalogItem.cs" />
|
||||||
|
<Compile Include="Models\User\User.cs" />
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
<Compile Include="Services\Dialog\DialogService.cs" />
|
<Compile Include="Services\Dialog\DialogService.cs" />
|
||||||
<Compile Include="Services\Dialog\IDialogService.cs" />
|
<Compile Include="Services\Dialog\IDialogService.cs" />
|
||||||
<Compile Include="Services\Navigation\INavigationService.cs" />
|
<Compile Include="Services\Navigation\INavigationService.cs" />
|
||||||
<Compile Include="Services\Navigation\NavigationService.cs" />
|
<Compile Include="Services\Navigation\NavigationService.cs" />
|
||||||
<Compile Include="Services\Orders\FakeOrdersService.cs" />
|
<Compile Include="Services\Orders\OrdersMockService.cs" />
|
||||||
<Compile Include="Services\Orders\IOrdersService.cs" />
|
<Compile Include="Services\Orders\IOrdersService.cs" />
|
||||||
<Compile Include="Services\Products\FakeProductsService.cs" />
|
<Compile Include="Services\Catalog\CatalogMockService.cs" />
|
||||||
<Compile Include="Services\Products\IProductsService.cs" />
|
<Compile Include="Services\Catalog\ICatalogService.cs" />
|
||||||
<Compile Include="Triggers\BeginAnimation.cs" />
|
<Compile Include="Triggers\BeginAnimation.cs" />
|
||||||
<Compile Include="Validations\IsNotNullOrEmptyRule.cs" />
|
<Compile Include="Validations\IsNotNullOrEmptyRule.cs" />
|
||||||
<Compile Include="Validations\IValidationRule.cs" />
|
<Compile Include="Validations\IValidationRule.cs" />
|
||||||
@ -75,7 +80,6 @@
|
|||||||
<Compile Include="ViewModels\LoginViewModel.cs" />
|
<Compile Include="ViewModels\LoginViewModel.cs" />
|
||||||
<Compile Include="ViewModels\MainViewModel.cs" />
|
<Compile Include="ViewModels\MainViewModel.cs" />
|
||||||
<Compile Include="ViewModels\OrderDetailViewModel.cs" />
|
<Compile Include="ViewModels\OrderDetailViewModel.cs" />
|
||||||
<Compile Include="ViewModels\OrdersViewModel.cs" />
|
|
||||||
<Compile Include="ViewModels\ProfileViewModel.cs" />
|
<Compile Include="ViewModels\ProfileViewModel.cs" />
|
||||||
<Compile Include="Views\CartView.xaml.cs">
|
<Compile Include="Views\CartView.xaml.cs">
|
||||||
<DependentUpon>CartView.xaml</DependentUpon>
|
<DependentUpon>CartView.xaml</DependentUpon>
|
||||||
@ -98,12 +102,12 @@
|
|||||||
<Compile Include="Views\OrderDetailView.xaml.cs">
|
<Compile Include="Views\OrderDetailView.xaml.cs">
|
||||||
<DependentUpon>OrderDetailView.xaml</DependentUpon>
|
<DependentUpon>OrderDetailView.xaml</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="Views\OrdersView.xaml.cs">
|
|
||||||
<DependentUpon>OrdersView.xaml</DependentUpon>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="Views\ProfileView.xaml.cs">
|
<Compile Include="Views\ProfileView.xaml.cs">
|
||||||
<DependentUpon>ProfileView.xaml</DependentUpon>
|
<DependentUpon>ProfileView.xaml</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="Views\Templates\OrderItemTemplate.xaml.cs">
|
||||||
|
<DependentUpon>OrderItemTemplate.xaml</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="Views\Templates\OrderTemplate.xaml.cs">
|
<Compile Include="Views\Templates\OrderTemplate.xaml.cs">
|
||||||
<DependentUpon>OrderTemplate.xaml</DependentUpon>
|
<DependentUpon>OrderTemplate.xaml</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
@ -215,12 +219,6 @@
|
|||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
|
||||||
<EmbeddedResource Include="Views\OrdersView.xaml">
|
|
||||||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
|
|
||||||
<SubType>Designer</SubType>
|
|
||||||
</EmbeddedResource>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<EmbeddedResource Include="Views\CustomNavigationPage.xaml">
|
<EmbeddedResource Include="Views\CustomNavigationPage.xaml">
|
||||||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
|
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
|
||||||
@ -245,6 +243,12 @@
|
|||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<EmbeddedResource Include="Views\Templates\OrderItemTemplate.xaml">
|
||||||
|
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</EmbeddedResource>
|
||||||
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" />
|
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" />
|
||||||
<Import Project="..\..\packages\Xamarin.Forms.2.3.2.127\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets" Condition="Exists('..\..\packages\Xamarin.Forms.2.3.2.127\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" />
|
<Import Project="..\..\packages\Xamarin.Forms.2.3.2.127\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets" Condition="Exists('..\..\packages\Xamarin.Forms.2.3.2.127\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" />
|
||||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||||
|
@ -153,7 +153,7 @@
|
|||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Xamarin.Forms.Pages, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="Xamarin.Forms.Pages, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\..\packages\Xamarin.Forms.Pages.2.3.0.38-pre2\lib\MonoAndroid10\Xamarin.Forms.Pages.dll</HintPath>
|
<HintPath>..\..\packages\Xamarin.Forms.Pages.2.3.2.118-pre1\lib\MonoAndroid10\Xamarin.Forms.Pages.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Xamarin.Forms.Platform, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="Xamarin.Forms.Platform, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
@ -282,9 +282,9 @@
|
|||||||
<ErrorText>Este proyecto hace referencia a los paquetes NuGet que faltan en este equipo. Use la restauración de paquetes NuGet para descargarlos. Para obtener más información, consulte http://go.microsoft.com/fwlink/?LinkID=322105. El archivo que falta es {0}.</ErrorText>
|
<ErrorText>Este proyecto hace referencia a los paquetes NuGet que faltan en este equipo. Use la restauración de paquetes NuGet para descargarlos. Para obtener más información, consulte http://go.microsoft.com/fwlink/?LinkID=322105. El archivo que falta es {0}.</ErrorText>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Error Condition="!Exists('..\..\packages\Xamarin.Android.Support.Vector.Drawable.23.3.0\build\Xamarin.Android.Support.Vector.Drawable.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Android.Support.Vector.Drawable.23.3.0\build\Xamarin.Android.Support.Vector.Drawable.targets'))" />
|
<Error Condition="!Exists('..\..\packages\Xamarin.Android.Support.Vector.Drawable.23.3.0\build\Xamarin.Android.Support.Vector.Drawable.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Android.Support.Vector.Drawable.23.3.0\build\Xamarin.Android.Support.Vector.Drawable.targets'))" />
|
||||||
<Error Condition="!Exists('..\..\packages\Xamarin.Forms.2.3.2.127\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Forms.2.3.2.127\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets'))" />
|
|
||||||
<Error Condition="!Exists('..\..\packages\StyleCop.MSBuild.5.0.0-alpha01\build\StyleCop.MSBuild.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\StyleCop.MSBuild.5.0.0-alpha01\build\StyleCop.MSBuild.targets'))" />
|
<Error Condition="!Exists('..\..\packages\StyleCop.MSBuild.5.0.0-alpha01\build\StyleCop.MSBuild.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\StyleCop.MSBuild.5.0.0-alpha01\build\StyleCop.MSBuild.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\..\packages\Xamarin.Forms.2.3.2.127\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Forms.2.3.2.127\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets'))" />
|
||||||
</Target>
|
</Target>
|
||||||
<Import Project="..\..\packages\Xamarin.Forms.2.3.2.127\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets" Condition="Exists('..\..\packages\Xamarin.Forms.2.3.2.127\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" />
|
|
||||||
<Import Project="..\..\packages\StyleCop.MSBuild.5.0.0-alpha01\build\StyleCop.MSBuild.targets" Condition="Exists('..\..\packages\StyleCop.MSBuild.5.0.0-alpha01\build\StyleCop.MSBuild.targets')" />
|
<Import Project="..\..\packages\StyleCop.MSBuild.5.0.0-alpha01\build\StyleCop.MSBuild.targets" Condition="Exists('..\..\packages\StyleCop.MSBuild.5.0.0-alpha01\build\StyleCop.MSBuild.targets')" />
|
||||||
|
<Import Project="..\..\packages\Xamarin.Forms.2.3.2.127\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets" Condition="Exists('..\..\packages\Xamarin.Forms.2.3.2.127\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" />
|
||||||
</Project>
|
</Project>
|
@ -19,7 +19,7 @@
|
|||||||
<package id="Xamarin.Android.Support.v7.RecyclerView" version="23.3.0" targetFramework="monoandroid70" />
|
<package id="Xamarin.Android.Support.v7.RecyclerView" version="23.3.0" targetFramework="monoandroid70" />
|
||||||
<package id="Xamarin.Android.Support.Vector.Drawable" version="23.3.0" targetFramework="monoandroid70" />
|
<package id="Xamarin.Android.Support.Vector.Drawable" version="23.3.0" targetFramework="monoandroid70" />
|
||||||
<package id="Xamarin.Forms" version="2.3.2.127" targetFramework="monoandroid70" />
|
<package id="Xamarin.Forms" version="2.3.2.127" targetFramework="monoandroid70" />
|
||||||
<package id="Xamarin.Forms.Pages" version="2.3.0.38-pre2" targetFramework="monoandroid70" />
|
<package id="Xamarin.Forms.Pages" version="2.3.2.118-pre1" targetFramework="monoandroid70" />
|
||||||
<package id="Xamarin.Forms.Theme.Base" version="1.0.0.43-pre1" targetFramework="monoandroid70" />
|
<package id="Xamarin.Forms.Theme.Base" version="1.0.0.43-pre1" targetFramework="monoandroid70" />
|
||||||
<package id="Xamarin.Forms.Theme.Light" version="1.0.0.43-pre1" targetFramework="monoandroid70" />
|
<package id="Xamarin.Forms.Theme.Light" version="1.0.0.43-pre1" targetFramework="monoandroid70" />
|
||||||
</packages>
|
</packages>
|
Binary file not shown.
After Width: | Height: | Size: 595 KiB |
@ -176,7 +176,7 @@
|
|||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Xamarin.Forms.Pages, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="Xamarin.Forms.Pages, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\..\packages\Xamarin.Forms.Pages.2.3.0.38-pre2\lib\Xamarin.iOS10\Xamarin.Forms.Pages.dll</HintPath>
|
<HintPath>..\..\packages\Xamarin.Forms.Pages.2.3.2.118-pre1\lib\Xamarin.iOS10\Xamarin.Forms.Pages.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Xamarin.Forms.Platform, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="Xamarin.Forms.Platform, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
@ -221,13 +221,13 @@
|
|||||||
<BundleResource Include="Resources\fake_product_02.png" />
|
<BundleResource Include="Resources\fake_product_02.png" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" />
|
<Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" />
|
||||||
<Import Project="..\..\packages\Xamarin.Forms.2.3.2.127\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets" Condition="Exists('..\..\packages\Xamarin.Forms.2.3.2.127\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" />
|
|
||||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<ErrorText>Este proyecto hace referencia a los paquetes NuGet que faltan en este equipo. Use la restauración de paquetes NuGet para descargarlos. Para obtener más información, consulte http://go.microsoft.com/fwlink/?LinkID=322105. El archivo que falta es {0}.</ErrorText>
|
<ErrorText>Este proyecto hace referencia a los paquetes NuGet que faltan en este equipo. Use la restauración de paquetes NuGet para descargarlos. Para obtener más información, consulte http://go.microsoft.com/fwlink/?LinkID=322105. El archivo que falta es {0}.</ErrorText>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Error Condition="!Exists('..\..\packages\Xamarin.Forms.2.3.2.127\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Forms.2.3.2.127\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets'))" />
|
|
||||||
<Error Condition="!Exists('..\..\packages\StyleCop.MSBuild.5.0.0-alpha01\build\StyleCop.MSBuild.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\StyleCop.MSBuild.5.0.0-alpha01\build\StyleCop.MSBuild.targets'))" />
|
<Error Condition="!Exists('..\..\packages\StyleCop.MSBuild.5.0.0-alpha01\build\StyleCop.MSBuild.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\StyleCop.MSBuild.5.0.0-alpha01\build\StyleCop.MSBuild.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\..\packages\Xamarin.Forms.2.3.2.127\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Forms.2.3.2.127\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets'))" />
|
||||||
</Target>
|
</Target>
|
||||||
<Import Project="..\..\packages\StyleCop.MSBuild.5.0.0-alpha01\build\StyleCop.MSBuild.targets" Condition="Exists('..\..\packages\StyleCop.MSBuild.5.0.0-alpha01\build\StyleCop.MSBuild.targets')" />
|
<Import Project="..\..\packages\StyleCop.MSBuild.5.0.0-alpha01\build\StyleCop.MSBuild.targets" Condition="Exists('..\..\packages\StyleCop.MSBuild.5.0.0-alpha01\build\StyleCop.MSBuild.targets')" />
|
||||||
|
<Import Project="..\..\packages\Xamarin.Forms.2.3.2.127\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets" Condition="Exists('..\..\packages\Xamarin.Forms.2.3.2.127\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" />
|
||||||
</Project>
|
</Project>
|
@ -10,7 +10,7 @@
|
|||||||
<package id="StyleCop.MSBuild" version="5.0.0-alpha01" targetFramework="xamarinios10" developmentDependency="true" />
|
<package id="StyleCop.MSBuild" version="5.0.0-alpha01" targetFramework="xamarinios10" developmentDependency="true" />
|
||||||
<package id="Unity" version="4.0.1" targetFramework="xamarinios10" />
|
<package id="Unity" version="4.0.1" targetFramework="xamarinios10" />
|
||||||
<package id="Xamarin.Forms" version="2.3.2.127" targetFramework="xamarinios10" />
|
<package id="Xamarin.Forms" version="2.3.2.127" targetFramework="xamarinios10" />
|
||||||
<package id="Xamarin.Forms.Pages" version="2.3.0.38-pre2" targetFramework="xamarinios10" />
|
<package id="Xamarin.Forms.Pages" version="2.3.2.118-pre1" targetFramework="xamarinios10" />
|
||||||
<package id="Xamarin.Forms.Theme.Base" version="1.0.0.43-pre1" targetFramework="xamarinios10" />
|
<package id="Xamarin.Forms.Theme.Base" version="1.0.0.43-pre1" targetFramework="xamarinios10" />
|
||||||
<package id="Xamarin.Forms.Theme.Light" version="1.0.0.43-pre1" targetFramework="xamarinios10" />
|
<package id="Xamarin.Forms.Theme.Light" version="1.0.0.43-pre1" targetFramework="xamarinios10" />
|
||||||
</packages>
|
</packages>
|
Loading…
x
Reference in New Issue
Block a user