WIP
|
|
@ -71,7 +71,7 @@
|
|||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="FormsViewGroup, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\..\packages\Xamarin.Forms.2.3.2.127\lib\MonoAndroid10\FormsViewGroup.dll</HintPath>
|
||||
<HintPath>..\..\packages\Xamarin.Forms.2.3.0.34-pre1\lib\MonoAndroid10\FormsViewGroup.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="GoogleMediaFramework">
|
||||
|
|
@ -202,7 +202,7 @@
|
|||
<HintPath>..\..\Components\xamarin.auth-1.2.3.1\lib\android\Xamarin.Auth.Android.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Xamarin.Forms.Core, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\..\packages\Xamarin.Forms.2.3.2.127\lib\MonoAndroid10\Xamarin.Forms.Core.dll</HintPath>
|
||||
<HintPath>..\..\packages\Xamarin.Forms.2.3.0.34-pre1\lib\MonoAndroid10\Xamarin.Forms.Core.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Xamarin.Forms.Labs, Version=1.0.1.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
|
|
@ -218,15 +218,15 @@
|
|||
<HintPath>..\..\..\..\Visual Studio 2015\Projects\App2\packages\Xamarin.Forms.Maps.2.3.0.107\lib\MonoAndroid10\Xamarin.Forms.Maps.Android.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Xamarin.Forms.Platform, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\..\packages\Xamarin.Forms.2.3.2.127\lib\MonoAndroid10\Xamarin.Forms.Platform.dll</HintPath>
|
||||
<HintPath>..\..\packages\Xamarin.Forms.2.3.0.34-pre1\lib\MonoAndroid10\Xamarin.Forms.Platform.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Xamarin.Forms.Platform.Android, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\..\packages\Xamarin.Forms.2.3.2.127\lib\MonoAndroid10\Xamarin.Forms.Platform.Android.dll</HintPath>
|
||||
<HintPath>..\..\packages\Xamarin.Forms.2.3.0.34-pre1\lib\MonoAndroid10\Xamarin.Forms.Platform.Android.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Xamarin.Forms.Xaml, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\..\packages\Xamarin.Forms.2.3.2.127\lib\MonoAndroid10\Xamarin.Forms.Xaml.dll</HintPath>
|
||||
<HintPath>..\..\packages\Xamarin.Forms.2.3.0.34-pre1\lib\MonoAndroid10\Xamarin.Forms.Xaml.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Xamarin.GooglePlayServices.Ads, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
|
|
@ -444,11 +444,11 @@
|
|||
</PropertyGroup>
|
||||
<Error Condition="!Exists('..\..\packages\Xamarin.GooglePlayServices.Basement.29.0.0.2\build\Xamarin.GooglePlayServices.Basement.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.GooglePlayServices.Basement.29.0.0.2\build\Xamarin.GooglePlayServices.Basement.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\Xamarin.Forms.2.3.0.34-pre1\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Forms.2.3.0.34-pre1\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets'))" />
|
||||
</Target>
|
||||
<Import Project="..\..\packages\Xamarin.GooglePlayServices.Basement.29.0.0.2\build\Xamarin.GooglePlayServices.Basement.targets" Condition="Exists('..\..\packages\Xamarin.GooglePlayServices.Basement.29.0.0.2\build\Xamarin.GooglePlayServices.Basement.targets')" />
|
||||
<Import Project="..\..\packages\Xamarin.Android.Support.Vector.Drawable.23.3.0\build\Xamarin.Android.Support.Vector.Drawable.targets" Condition="Exists('..\..\packages\Xamarin.Android.Support.Vector.Drawable.23.3.0\build\Xamarin.Android.Support.Vector.Drawable.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.0.34-pre1\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets" Condition="Exists('..\..\packages\Xamarin.Forms.2.3.0.34-pre1\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ using XLabs.Caching;
|
|||
|
||||
namespace BookAStar.Droid
|
||||
{
|
||||
[Activity(Name="fr.pschneider.bas.MainActivity", Label = "BookAStar", Icon = "@drawable/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
|
||||
[Activity(Name="fr.pschneider.bas.MainActivity", Label = "BookAStar", Theme = "@style/MainTheme", Icon = "@drawable/icon", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
|
||||
public class MainActivity :
|
||||
XFormsApplicationDroid,
|
||||
// was global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity,
|
||||
|
|
@ -51,23 +51,23 @@ namespace BookAStar.Droid
|
|||
{
|
||||
base.OnCreate(bundle);
|
||||
|
||||
// Window.RequestFeature(Android.Views.WindowFeatures.ActionBar);
|
||||
|
||||
if (Build.VERSION.SdkInt >= BuildVersionCodes.Kitkat)
|
||||
{
|
||||
Android.Webkit.WebView.SetWebContentsDebuggingEnabled(true);
|
||||
}
|
||||
|
||||
// no Resolver.IsSet
|
||||
IXFormsApp<XFormsApplicationDroid> app =null;
|
||||
if (!Resolver.IsSet)
|
||||
{
|
||||
this.SetIoc();
|
||||
}
|
||||
else
|
||||
{
|
||||
var app = Resolver.Resolve<IXFormsApp>() as IXFormsApp<XFormsApplicationDroid>;
|
||||
if (app != null) app.AppContext = this;
|
||||
app = Resolver.Resolve<IXFormsApp>() as IXFormsApp<XFormsApplicationDroid>;
|
||||
if (app != null)
|
||||
app.AppContext = this;
|
||||
}
|
||||
|
||||
global::Xamarin.Forms.Forms.Init(this, bundle);
|
||||
global::Xamarin.FormsMaps.Init(this, bundle);
|
||||
|
||||
|
|
@ -86,14 +86,14 @@ namespace BookAStar.Droid
|
|||
// Theme.ApplyStyle(Resource.Style.MainTheme, false);
|
||||
|
||||
// XmlREader tb = Resources.GetLayout(Resource.Layout.Toolbar);
|
||||
var tb = new Toolbar(this.BaseContext);
|
||||
|
||||
this.SetActionBar(tb);
|
||||
// FIXME Why does Forms try to theme this toolbar?
|
||||
var tb = new Toolbar(this.BaseContext);
|
||||
this.SetActionBar(tb);
|
||||
|
||||
LoadApplication(new BookAStar.App(this));
|
||||
/*
|
||||
// TabLayoutResource = Resource.Layout.Tabbar;
|
||||
// ToolbarResource = Resource.Layout.Toolbar;
|
||||
/*
|
||||
base.OnCreate(bundle);
|
||||
global::Xamarin.Forms.Forms.Init(this, bundle);
|
||||
global::Xamarin.FormsMaps.Init(this, bundle);
|
||||
|
|
@ -112,8 +112,8 @@ namespace BookAStar.Droid
|
|||
|
||||
app.Init(this);
|
||||
|
||||
var documents = app.AppDataDirectory;
|
||||
var pathToDatabase = Path.Combine(documents, "xforms.db");
|
||||
var documents = app.AppDataDirectory;
|
||||
var pathToDatabase = Path.Combine(documents, "xforms.db");
|
||||
|
||||
resolverContainer.Register<IDevice>(t => AndroidDevice.CurrentDevice)
|
||||
.Register<IDisplay>(t => t.Resolve<IDevice>().Display)
|
||||
|
|
@ -127,8 +127,6 @@ namespace BookAStar.Droid
|
|||
.Register<ICacheProvider>(
|
||||
t => new SQLiteSimpleCache(new SQLitePlatformAndroid(),
|
||||
new SQLiteConnectionString(pathToDatabase, true), t.Resolve<IJsonSerializer>()));
|
||||
|
||||
|
||||
Resolver.SetResolver(resolverContainer.GetResolver());
|
||||
}
|
||||
|
||||
|
|
@ -199,7 +197,7 @@ namespace BookAStar.Droid
|
|||
{
|
||||
Task.Run(async () =>
|
||||
{
|
||||
App.CurrentApp.ShowBookQuery(
|
||||
App.ShowBookQuery(
|
||||
await DataManager.Current.BookQueries.Get(queryId));
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@
|
|||
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="monoandroid60" />
|
||||
<package id="Plugin.CurrentActivity" version="1.0.1" targetFramework="monoandroid70" />
|
||||
<package id="Plugin.Permissions" version="1.1.7" targetFramework="monoandroid70" />
|
||||
<package id="Scorchio.NinjaCoder.Xamarin.Forms.Labs" version="2.0.0" targetFramework="monoandroid70" />
|
||||
<package id="SQLite.Net.Async-PCL" version="3.1.1" targetFramework="monoandroid70" />
|
||||
<package id="SQLite.Net.Core-PCL" version="3.1.1" targetFramework="monoandroid70" />
|
||||
<package id="SQLite.Net-PCL" version="3.1.1" targetFramework="monoandroid70" />
|
||||
|
|
@ -23,7 +22,7 @@
|
|||
<package id="Xamarin.Android.Support.v7.RecyclerView" version="23.3.0" targetFramework="monoandroid60" />
|
||||
<package id="Xamarin.Android.Support.Vector.Drawable" version="23.3.0" targetFramework="monoandroid60" />
|
||||
<package id="Xamarin.Controls.SignaturePad" version="1.4.0" targetFramework="monoandroid70" />
|
||||
<package id="Xamarin.Forms" version="2.3.2.127" targetFramework="monoandroid70" />
|
||||
<package id="Xamarin.Forms" version="2.3.0.34-pre1" targetFramework="monoandroid70" />
|
||||
<package id="Xamarin.Forms.Labs" version="1.0.1.0" targetFramework="monoandroid70" />
|
||||
<package id="Xamarin.GooglePlayServices.Ads" version="29.0.0.2" targetFramework="monoandroid41" />
|
||||
<package id="Xamarin.GooglePlayServices.Analytics" version="29.0.0.2" targetFramework="monoandroid41" />
|
||||
|
|
|
|||
|
|
@ -40,14 +40,13 @@
|
|||
<Setter Property="FontAttributes" Value="Italic" />
|
||||
<Setter Property="HorizontalOptions" Value="Center" />
|
||||
<Setter Property="TextColor" Value="{StaticResource GroupingTextColor}" />
|
||||
<Setter Property="VerticalOptions" Value="Start" />
|
||||
</Style>
|
||||
|
||||
<Style x:Key="LabelStyle" TargetType="Label">
|
||||
<Setter Property="TextColor" Value="{StaticResource TextColor}" />
|
||||
<Setter Property="FontAttributes" Value="Bold" />
|
||||
<Setter Property="FontSize" Value="{StaticResource MediumFontSize}" />
|
||||
<Setter Property="VerticalOptions" Value="Start" />
|
||||
<Setter Property="HorizontalOptions" Value="Start" />
|
||||
<Setter Property="LineBreakMode" Value="WordWrap" />
|
||||
</Style>
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,9 @@ using System.Linq;
|
|||
using System.Reflection;
|
||||
using System.Threading.Tasks;
|
||||
using Xamarin.Forms;
|
||||
using XLabs.Forms.Controls;
|
||||
using XLabs.Forms.Mvvm;
|
||||
using XLabs.Forms.Pages;
|
||||
using XLabs.Forms.Services;
|
||||
using XLabs.Ioc;
|
||||
using XLabs.Platform.Mvvm;
|
||||
|
|
@ -30,16 +32,30 @@ namespace BookAStar
|
|||
{
|
||||
public static IPlatform PlatformSpecificInstance { get; set; }
|
||||
public static string AppName { get; set; }
|
||||
|
||||
public void ShowQueries()
|
||||
{
|
||||
masterDetail.Detail = bQueriesPage;
|
||||
masterDetail.SendBackButtonPressed();
|
||||
}
|
||||
public void ShowAccounts()
|
||||
{
|
||||
masterDetail.Detail = accChooserPage;
|
||||
masterDetail.SendBackButtonPressed();
|
||||
}
|
||||
// Exists in order to dispose of a static instance strongly typed
|
||||
// TODO : replace all references to this field
|
||||
// by Views resolution, and then, drop it
|
||||
public static App CurrentApp { get { return Current as App; } }
|
||||
public DataManager DataManager { get; set; } = new DataManager();
|
||||
|
||||
public static void Init()
|
||||
{
|
||||
var app = Resolver.Resolve<IXFormsApp>();
|
||||
|
||||
if (app == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
// navigation registration
|
||||
|
||||
app.Closing += (o, e) => Debug.WriteLine("Application Closing");
|
||||
app.Error += (o, e) => Debug.WriteLine("Application Error");
|
||||
|
|
@ -48,42 +64,56 @@ namespace BookAStar
|
|||
app.Rotation += (o, e) => Debug.WriteLine("Application Rotated");
|
||||
app.Startup += (o, e) => Debug.WriteLine("Application Startup");
|
||||
app.Suspended += (o, e) => Debug.WriteLine("Application Suspended");
|
||||
|
||||
|
||||
}
|
||||
public void Configure(IXFormsApp app)
|
||||
{
|
||||
ViewFactory.EnableCache = true;
|
||||
ViewFactory.Register<DashboardPage, DashboardViewModel>(
|
||||
resolver => new DashboardViewModel());
|
||||
ViewFactory.Register<BookQueryPage, BookQueryViewModel>();
|
||||
ViewFactory.Register<EditBillingLinePage, BillingLineViewModel>();
|
||||
ViewFactory.Register<EditEstimatePage, EstimateViewModel>();
|
||||
}
|
||||
|
||||
|
||||
ExtendedMasterDetailPage masterDetail;
|
||||
|
||||
public App(IPlatform instance)
|
||||
{
|
||||
PlatformSpecificInstance = instance;
|
||||
InitializeComponent();
|
||||
Init();
|
||||
MainPage = GetMainPage();
|
||||
BuildMainPage();
|
||||
}
|
||||
BookQueriesPage bQueriesPage;
|
||||
AccountChooserPage accChooserPage;
|
||||
HomePage home;
|
||||
|
||||
public static Page GetMainPage()
|
||||
private void BuildMainPage()
|
||||
{
|
||||
ViewFactory.Register<SettingsPage,SettingsViewModel>();
|
||||
ViewFactory.Register<BookQueryPage, BookQueryViewModel>(
|
||||
resolver => new BookQueryViewModel ()
|
||||
);
|
||||
|
||||
var bQueriesPage = new BookQueriesPage
|
||||
accChooserPage = new AccountChooserPage();
|
||||
|
||||
bQueriesPage = new BookQueriesPage
|
||||
{
|
||||
BindingContext = DataManager.Current.BookQueries,
|
||||
Title = "Demandes"
|
||||
};
|
||||
|
||||
// var mainPage = new NavigationPage(bQueriesPage);
|
||||
home = new HomePage() { Title = "Accueil" };
|
||||
|
||||
var mainPage = new XLabs.Forms.Pages.ExtendedMasterDetailPage() {
|
||||
// var mainPage = new NavigationPage(bQueriesPage);
|
||||
/*
|
||||
masterDetail = new ExtendedMasterDetailPage() {
|
||||
Title="MainPAge"
|
||||
};
|
||||
|
||||
mainPage.Master = bQueriesPage;
|
||||
mainPage.Detail = new SettingsPage();
|
||||
|
||||
Resolver.Resolve<IDependencyContainer>()
|
||||
.Register<INavigationService>(t => new NavigationService(mainPage.Navigation));
|
||||
masterDetail.Master = new DashboardPage {
|
||||
Title = "Bookingstar",
|
||||
BindingContext = new DashboardViewModel() };
|
||||
masterDetail.Detail = new HomePage { Title = "Accueil" };
|
||||
|
||||
*/
|
||||
ToolbarItem tiSetts = new ToolbarItem()
|
||||
{
|
||||
Text = "Paramètres",
|
||||
|
|
@ -95,9 +125,11 @@ namespace BookAStar
|
|||
Text = "Accueil",
|
||||
Icon = "icon.png"
|
||||
};
|
||||
mainPage.ToolbarItems.Add(tiHome);
|
||||
mainPage.ToolbarItems.Add(tiSetts);
|
||||
return mainPage;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* searchPage = new SearchPage
|
||||
{
|
||||
|
|
@ -161,13 +193,33 @@ namespace BookAStar
|
|||
};
|
||||
MainPage = Navigation;
|
||||
*/
|
||||
var mainTab = new ExtendedTabbedPage()
|
||||
{
|
||||
Title = "XLabs",
|
||||
SwipeEnabled = true,
|
||||
TintColor = Color.White,
|
||||
BarTintColor = Color.Blue,
|
||||
Badges = { "1", "2", "3" },
|
||||
TabBarBackgroundImage = "visuel_sexion.png",
|
||||
TabBarSelectedImage = "icon.png",
|
||||
};
|
||||
|
||||
var navPage = new NavigationPage(bQueriesPage);
|
||||
//var navPage = new NavigationPage(mainTab);
|
||||
|
||||
navPage.ToolbarItems.Add(tiHome);
|
||||
navPage.ToolbarItems.Add(tiSetts);
|
||||
|
||||
this.MainPage = navPage;
|
||||
|
||||
Resolver.Resolve<IDependencyContainer>()
|
||||
.Register<INavigationService>(t => new NavigationService(navPage.Navigation))
|
||||
;
|
||||
}
|
||||
|
||||
internal void EditCommandLine(Page parentPage, CommandLine com)
|
||||
internal void EditCommandLine(Page parentPage, BillingLine com)
|
||||
{
|
||||
CommandLineEditorPage editCommandLine = new CommandLineEditorPage
|
||||
EditBillingLinePage editCommandLine = new EditBillingLinePage
|
||||
{
|
||||
Title = "Edition d'une ligne de facture",
|
||||
BindingContext = com
|
||||
|
|
@ -181,26 +233,12 @@ namespace BookAStar
|
|||
"gcm/register",
|
||||
PlatformSpecificInstance.GetDeviceInfo());
|
||||
}
|
||||
|
||||
public void ShowBookQuery(BookQueryData data)
|
||||
|
||||
public static void ShowBookQuery (BookQueryData query)
|
||||
{
|
||||
BookQueryPage bookQueryPage = new BookQueryPage
|
||||
{
|
||||
Title = "Demande de devis",
|
||||
BindingContext = data
|
||||
};
|
||||
ShowPage(bookQueryPage);
|
||||
}
|
||||
|
||||
public void EditEstimate(Estimate data)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
EditEstimatePage editEstimate = new EditEstimatePage
|
||||
{
|
||||
Title = "Création d'un devis"
|
||||
};
|
||||
editEstimate.Estimate = data;
|
||||
// ShowPage(editEstimate);
|
||||
var page = ViewFactory.CreatePage<BookQueryViewModel
|
||||
, BookQueryPage>(null, new BookQueryViewModel(query));
|
||||
App.Current.MainPage.Navigation.PushAsync(page as Page);
|
||||
}
|
||||
|
||||
// TODO système de persistance de l'état de l'appli
|
||||
|
|
@ -212,12 +250,12 @@ namespace BookAStar
|
|||
/// <param name="parentPage">Parent Page</param>
|
||||
/// <param name="pageType">Type of page to show</param>
|
||||
/// <returns></returns>
|
||||
private static async Task ShowPage(VisualElement parentPage, Type pageType)
|
||||
public static async Task ShowPage(VisualElement parentPage, Type pageType)
|
||||
{
|
||||
// Get all the constructors of the page type.
|
||||
var constructors = pageType.GetTypeInfo().DeclaredConstructors;
|
||||
|
||||
foreach ( var page in
|
||||
foreach (var page in
|
||||
from constructor in constructors
|
||||
where constructor.GetParameters().Length == 0
|
||||
select (Page)constructor.Invoke(null))
|
||||
|
|
|
|||
|
|
@ -42,16 +42,20 @@
|
|||
</Compile>
|
||||
<Compile Include="Constants.cs" />
|
||||
<Compile Include="Factories\ViewFactory.cs" />
|
||||
<Compile Include="Helpers\AvatarImageSource.cs" />
|
||||
<Compile Include="Helpers\DataManager.cs" />
|
||||
<Compile Include="Helpers\PageHelpers.cs" />
|
||||
<Compile Include="Helpers\PropertySupport.cs" />
|
||||
<Compile Include="Helpers\RemoteEntityRO.cs" />
|
||||
<Compile Include="Helpers\Settings.cs" />
|
||||
<Compile Include="Helpers\UserHelpers.cs" />
|
||||
<Compile Include="Interfaces\IComponentContext.cs" />
|
||||
<Compile Include="Interfaces\IMDEditor.cs" />
|
||||
<Compile Include="Interfaces\IModelViewModel.cs" />
|
||||
<Compile Include="Interfaces\IViewFactory.cs" />
|
||||
<Compile Include="Model\ClientProviderInfo.cs" />
|
||||
<Compile Include="Interfaces\IBookQueryData.cs" />
|
||||
<Compile Include="Interfaces\IBillingLine.cs" />
|
||||
<Compile Include="Interfaces\IEstimate.cs" />
|
||||
<Compile Include="Pages\BlogPage.cs" />
|
||||
<Compile Include="Pages\BookQueriesPage.xaml.cs">
|
||||
<DependentUpon>BookQueriesPage.xaml</DependentUpon>
|
||||
|
|
@ -59,8 +63,11 @@
|
|||
<Compile Include="Pages\BookQueryPage.xaml.cs">
|
||||
<DependentUpon>BookQueryPage.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Pages\CommandLineEditorPage.xaml.cs">
|
||||
<DependentUpon>CommandLineEditorPage.xaml</DependentUpon>
|
||||
<Compile Include="Pages\EditBillingLinePage.xaml.cs">
|
||||
<DependentUpon>EditBillingLinePage.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Pages\DashboardPage.xaml.cs">
|
||||
<DependentUpon>DashboardPage.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Pages\EventDetail.xaml.cs">
|
||||
<DependentUpon>EventDetail.xaml</DependentUpon>
|
||||
|
|
@ -72,7 +79,7 @@
|
|||
<Compile Include="Model\Blog\BlogTag.cs" />
|
||||
<Compile Include="Model\BookQueryData.cs" />
|
||||
<Compile Include="Model\Market\BaseProduct.cs" />
|
||||
<Compile Include="Model\Workflow\CommandLine.cs" />
|
||||
<Compile Include="Model\Workflow\BillingLine.cs" />
|
||||
<Compile Include="Model\Manager.cs" />
|
||||
<Compile Include="Model\Auth\MobileAppDeclaration.cs" />
|
||||
<Compile Include="Model\Auth\passwrecovery.cs" />
|
||||
|
|
@ -110,10 +117,16 @@
|
|||
<Compile Include="Pages\EditEstimatePage.xaml.cs">
|
||||
<DependentUpon>EditEstimatePage.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Pages\HomePage.xaml.cs">
|
||||
<DependentUpon>HomePage.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Pages\PinPage.cs" />
|
||||
<Compile Include="ViewModels\BookQueriesViewModel.cs" />
|
||||
<Compile Include="ViewModels\BookQueryViewModel.cs" />
|
||||
<Compile Include="ViewModels\SettingsViewModel.cs" />
|
||||
<Compile Include="ViewModels\BillingLineViewModel.cs" />
|
||||
<Compile Include="ViewModels\DashboardViewModel.cs" />
|
||||
<Compile Include="ViewModels\EstimateViewModel.cs" />
|
||||
<Compile Include="ViewModels\UserLoginViewModel.cs" />
|
||||
<Compile Include="ViewModels\ViewModelBase.cs" />
|
||||
<Compile Include="Views\CommandLineEditor.xaml.cs">
|
||||
<DependentUpon>CommandLineEditor.xaml</DependentUpon>
|
||||
|
|
@ -123,8 +136,8 @@
|
|||
<Compile Include="Pages\SearchPage.xaml.cs">
|
||||
<DependentUpon>SearchPage.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Pages\SettingsPage.xaml.cs">
|
||||
<DependentUpon>SettingsPage.xaml</DependentUpon>
|
||||
<Compile Include="Pages\AccountChooserPage.xaml.cs">
|
||||
<DependentUpon>AccountChooserPage.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Model\Tag.cs" />
|
||||
</ItemGroup>
|
||||
|
|
@ -137,7 +150,9 @@
|
|||
<ItemGroup>
|
||||
<None Include="app.config" />
|
||||
<None Include="GettingStarted.Xamarin" />
|
||||
<None Include="packages.config" />
|
||||
<None Include="packages.config">
|
||||
<SubType>Designer</SubType>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Pages\EventDetail.xaml">
|
||||
|
|
@ -148,7 +163,7 @@
|
|||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Pages\SettingsPage.xaml">
|
||||
<EmbeddedResource Include="Pages\AccountChooserPage.xaml">
|
||||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
|
|
@ -186,19 +201,23 @@
|
|||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Xamarin.Forms.Core, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\..\packages\Xamarin.Forms.2.3.2.127\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.Core.dll</HintPath>
|
||||
<HintPath>..\..\packages\Xamarin.Forms.2.3.0.34-pre1\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.Core.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Xamarin.Forms.Maps, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\..\packages\Xamarin.Forms.Maps.2.3.2.127\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.Maps.dll</HintPath>
|
||||
<HintPath>..\..\packages\Xamarin.Forms.Maps.2.3.0.34-pre1\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.Maps.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Xamarin.Forms.Platform, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\..\packages\Xamarin.Forms.2.3.2.127\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.Platform.dll</HintPath>
|
||||
<HintPath>..\..\packages\Xamarin.Forms.2.3.0.34-pre1\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.Platform.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Xamarin.Forms.Xaml, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\..\packages\Xamarin.Forms.2.3.2.127\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.Xaml.dll</HintPath>
|
||||
<HintPath>..\..\packages\Xamarin.Forms.2.3.0.34-pre1\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.Xaml.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="XLabs.Caching, Version=2.2.0.38182, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\..\packages\XLabs.Caching.2.2.0-pre05\lib\portable-net45+netcore45+wpa81+wp8+monoandroid+monotouch+xamarinios10+xamarinmac\XLabs.Caching.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="XLabs.Core, Version=2.2.0.38178, Culture=neutral, processorArchitecture=MSIL">
|
||||
|
|
@ -221,6 +240,10 @@
|
|||
<HintPath>..\..\packages\XLabs.Serialization.2.2.0-pre05\lib\portable-net45+netcore45+wpa81+wp8+monoandroid+monotouch+xamarinios10+xamarinmac\XLabs.Serialization.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="XLabs.Serialization.Json.NET, Version=2.2.0.38187, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\..\packages\XLabs.Serialization.JSON.2.2.0-pre05\lib\portable-net45+netcore45+wpa81+wp8+monoandroid+monotouch+xamarinios10+xamarinmac\XLabs.Serialization.Json.NET.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Pages\BookQueryPage.xaml">
|
||||
|
|
@ -246,9 +269,6 @@
|
|||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="icon-anon.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Views\CommandLineEditor.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
|
|
@ -256,18 +276,38 @@
|
|||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Pages\CommandLineEditorPage.xaml">
|
||||
<EmbeddedResource Include="Pages\EditBillingLinePage.xaml">
|
||||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Pages\DashboardPage.xaml">
|
||||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Images\icon_add_user.png" />
|
||||
<EmbeddedResource Include="Images\icon_anon_user.png" />
|
||||
<EmbeddedResource Include="Images\icon_block_user.png" />
|
||||
<EmbeddedResource Include="Images\icon_remove_user.png" />
|
||||
<EmbeddedResource Include="Images\icon_user.png" />
|
||||
<EmbeddedResource Include="Images\icon_user_settings.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Pages\HomePage.xaml">
|
||||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<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.0.34-pre1\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets" Condition="Exists('..\..\packages\Xamarin.Forms.2.3.0.34-pre1\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
<ErrorText>Ce projet fait référence à des packages NuGet qui sont manquants sur cet ordinateur. Utilisez l'option de restauration des packages NuGet pour les télécharger. Pour plus d'informations, consultez http://go.microsoft.com/fwlink/?LinkID=322105. Le fichier manquant est : {0}.</ErrorText>
|
||||
</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\Xamarin.Forms.2.3.0.34-pre1\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Forms.2.3.0.34-pre1\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets'))" />
|
||||
</Target>
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
|
|
|
|||
|
|
@ -21,31 +21,5 @@ namespace BookAStar
|
|||
|
||||
#endregion
|
||||
|
||||
#region Colors & sizes
|
||||
[Obsolete]
|
||||
public static readonly Thickness PagePadding =
|
||||
new Thickness(5, Device.OnPlatform(20, 20, 20), 5, 5);
|
||||
|
||||
[Obsolete]
|
||||
public static readonly Thickness DefaultPadding =
|
||||
new Thickness(5, Device.OnPlatform(20, 20, 20), 3, 3);
|
||||
|
||||
[Obsolete]
|
||||
public static readonly Font TitleFont =
|
||||
Font.SystemFontOfSize(Device.OnPlatform(50, 50, 50), FontAttributes.Bold);
|
||||
|
||||
[Obsolete]
|
||||
public static readonly Color OddBackgroundColor =
|
||||
Device.OnPlatform(Color.Aqua, Color.Aqua, Color.Aqua);
|
||||
|
||||
[Obsolete]
|
||||
public static readonly Color ForegroundColor =
|
||||
Device.OnPlatform(Color.White, Color.White, Color.White);
|
||||
|
||||
[Obsolete]
|
||||
public static readonly Color BackgroundColor =
|
||||
Device.OnPlatform(Color.Black, Color.White, Color.White);
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,30 +0,0 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Xamarin.Forms;
|
||||
using Xamarin.Forms.Xaml;
|
||||
|
||||
namespace BookAStar
|
||||
{
|
||||
[ContentProperty("Source")]
|
||||
public class MyExtension : IMarkupExtension
|
||||
{
|
||||
public string Source { get; set; }
|
||||
|
||||
public object ProvideValue(IServiceProvider serviceProvider)
|
||||
{
|
||||
|
||||
// Do your translation lookup here, using whatever method you require
|
||||
|
||||
if (Source != null)
|
||||
{
|
||||
if (Source.StartsWith("res://"))
|
||||
return ImageSource.FromResource(Source.Substring(6));
|
||||
return ImageSource.FromUri(new Uri(Source));
|
||||
}
|
||||
return ImageSource.FromResource("BookAStar.icon-anon.png");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -17,12 +17,12 @@ namespace BookAStar.Helpers
|
|||
public RemoteEntity<Estimate, long> Estimates { get; set; }
|
||||
public RemoteEntity<Blog, long> Blogspot { get; set; }
|
||||
public LocalEntity<ClientProviderInfo,string> Contacts { get; set; }
|
||||
|
||||
public static DataManager Current
|
||||
protected static DataManager current = new DataManager();
|
||||
public static DataManager Current
|
||||
{
|
||||
get
|
||||
{
|
||||
return App.CurrentApp.DataManager;
|
||||
return current;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -31,9 +31,10 @@ namespace BookAStar
|
|||
|
||||
private const string userNameKey = "user_id";
|
||||
private const string PushNotificationsKey = "pushNotifs";
|
||||
private const string AllowGPSUsageKey = "allowGPSUsage";
|
||||
private const string UserListsKey = "userList";
|
||||
private const string GoogleRegIdKey = "googleRedId";
|
||||
|
||||
private const string AllowProBookingOnlyKey = "allowProBookingOnly";
|
||||
|
||||
|
||||
private static readonly string UserIdDefault =
|
||||
|
|
@ -149,7 +150,7 @@ namespace BookAStar
|
|||
App.CurrentApp.PostDeviceInfo();
|
||||
}
|
||||
}
|
||||
// TODO else Unregister the device
|
||||
// TODO else Unregister this device
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -175,13 +176,45 @@ namespace BookAStar
|
|||
PushNotificationsDefault);
|
||||
}
|
||||
set {
|
||||
// TODO Stop Broadcast receiver
|
||||
AppSettings.AddOrUpdateValue<bool> (
|
||||
PushNotificationsKey,
|
||||
value);
|
||||
}
|
||||
}
|
||||
|
||||
public static void SetMusical (string key, double value)
|
||||
public static bool AllowGPSUsage
|
||||
{
|
||||
get
|
||||
{
|
||||
return AppSettings.GetValueOrDefault<bool>(
|
||||
AllowGPSUsageKey,
|
||||
PushNotificationsDefault);
|
||||
}
|
||||
set
|
||||
{
|
||||
AppSettings.AddOrUpdateValue<bool>(
|
||||
AllowGPSUsageKey,
|
||||
value);
|
||||
}
|
||||
}
|
||||
// TODO make it a server side user's parameter
|
||||
public static bool AllowProBookingOnly
|
||||
{
|
||||
get
|
||||
{
|
||||
return AppSettings.GetValueOrDefault<bool>(
|
||||
AllowProBookingOnlyKey,
|
||||
PushNotificationsDefault);
|
||||
}
|
||||
set
|
||||
{
|
||||
AppSettings.AddOrUpdateValue<bool>(
|
||||
AllowProBookingOnlyKey,
|
||||
value);
|
||||
}
|
||||
}
|
||||
public static void SetMusical (string key, double value)
|
||||
{
|
||||
AppSettings.AddOrUpdateValue <double> (MusicalKey + key, value);
|
||||
}
|
||||
|
|
|
|||
20
BookAStar/BookAStar/Helpers/PageHelpers.cs
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Xamarin.Forms;
|
||||
|
||||
namespace BookAStar.Helpers
|
||||
{
|
||||
public static class PageHelpers
|
||||
{
|
||||
public static async Task<bool> Confirm(this Page page, string title, string procedure)
|
||||
{
|
||||
string yes = "Oui", no = "Non";
|
||||
var answer = await page.DisplayAlert(title,
|
||||
procedure, yes, no);
|
||||
return answer;
|
||||
}
|
||||
}
|
||||
}
|
||||
28
BookAStar/BookAStar/Helpers/UserHelpers.cs
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Xamarin.Forms;
|
||||
|
||||
namespace BookAStar.Helpers
|
||||
{
|
||||
public static class UserHelpers
|
||||
{
|
||||
public static ImageSource Avatar(string avatarPath)
|
||||
{
|
||||
/*foreach (var r in App.Current.Resources)
|
||||
{
|
||||
Debug.WriteLine($"#R# {r.Key} : {r.GetType().Name}");
|
||||
}*/
|
||||
var result = avatarPath == null ?
|
||||
ImageSource.FromResource(/* "BookAStar.icon_user.png" */ "BookAStar.Images.icon_user.png") :
|
||||
avatarPath.StartsWith("res://") ?
|
||||
ImageSource.FromResource(avatarPath.Substring(6)) :
|
||||
ImageSource.FromUri(new Uri(avatarPath));
|
||||
var test = ImageSource.FromResource("none.resource.png");
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
BookAStar/BookAStar/Images/icon_add_user.png
Normal file
|
After Width: | Height: | Size: 4.6 KiB |
BIN
BookAStar/BookAStar/Images/icon_anon_user.png
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
BIN
BookAStar/BookAStar/Images/icon_block_user.png
Normal file
|
After Width: | Height: | Size: 7 KiB |
BIN
BookAStar/BookAStar/Images/icon_remove_user.png
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
BIN
BookAStar/BookAStar/Images/icon_user.png
Normal file
|
After Width: | Height: | Size: 4.4 KiB |
BIN
BookAStar/BookAStar/Images/icon_user_settings.png
Normal file
|
After Width: | Height: | Size: 8.2 KiB |
12
BookAStar/BookAStar/Interfaces/IBillingLine.cs
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
using System;
|
||||
|
||||
namespace BookAStar.Interfaces
|
||||
{
|
||||
public interface IBillingLine
|
||||
{
|
||||
int Count { get; set; }
|
||||
string Description { get; set; }
|
||||
TimeSpan Duration { get; set; }
|
||||
decimal UnitaryCost { get; set; }
|
||||
}
|
||||
}
|
||||
15
BookAStar/BookAStar/Interfaces/IBookQueryData.cs
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
using System;
|
||||
using BookAStar.Model.Social;
|
||||
using BookAStar.Model;
|
||||
|
||||
namespace BookAStar.Interfaces
|
||||
{
|
||||
public interface IBookQueryData
|
||||
{
|
||||
ClientProviderInfo Client { get; set; }
|
||||
DateTime EventDate { get; set; }
|
||||
long Id { get; set; }
|
||||
Location Location { get; set; }
|
||||
decimal? Previsionnal { get; set; }
|
||||
}
|
||||
}
|
||||
20
BookAStar/BookAStar/Interfaces/IEstimate.cs
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
using BookAStar.Model.Workflow;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace BookAStar.Model.Interfaces
|
||||
{
|
||||
public interface IEstimate
|
||||
{
|
||||
List<string> AttachedFiles { get; set; }
|
||||
List<string> AttachedGraphicList { get; }
|
||||
List<BillingLine> Bill { get; set; }
|
||||
string ClientId { get; set; }
|
||||
long? CommandId { get; set; }
|
||||
string CommandType { get; set; }
|
||||
string Description { get; set; }
|
||||
long Id { get; set; }
|
||||
string OwnerId { get; set; }
|
||||
int? Status { get; set; }
|
||||
string Title { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
@ -1,11 +1,12 @@
|
|||
using System;
|
||||
using BookAStar.Helpers;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
using Xamarin.Forms;
|
||||
|
||||
namespace BookAStar.Model.Auth.Account
|
||||
{
|
||||
|
|
@ -79,6 +80,13 @@ namespace BookAStar.Model.Auth.Account
|
|||
OnPropertyChanged("Avatar");
|
||||
}
|
||||
}
|
||||
public ImageSource AvatarSource
|
||||
{
|
||||
get
|
||||
{
|
||||
return UserHelpers.Avatar(avatar);
|
||||
}
|
||||
}
|
||||
private Tokens yavscTokens;
|
||||
public Tokens YavscTokens
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,9 +1,10 @@
|
|||
using BookAStar.Model.Social;
|
||||
using BookAStar.Interfaces;
|
||||
using BookAStar.Model.Social;
|
||||
using System;
|
||||
|
||||
namespace BookAStar.Model
|
||||
{
|
||||
public class BookQueryData
|
||||
public class BookQueryData : IBookQueryData
|
||||
{
|
||||
public ClientProviderInfo Client { get; set; }
|
||||
public Location Location { get; set; }
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
using BookAStar.Model.Social;
|
||||
using BookAStar.Helpers;
|
||||
using BookAStar.Model.Social;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
|
@ -13,18 +14,18 @@ namespace BookAStar.Model
|
|||
public string UserName { get; set; }
|
||||
|
||||
public string Avatar { get; set; }
|
||||
// private string avatar;
|
||||
// public string Avatar { get { return avatar ?? "icon-anon.png"; } set { avatar = value; } }
|
||||
public string UserId { get; set; }
|
||||
public int Rate { get; set; }
|
||||
public string EMail { get; set; }
|
||||
public string Phone { get; set; }
|
||||
public Location BillingAddress { get; set; }
|
||||
// TODO Get User Professional status existence as a boolean
|
||||
// And hack the avatar with
|
||||
public ImageSource AvatarOrNot
|
||||
{
|
||||
get
|
||||
{
|
||||
return Avatar ?? ImageSource.FromResource("BookAStar.icon-anon.png");
|
||||
return UserHelpers.Avatar(Avatar);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,13 +1,14 @@
|
|||
|
||||
using BookAStar.Interfaces;
|
||||
using System;
|
||||
|
||||
namespace BookAStar.Model.Workflow
|
||||
{
|
||||
public class CommandLine
|
||||
public class BillingLine : IBillingLine
|
||||
{
|
||||
public string Description { get; set; }
|
||||
public TimeSpan Duration { get; set; }
|
||||
public int Count { get; set; }
|
||||
public int Count { get; set; } = 1;
|
||||
public decimal UnitaryCost { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
using BookAStar.Helpers;
|
||||
using BookAStar.Model.Interfaces;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
|
@ -7,7 +8,7 @@ using Xamarin.Forms;
|
|||
|
||||
namespace BookAStar.Model.Workflow
|
||||
{
|
||||
public partial class Estimate
|
||||
public partial class Estimate : IEstimate
|
||||
{
|
||||
public long Id { get; set; }
|
||||
public long? CommandId { get; set; }
|
||||
|
|
@ -16,7 +17,7 @@ namespace BookAStar.Model.Workflow
|
|||
public string Description { get; set; }
|
||||
public int? Status { get; set; }
|
||||
public string Title { get; set; }
|
||||
public List<CommandLine> Bill { get; set; }
|
||||
public List<BillingLine> Bill { get; set; }
|
||||
/// <summary>
|
||||
/// List of attached graphic files
|
||||
/// to this estimate, as relative pathes to
|
||||
|
|
|
|||
53
BookAStar/BookAStar/Pages/AccountChooserPage.xaml
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
|
||||
xmlns:local="clr-namespace:BookAStar;assembly=BookAStar"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
x:Class="BookAStar.Pages.AccountChooserPage"
|
||||
Title="Paramètres Booking star" Style="{StaticResource PageStyle}"
|
||||
xmlns:lc="clr-namespace:XLabs.Forms.Controls;assembly=XLabs.Forms"
|
||||
xmlns:lb="clr-namespace:XLabs.Forms.Behaviors;assembly=XLabs.Forms">
|
||||
|
||||
<StackLayout>
|
||||
<Label Text="Compte utilisateur" StyleClass="Header"/>
|
||||
|
||||
<ListView x:Name="AccountListView"
|
||||
SeparatorVisibility="Default"
|
||||
VerticalOptions="FillAndExpand"
|
||||
>
|
||||
<ListView.Header>
|
||||
<StackLayout Orientation="Horizontal">
|
||||
|
||||
<Button x:Name="AddAccountBtn" Text="Connection, ou création d'un compte" />
|
||||
</StackLayout>
|
||||
</ListView.Header>
|
||||
|
||||
<ListView.ItemTemplate HeightRequest="60" VerticalOptions="StartAndExpand">
|
||||
<DataTemplate>
|
||||
<ViewCell>
|
||||
<lc:GesturesContentView>
|
||||
<Grid Padding="5"
|
||||
ColumnSpacing="10"
|
||||
RowSpacing="2" >
|
||||
<Image Source="{Binding AvatarSource}" HeightRequest="80"
|
||||
x:Name="avatarImage"/>
|
||||
<Label Grid.Column="0" Text="{Binding UserName}" >
|
||||
|
||||
</Label>
|
||||
</Grid>
|
||||
<lb:Gestures.Interests>
|
||||
<lb:GestureCollection>
|
||||
<lb:GestureInterest GestureType="Swipe" Direction="Left" GestureCommand="{Binding DumpParam}" GestureParameter="{Binding UserName}"/>
|
||||
</lb:GestureCollection>
|
||||
</lb:Gestures.Interests>
|
||||
</lc:GesturesContentView>
|
||||
</ViewCell>
|
||||
</DataTemplate>
|
||||
</ListView.ItemTemplate>
|
||||
<ListView.Footer>
|
||||
<StackLayout></StackLayout>
|
||||
</ListView.Footer>
|
||||
|
||||
</ListView>
|
||||
|
||||
</StackLayout>
|
||||
</ContentPage>
|
||||
|
|
@ -6,17 +6,19 @@ using System.Windows.Input;
|
|||
using System.Collections.ObjectModel;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using BookAStar.Helpers;
|
||||
using XLabs.Forms.Behaviors;
|
||||
using System.Diagnostics;
|
||||
using XLabs.Forms.Controls;
|
||||
|
||||
namespace BookAStar
|
||||
namespace BookAStar.Pages
|
||||
{
|
||||
|
||||
public partial class SettingsPage : ContentPage
|
||||
public partial class AccountChooserPage : ContentPage
|
||||
{
|
||||
|
||||
|
||||
public ICommand RemoteSettingsRefreshCommand { get; private set; }
|
||||
|
||||
public SettingsPage ()
|
||||
public AccountChooserPage ()
|
||||
{
|
||||
InitializeComponent ();
|
||||
|
||||
|
|
@ -28,19 +30,20 @@ namespace BookAStar
|
|||
|
||||
AddAccountBtn.Clicked += AddAccountBtn_Clicked;
|
||||
|
||||
RemoveAccountBouton.Clicked += RemoveAccountBouton_Clicked;
|
||||
// avatarImage.
|
||||
//RemoveAccountBouton.Clicked += RemoveAccountBouton_Clicked;
|
||||
|
||||
AccountListView.ItemSelected += Accounts_ItemSelected;
|
||||
|
||||
pushstatus.Toggled += Pushstatus_Toggled;
|
||||
|
||||
}
|
||||
|
||||
protected void Pushstatus_Toggled(object sender, ToggledEventArgs e)
|
||||
{
|
||||
MainSettings.PushNotifications = pushstatus.IsToggled;
|
||||
DumpParam = new RelayGesture((g, x) =>
|
||||
{
|
||||
if (g.GestureType == GestureType.Swipe && g.Direction == Directionality.Left)
|
||||
{
|
||||
RemoveAccount();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public RelayGesture DumpParam { get; set; }
|
||||
public ObservableCollection<User> Accounts { get; private set; }
|
||||
public Dictionary<string, double> Musical { get; private set; }
|
||||
public Dictionary<string, double> Environ { get; private set; }
|
||||
|
|
@ -49,31 +52,25 @@ namespace BookAStar
|
|||
{
|
||||
var user = e.SelectedItem as User;
|
||||
// should later invoke IdentificationChanged
|
||||
// FIXME don't do it when it's not from the user action
|
||||
MainSettings.CurrentUser = user;
|
||||
}
|
||||
|
||||
private async void RemoveAccountBouton_Clicked(object sender, EventArgs e)
|
||||
private async void RemoveAccount()
|
||||
{
|
||||
User user = AccountListView.SelectedItem as User;
|
||||
var doIt = await Confirm("Suppression de l'identification",
|
||||
var doIt = await this.Confirm("Suppression de l'identification",
|
||||
$"Vous êtes sur le point de supprimer votre identification pour ce compte : {user.UserName}\nContinuer ?");
|
||||
if (doIt)
|
||||
App.PlatformSpecificInstance.RevokeAccount(user.UserName);
|
||||
}
|
||||
|
||||
async Task<bool> Confirm(string title, string procedure)
|
||||
{
|
||||
string yes = "Oui", no = "Non";
|
||||
var answer = await DisplayAlert(title,
|
||||
procedure, yes, no);
|
||||
return answer;
|
||||
}
|
||||
|
||||
|
||||
protected override void OnAppearing()
|
||||
{
|
||||
base.OnAppearing();
|
||||
AccountListView.SelectedItem = MainSettings.CurrentUser;
|
||||
pushstatus.IsToggled = MainSettings.PushNotifications;
|
||||
}
|
||||
|
||||
private void AddAccountBtn_Clicked(object sender, EventArgs e)
|
||||
|
|
@ -3,8 +3,7 @@
|
|||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
xmlns:local="clr-namespace:BookAStar;assembly=BookAStar"
|
||||
x:Class="BookAStar.Pages.BookQueriesPage"
|
||||
Padding="{x:Static local:Constants.PagePadding}"
|
||||
BackgroundColor="{x:Static local:Constants.BackgroundColor}"
|
||||
Style="{StaticResource PageStyle}"
|
||||
>
|
||||
<ContentPage.Resources>
|
||||
<ResourceDictionary>
|
||||
|
|
@ -17,7 +16,12 @@
|
|||
<Setter Property="LineBreakMode" Value="WordWrap" />
|
||||
|
||||
</Style>
|
||||
|
||||
<Style TargetType="Label">
|
||||
<Setter Property="Style" Value="{StaticResource ContentLabelStyle}" />
|
||||
</Style>
|
||||
<Style TargetType="Button">
|
||||
<Setter Property="Style" Value="{StaticResource ButtonStyle}" />
|
||||
</Style>
|
||||
</ResourceDictionary>
|
||||
</ContentPage.Resources>
|
||||
|
||||
|
|
@ -29,7 +33,7 @@
|
|||
<ViewCell>
|
||||
<ViewCell.View>
|
||||
<StackLayout Orientation="Horizontal" Padding="10,10,10,10" VerticalOptions="StartAndExpand">
|
||||
<StackLayout Orientation="Vertical" BackgroundColor="{x:Static local:Constants.OddBackgroundColor}"
|
||||
<StackLayout Orientation="Vertical"
|
||||
HeightRequest="80" VerticalOptions="StartAndExpand">
|
||||
|
||||
<StackLayout Orientation="Vertical" >
|
||||
|
|
|
|||
|
|
@ -8,6 +8,8 @@ using System.Text;
|
|||
using System.Threading.Tasks;
|
||||
using System.Windows.Input;
|
||||
using Xamarin.Forms;
|
||||
using XLabs.Ioc;
|
||||
using XLabs.Platform.Services;
|
||||
|
||||
namespace BookAStar.Pages
|
||||
{
|
||||
|
|
@ -42,7 +44,7 @@ namespace BookAStar.Pages
|
|||
private void OnViewDetail(object sender, ItemTappedEventArgs e)
|
||||
{
|
||||
BookQueryData data = e.Item as BookQueryData;
|
||||
App.CurrentApp.ShowBookQuery(data);
|
||||
Resolver.Resolve<INavigationService>().NavigateTo<BookQueryPage>(true,data);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,8 +4,7 @@
|
|||
xmlns:local="clr-namespace:BookAStar;assembly=BookAStar"
|
||||
xmlns:maps="clr-namespace:Xamarin.Forms.Maps;assembly=Xamarin.Forms.Maps.dll"
|
||||
x:Class="BookAStar.Pages.BookQueryPage"
|
||||
BackgroundColor="{x:Static local:Constants.BackgroundColor}"
|
||||
Padding="{x:Static local:Constants.PagePadding}"
|
||||
Style ="{StaticResource PageStyle}"
|
||||
>
|
||||
<ContentPage.Resources>
|
||||
<ResourceDictionary>
|
||||
|
|
|
|||
|
|
@ -10,6 +10,9 @@ namespace BookAStar.Pages
|
|||
using Model;
|
||||
using Model.Workflow;
|
||||
using System.Threading.Tasks;
|
||||
using XLabs.Forms.Mvvm;
|
||||
using XLabs.Ioc;
|
||||
using XLabs.Platform.Services;
|
||||
|
||||
public partial class BookQueryPage : ContentPage
|
||||
{
|
||||
|
|
@ -70,7 +73,7 @@ namespace BookAStar.Pages
|
|||
Id = 0,
|
||||
Description = "# **Hello Estimate!**"
|
||||
};
|
||||
App.CurrentApp.EditEstimate(e);
|
||||
Resolver.Resolve<INavigationService>().NavigateTo<EditEstimatePage>(true, e);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
53
BookAStar/BookAStar/Pages/DashboardPage.xaml
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
<?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="BookAStar.Pages.DashboardPage"
|
||||
xmlns:lc="clr-namespace:XLabs.Forms.Controls;assembly=XLabs.Forms"
|
||||
xmlns:lb="clr-namespace:XLabs.Forms.Behaviors;assembly=XLabs.Forms"
|
||||
Style="{StaticResource PageStyle}">
|
||||
<ContentPage.Resources>
|
||||
<ResourceDictionary>
|
||||
<Style TargetType="Label">
|
||||
<Setter Property="Style" Value="{StaticResource ContentLabelStyle}" />
|
||||
</Style>
|
||||
<Style TargetType="Button">
|
||||
<Setter Property="Style" Value="{StaticResource ButtonStyle}" />
|
||||
</Style>
|
||||
</ResourceDictionary>
|
||||
</ContentPage.Resources>
|
||||
<ScrollView>
|
||||
<StackLayout Orientation="Vertical" >
|
||||
<lc:GesturesContentView>
|
||||
<Frame>
|
||||
<Label Text="Compte utilisateur" StyleClass="Header">
|
||||
</Label>
|
||||
<lb:Gestures.Interests>
|
||||
<lb:GestureCollection>
|
||||
<lb:GestureInterest GestureType="LongPress" GestureCommand="{Binding UserNameGesture}" GestureParameter="LongPress" />
|
||||
</lb:GestureCollection>
|
||||
</lb:Gestures.Interests>
|
||||
<Image Source="{Binding Avatar}" Aspect="AspectFit" VisualElement.HeightRequest="{StaticResource BigUserAvatarSize}" />
|
||||
</Frame>
|
||||
</lc:GesturesContentView>
|
||||
<Label Text="{Binding UserName}" Style="{StaticResource LabelPageHeadingStyle}"
|
||||
HorizontalTextAlignment="Center"
|
||||
LineBreakMode="WordWrap" XAlign="Center"
|
||||
></Label>
|
||||
<Button Text="{Binding PerformerStatus}" Clicked="OnViewPerformerStatus" />
|
||||
<Button Text="{Binding UserQueries}" Clicked="OnViewUserQueries" />
|
||||
<StackLayout Orientation="Horizontal" >
|
||||
<Label Text="Recevoir les notifications push" StyleClass="Header" />
|
||||
<Switch IsToggled="{Binding ReceivePushNotifications, Mode=TwoWay}"
|
||||
HorizontalOptions="End" />
|
||||
</StackLayout>
|
||||
<StackLayout Orientation="Horizontal">
|
||||
<Label Text="Utiliser ma position" StyleClass="Header" />
|
||||
<Switch HorizontalOptions="End" IsToggled="{Binding AllowUseMyPosition, Mode=TwoWay}"/>
|
||||
</StackLayout>
|
||||
<StackLayout Orientation="Horizontal" VerticalOptions="Start">
|
||||
<Label Text="Ne recevoir de demande de devis que de la part de professionnels uniquement" StyleClass="Header"/>
|
||||
<Switch HorizontalOptions="End" IsToggled="{Binding AllowProBookingOnly, Mode=TwoWay}"/>
|
||||
</StackLayout>
|
||||
</StackLayout>
|
||||
</ScrollView>
|
||||
</ContentPage>
|
||||
45
BookAStar/BookAStar/Pages/DashboardPage.xaml.cs
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
using Xamarin.Forms;
|
||||
using XLabs.Forms.Behaviors;
|
||||
using XLabs.Forms.Controls;
|
||||
using XLabs.Forms.Mvvm;
|
||||
using XLabs.Ioc;
|
||||
using XLabs.Platform.Services;
|
||||
|
||||
namespace BookAStar.Pages
|
||||
{
|
||||
public partial class DashboardPage : ContentPage
|
||||
{
|
||||
public RelayGesture UserNameGesture { get; set; }
|
||||
|
||||
public DashboardPage()
|
||||
{
|
||||
InitializeComponent();
|
||||
UserNameGesture = new RelayGesture((g, x) =>
|
||||
{
|
||||
if (g.GestureType == GestureType.LongPress)
|
||||
{
|
||||
Resolver.Resolve<INavigationService>().NavigateTo<AccountChooserPage>(true);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void OnViewPerformerStatus(object sender, EventArgs e)
|
||||
{
|
||||
App.CurrentApp.ShowAccounts();
|
||||
}
|
||||
|
||||
public void OnViewUserQueries(object sender, EventArgs e)
|
||||
{
|
||||
App.CurrentApp.ShowQueries();
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -3,8 +3,18 @@
|
|||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
xmlns:local="clr-namespace:BookAStar;assembly=BookAStar"
|
||||
xmlns:views="clr-namespace:BookAStar.Views;assembly=BookAStar"
|
||||
x:Class="BookAStar.Pages.CommandLineEditorPage"
|
||||
x:Class="BookAStar.Pages.EditBillingLinePage"
|
||||
Style="{StaticResource PageStyle}">
|
||||
<ContentPage.Resources>
|
||||
<ResourceDictionary>
|
||||
<Style TargetType="Label">
|
||||
<Setter Property="Style" Value="{StaticResource ContentLabelStyle}" />
|
||||
</Style>
|
||||
<Style TargetType="Button">
|
||||
<Setter Property="Style" Value="{StaticResource ButtonStyle}" />
|
||||
</Style>
|
||||
</ResourceDictionary>
|
||||
</ContentPage.Resources>
|
||||
<StackLayout>
|
||||
<Label Text="Description de la ligne de facture" Style="{StaticResource InputLabelStyle}"></Label>
|
||||
<Editor VerticalOptions="FillAndExpand"></Editor>
|
||||
|
|
@ -8,12 +8,11 @@ using Xamarin.Forms;
|
|||
|
||||
namespace BookAStar.Pages
|
||||
{
|
||||
public partial class CommandLineEditorPage : ContentPage
|
||||
public partial class EditBillingLinePage : ContentPage
|
||||
{
|
||||
public CommandLineEditorPage()
|
||||
public EditBillingLinePage()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3,7 +3,18 @@
|
|||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
x:Class="BookAStar.Pages.EditEstimatePage"
|
||||
xmlns:views="clr-namespace:BookAStar.Views;assembly=BookAStar"
|
||||
xmlns:local="clr-namespace:BookAStar;assembly=BookAStar">
|
||||
xmlns:local="clr-namespace:BookAStar;assembly=BookAStar"
|
||||
Style="{StaticResource PageStyle}">
|
||||
<ContentPage.Resources>
|
||||
<ResourceDictionary>
|
||||
<Style TargetType="Label">
|
||||
<Setter Property="Style" Value="{StaticResource ContentLabelStyle}" />
|
||||
</Style>
|
||||
<Style TargetType="Button">
|
||||
<Setter Property="Style" Value="{StaticResource ButtonStyle}" />
|
||||
</Style>
|
||||
</ResourceDictionary>
|
||||
</ContentPage.Resources>
|
||||
<StackLayout Padding="10,10,10,10" BindingContext="{Binding .}">
|
||||
<StackLayout Orientation="Horizontal" Padding="10,10,10,10">
|
||||
<Label Text="{Binding Client.UserName}" LineBreakMode="WordWrap"></Label>
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ namespace BookAStar.Pages
|
|||
}
|
||||
protected void OnNewCommanLine(object sender, EventArgs e)
|
||||
{
|
||||
var com = new CommandLine();
|
||||
var com = new BillingLine();
|
||||
App.CurrentApp.EditCommandLine(this,com);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,17 @@
|
|||
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
xmlns:local="clr-namespace:BookAStar;Assembly:BookAStar"
|
||||
x:Class="BookAStar.Pages.EventDetail">
|
||||
x:Class="BookAStar.Pages.EventDetail" Style="{StaticResource PageStyle}">
|
||||
<ContentPage.Resources>
|
||||
<ResourceDictionary>
|
||||
<Style TargetType="Label">
|
||||
<Setter Property="Style" Value="{StaticResource ContentLabelStyle}" />
|
||||
</Style>
|
||||
<Style TargetType="Button">
|
||||
<Setter Property="Style" Value="{StaticResource ButtonStyle}" />
|
||||
</Style>
|
||||
</ResourceDictionary>
|
||||
</ContentPage.Resources>
|
||||
<ContentPage.Content>
|
||||
<ScrollView>
|
||||
<StackLayout>
|
||||
|
|
|
|||
17
BookAStar/BookAStar/Pages/HomePage.xaml
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
<?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="BookAStar.Pages.HomePage"
|
||||
Style="{StaticResource PageStyle}">
|
||||
<ContentPage.Resources>
|
||||
<ResourceDictionary>
|
||||
<Style TargetType="Label">
|
||||
<Setter Property="Style" Value="{StaticResource ContentLabelStyle}" />
|
||||
</Style>
|
||||
<Style TargetType="Button">
|
||||
<Setter Property="Style" Value="{StaticResource ButtonStyle}" />
|
||||
</Style>
|
||||
</ResourceDictionary>
|
||||
</ContentPage.Resources>
|
||||
<Label Text="Blah" VerticalOptions="Center" HorizontalOptions="Center" />
|
||||
</ContentPage>
|
||||
18
BookAStar/BookAStar/Pages/HomePage.xaml.cs
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
using Xamarin.Forms;
|
||||
|
||||
namespace BookAStar.Pages
|
||||
{
|
||||
public partial class HomePage : ContentPage
|
||||
{
|
||||
public HomePage()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3,7 +3,17 @@
|
|||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
xmlns:local="clr-namespace:BookAStar;Assembly:BookAStar"
|
||||
x:Class="BookAStar.SearchPage" Title="Page de recherche"
|
||||
Padding="10,40,10,10" >
|
||||
Style="{StaticResource PageStyle}">
|
||||
<ContentPage.Resources>
|
||||
<ResourceDictionary>
|
||||
<Style TargetType="Label">
|
||||
<Setter Property="Style" Value="{StaticResource ContentLabelStyle}" />
|
||||
</Style>
|
||||
<Style TargetType="Button">
|
||||
<Setter Property="Style" Value="{StaticResource ButtonStyle}" />
|
||||
</Style>
|
||||
</ResourceDictionary>
|
||||
</ContentPage.Resources>
|
||||
<ContentPage.Content>
|
||||
<StackLayout>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,63 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
|
||||
xmlns:local="clr-namespace:BookAStar;assembly=BookAStar"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
x:Class="BookAStar.SettingsPage"
|
||||
Title="Paramètres Booking star"
|
||||
Style="{StaticResource PageStyle}">
|
||||
|
||||
<StackLayout>
|
||||
<Label Text="Compte utilisateur" StyleClass="Header"/>
|
||||
|
||||
<ListView x:Name="AccountListView"
|
||||
SeparatorVisibility="Default"
|
||||
VerticalOptions="FillAndExpand"
|
||||
>
|
||||
<ListView.Header>
|
||||
<StackLayout Orientation="Horizontal">
|
||||
<Button x:Name="RemoveAccountBouton"
|
||||
Text="Supprimer cette identité" />
|
||||
<Button x:Name="AddAccountBtn" Text="s'inscrire ou se connecter avec un nouveau compte" />
|
||||
|
||||
</StackLayout>
|
||||
</ListView.Header>
|
||||
|
||||
<ListView.ItemTemplate HeightRequest="60" VerticalOptions="StartAndExpand">
|
||||
<DataTemplate>
|
||||
<ViewCell>
|
||||
<Grid Padding="5"
|
||||
ColumnSpacing="10"
|
||||
RowSpacing="2">
|
||||
<Image Source="{Binding Avatar}" HeightRequest="80" />
|
||||
<Label Grid.Column="0" Text="{Binding UserName}" />
|
||||
</Grid>
|
||||
</ViewCell>
|
||||
</DataTemplate>
|
||||
</ListView.ItemTemplate>
|
||||
<ListView.Footer>
|
||||
<StackLayout></StackLayout>
|
||||
</ListView.Footer>
|
||||
|
||||
</ListView>
|
||||
|
||||
|
||||
|
||||
<StackLayout Orientation="Horizontal" VerticalOptions="Start">
|
||||
<Label Text="Recevoir les notifications push" />
|
||||
<Switch x:Name="pushstatus" />
|
||||
</StackLayout>
|
||||
|
||||
<StackLayout Orientation="Horizontal">
|
||||
<Label Text="Utiliser ma position" />
|
||||
<Switch x:Name="use_my_pos" HorizontalOptions="End" />
|
||||
</StackLayout>
|
||||
|
||||
|
||||
<StackLayout Orientation="Horizontal" VerticalOptions="Start">
|
||||
<Label Text="Recevoir les demandes de devis de la part de professionnels uniquement"
|
||||
StyleClass="Header"/>
|
||||
<Switch x:Name="restrictToPro" />
|
||||
</StackLayout>
|
||||
|
||||
</StackLayout>
|
||||
</ContentPage>
|
||||
78
BookAStar/BookAStar/ViewModels/BillingLineViewModel.cs
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
using BookAStar.Interfaces;
|
||||
using BookAStar.Model.Workflow;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using XLabs.Forms.Mvvm;
|
||||
|
||||
namespace BookAStar.ViewModels
|
||||
{
|
||||
class BillingLineViewModel : ViewModel, IBillingLine
|
||||
{
|
||||
public BillingLineViewModel(BillingLine data)
|
||||
{
|
||||
if (data == null) data = new BillingLine();
|
||||
count = data.Count;
|
||||
description = data.Description;
|
||||
unitaryCost = data.UnitaryCost;
|
||||
duration = data.Duration;
|
||||
}
|
||||
|
||||
protected int count;
|
||||
public int Count
|
||||
{
|
||||
get
|
||||
{
|
||||
return count;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
SetProperty<int>(ref count, value, "Count");
|
||||
}
|
||||
}
|
||||
protected string description;
|
||||
public string Description
|
||||
{
|
||||
get
|
||||
{
|
||||
return description;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
SetProperty<string>(ref description, value, "Description");
|
||||
}
|
||||
}
|
||||
protected TimeSpan duration;
|
||||
public TimeSpan Duration
|
||||
{
|
||||
get
|
||||
{
|
||||
return duration;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
SetProperty<TimeSpan>(ref duration, value, "Duration");
|
||||
}
|
||||
}
|
||||
|
||||
protected decimal unitaryCost;
|
||||
public decimal UnitaryCost
|
||||
{
|
||||
get
|
||||
{
|
||||
return unitaryCost;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
SetProperty<decimal>(ref unitaryCost, value, "UnitaryCost");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
using BookAStar.Model;
|
||||
using BookAStar.Interfaces;
|
||||
using BookAStar.Model;
|
||||
using BookAStar.Model.Social;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
|
@ -9,7 +10,7 @@ using System.Threading.Tasks;
|
|||
|
||||
namespace BookAStar.ViewModels
|
||||
{
|
||||
class BookQueryViewModel : XLabs.Forms.Mvvm.ViewModel
|
||||
class BookQueryViewModel : XLabs.Forms.Mvvm.ViewModel, IBookQueryData
|
||||
{
|
||||
public BookQueryViewModel()
|
||||
{
|
||||
|
|
|
|||
137
BookAStar/BookAStar/ViewModels/DashboardViewModel.cs
Normal file
|
|
@ -0,0 +1,137 @@
|
|||
using BookAStar.Helpers;
|
||||
using BookAStar.Model.Auth.Account;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Linq;
|
||||
using Xamarin.Forms;
|
||||
using XLabs.Forms.Mvvm;
|
||||
|
||||
namespace BookAStar.ViewModels
|
||||
{
|
||||
internal class DashboardViewModel : ViewModel
|
||||
{
|
||||
public string UserId
|
||||
{
|
||||
get
|
||||
{
|
||||
return User?.Id;
|
||||
}
|
||||
}
|
||||
|
||||
public bool AllowUseMyPosition
|
||||
{
|
||||
get
|
||||
{
|
||||
return MainSettings.AllowGPSUsage;
|
||||
}
|
||||
set
|
||||
{
|
||||
MainSettings.AllowGPSUsage = value;
|
||||
}
|
||||
}
|
||||
|
||||
public bool AllowProBookingOnly
|
||||
{
|
||||
get
|
||||
{
|
||||
return MainSettings.AllowProBookingOnly;
|
||||
}
|
||||
set
|
||||
{
|
||||
MainSettings.AllowProBookingOnly = value;
|
||||
}
|
||||
}
|
||||
|
||||
private long queryCount;
|
||||
private User user;
|
||||
|
||||
public long QueryCount
|
||||
{
|
||||
get
|
||||
{
|
||||
return queryCount;
|
||||
}
|
||||
}
|
||||
|
||||
public User User
|
||||
{
|
||||
get { return user; }
|
||||
protected set
|
||||
{
|
||||
SetProperty<User>(ref user, value, "User");
|
||||
if (user!=null)
|
||||
{
|
||||
user.PropertyChanged += User_PropertyChanged;
|
||||
|
||||
}
|
||||
|
||||
UpdateUserMeta();
|
||||
|
||||
}
|
||||
}
|
||||
private ImageSource avatar;
|
||||
public ImageSource Avatar { get {
|
||||
return avatar;
|
||||
} }
|
||||
|
||||
public ObservableCollection<User> Accounts { get; protected set; }
|
||||
private string performerStatus;
|
||||
public string PerformerStatus
|
||||
{
|
||||
get
|
||||
{
|
||||
return performerStatus;
|
||||
}
|
||||
}
|
||||
|
||||
public string UserName
|
||||
{
|
||||
get
|
||||
{
|
||||
return User?.UserName;
|
||||
}
|
||||
}
|
||||
|
||||
private bool userIsPro = false;
|
||||
|
||||
public DashboardViewModel()
|
||||
{
|
||||
Accounts = MainSettings.AccountList;
|
||||
User = MainSettings.CurrentUser;
|
||||
UpdateUserMeta();
|
||||
}
|
||||
|
||||
private void UpdateUserMeta ()
|
||||
{
|
||||
string newStatusString;
|
||||
long newQueryCount;
|
||||
bool newUserIsPro;
|
||||
ImageSource newAvatar;
|
||||
if (user==null)
|
||||
{
|
||||
newQueryCount = 0;
|
||||
newUserIsPro = false;
|
||||
newStatusString = null;
|
||||
newAvatar = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
newUserIsPro = User.Roles?.Contains("Performer") ?? false;
|
||||
|
||||
newQueryCount = userIsPro ? DataManager.Current.BookQueries.Count : 0;
|
||||
|
||||
newStatusString = userIsPro ?
|
||||
$"Profile professionel renseigné,\n{newQueryCount} demandes valides en cours" :
|
||||
"Profile professionel non renseigné";
|
||||
newAvatar = UserHelpers.Avatar(user.Avatar);
|
||||
}
|
||||
SetProperty<string>(ref performerStatus, newStatusString, "PerformerStatus");
|
||||
SetProperty<long>(ref queryCount, newQueryCount, "QueryCount");
|
||||
SetProperty<ImageSource>(ref avatar, newAvatar, "Avatar");
|
||||
}
|
||||
|
||||
private void User_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
|
||||
{
|
||||
UpdateUserMeta();
|
||||
}
|
||||
}
|
||||
}
|
||||
91
BookAStar/BookAStar/ViewModels/EstimateViewModel.cs
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
using BookAStar.Model.Interfaces;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using XLabs.Forms.Mvvm;
|
||||
using BookAStar.Model.Workflow;
|
||||
using System.Collections.ObjectModel;
|
||||
using BookAStar.Model;
|
||||
|
||||
namespace BookAStar.ViewModels
|
||||
{
|
||||
class EstimateViewModel : ViewModel
|
||||
{
|
||||
public EstimateViewModel(Estimate data)
|
||||
{
|
||||
estimate = data;
|
||||
AttachedFiles = new ObservableCollection<string>(data.AttachedFiles);
|
||||
AttachedGraphicList = new ObservableCollection<string>(data.AttachedGraphicList);
|
||||
Bill = new ObservableCollection<BillingLine>(data.Bill);
|
||||
description = data.Description;
|
||||
title = data.Title;
|
||||
status = data.Status;
|
||||
}
|
||||
|
||||
Estimate estimate;
|
||||
|
||||
public ObservableCollection<string> AttachedFiles
|
||||
{
|
||||
get; protected set;
|
||||
}
|
||||
|
||||
public ObservableCollection<string> AttachedGraphicList
|
||||
{
|
||||
get; protected set;
|
||||
}
|
||||
|
||||
public ObservableCollection<BillingLine> Bill
|
||||
{
|
||||
get; protected set;
|
||||
}
|
||||
|
||||
|
||||
private string description;
|
||||
public string Description
|
||||
{
|
||||
get
|
||||
{
|
||||
return description;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
SetProperty<string>(ref description, value, "Description");
|
||||
}
|
||||
}
|
||||
|
||||
private int? status;
|
||||
public int? Status
|
||||
{
|
||||
get
|
||||
{
|
||||
return status;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
SetProperty<int?>(ref status, value, "Status");
|
||||
}
|
||||
}
|
||||
private string title;
|
||||
public string Title
|
||||
{
|
||||
get
|
||||
{
|
||||
return title;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
SetProperty<string>(ref title, value, "Title");
|
||||
}
|
||||
}
|
||||
|
||||
public ClientProviderInfo Client { get { return estimate.Client; } }
|
||||
|
||||
public BookQueryData Query { get { return estimate.Query; } }
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
using System;
|
||||
using XLabs.Forms.Mvvm;
|
||||
using XLabs.Platform.Services;
|
||||
|
||||
namespace BookAStar.ViewModels
|
||||
{
|
||||
internal class SettingsViewModel : XLabs.Forms.Mvvm.ViewModel
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
14
BookAStar/BookAStar/ViewModels/UserLoginViewModel.cs
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using XLabs.Forms.Mvvm;
|
||||
|
||||
namespace BookAStar.ViewModels
|
||||
{
|
||||
class UserLoginViewModel : ViewModel
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -11,6 +11,7 @@ using System.Threading.Tasks;
|
|||
|
||||
namespace BookAStar.ViewModels
|
||||
{
|
||||
[Obsolete("Use legacy XLabs ViewModel")]
|
||||
public class ViewModelBase : IModelViewModel
|
||||
{
|
||||
public string Title { get; set; }
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 1 KiB |
|
|
@ -7,11 +7,13 @@
|
|||
<package id="SQLite.Net.Core-PCL" version="3.1.1" targetFramework="portable45-net45+win8+wpa81" />
|
||||
<package id="SQLite.Net-PCL" version="3.1.1" targetFramework="portable45-net45+win8+wpa81" />
|
||||
<package id="Xam.Plugins.Settings" version="2.5.1.0" targetFramework="portable45-net45+win8+wpa81" />
|
||||
<package id="Xamarin.Forms" version="2.3.2.127" targetFramework="portable45-net45+win8+wpa81" />
|
||||
<package id="Xamarin.Forms.Maps" version="2.3.2.127" targetFramework="portable45-net45+win8+wpa81" />
|
||||
<package id="Xamarin.Forms" version="2.3.0.34-pre1" targetFramework="portable45-net45+win8+wpa81" />
|
||||
<package id="Xamarin.Forms.Maps" version="2.3.0.34-pre1" targetFramework="portable45-net45+win8+wpa81" />
|
||||
<package id="XLabs.Caching" version="2.2.0-pre05" targetFramework="portable45-net45+win8+wpa81" />
|
||||
<package id="XLabs.Core" version="2.2.0-pre05" targetFramework="portable45-net45+win8+wpa81" />
|
||||
<package id="XLabs.Forms" version="2.2.0-pre05" targetFramework="portable45-net45+win8+wpa81" />
|
||||
<package id="XLabs.IoC" version="2.2.0-pre05" targetFramework="portable45-net45+win8+wpa81" />
|
||||
<package id="XLabs.Platform" version="2.2.0-pre05" targetFramework="portable45-net45+win8+wpa81" />
|
||||
<package id="XLabs.Serialization" version="2.2.0-pre05" targetFramework="portable45-net45+win8+wpa81" />
|
||||
<package id="XLabs.Serialization.JSON" version="2.2.0-pre05" targetFramework="portable45-net45+win8+wpa81" />
|
||||
</packages>
|
||||