using System; using Comal.Classes; 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 : ContentPage { public AssignmentEdit(AssignmentListDataModelItem assignment) { InitializeComponent(); DataModel.JobID = assignment.JobID; DataModel.EmployeeID = assignment.EmployeeId; DataModel.Load(assignment.Id, () => LoadPages()); } public AssignmentEdit(Assignment assignment) { InitializeComponent(); DataModel.JobID = assignment.JobLink.ID; DataModel.EmployeeID = assignment.EmployeeLink.ID; DataModel.Load(assignment, () => LoadPages()); } private void LoadPages() { Dispatcher.BeginInvokeOnMainThread(() => { Title.Text = 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) { MaterialButton button = sender as MaterialButton; TabView.SelectedIndex = int.Parse(button.CommandParameter.ToString()); } private async void Cancel_OnClicked(object sender, EventArgs e) { var confirm = await MaterialDialog.Instance.ConfirmAsync("Are you sure you wish to cancel this action?", "Confirm Cancel", "OK", "Keep Editing") == true; if (confirm) Navigation.PopAsync(); } 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(); NavigationPage.SetHasBackButton(this, false); Cancel.IsVisible = true; Save.IsVisible = true; } } }