using System; using Comal.Classes; using InABox.Core; using Xamarin.Forms; using Xamarin.Forms.Xaml; using XF.Material.Forms.UI; using XF.Material.Forms.UI.Dialogs; namespace comal.timesheets { [XamlCompilation(XamlCompilationOptions.Compile)] public partial class AssignmentEdit { public AssignmentDetailModel DataModel { get; private set; } public AssignmentEdit(AssignmentShell assignment) { DataModel = new AssignmentDetailModel(App.Data, () => new Filter(x=>x.ID).IsEqualTo(assignment.Id)); BindingContext = DataModel; InitializeComponent(); DataModel.Load(() => LoadPages()); } public AssignmentEdit(Assignment assignment) { DataModel = new AssignmentDetailModel(App.Data, () => new Filter(x=>x.ID).IsEqualTo(assignment.ID)); BindingContext = DataModel; InitializeComponent(); DataModel.Load(assignment, () => LoadPages()); } private void LoadPages() { Dispatcher.BeginInvokeOnMainThread(() => { Title = DataModel.Item.ID == Guid.Empty ? "New Assignment" : $"Assignment {DataModel.Item.Number}"; Details.Load(); Map.Load(); Forms.Load(); }); } private void Button_OnClicked(object sender, EventArgs e) { if ((sender is ActionButton button) && int.TryParse(button.Tag?.ToString() ?? "0", out int tag)) TabView.SelectedIndex = tag; } private void Save_OnClicked(object sender, EventArgs e) { DataModel.Save("Saved by PRS Mobile"); Navigation.PopAsync(); } private void Details_OnOnDetailsChanged(object sender, AssignmentDetailsChangedArgs args) { if (String.Equals(args.Property, "Job")) Map.Load(); } } }