| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393 |
- using System;
- using System.Threading.Tasks;
- using InABox.Mobile;
- using Xamarin.Forms.Xaml;
- namespace PRS.Mobile
- {
- [XamlCompilation(XamlCompilationOptions.Compile)]
- public partial class EmployeeQualificationEditPage
- {
- #region Fields, constructor + navigation
-
- public EmployeeQualificationShell Item
- {
- get => _viewmodel.Item;
- set
- {
- _viewmodel.Item = value;
-
- Title = _viewmodel.Item.Description;
- CheckChanged();
- }
- }
- // EmployeeQualification EmpQualification = new EmployeeQualification();
- // Dictionary<string, Qualification> descriptionQualifications = new Dictionary<string, Qualification>();
- // PhotoType photoType = new PhotoType();
- // Document frontPhotoDoc = new Document();
- // Document backPhotoDoc = new Document();
- // bool bFirstLoad = true;
- // bool newEmpQualificationSaved = false;
- // List<Qualification> qualifications = new List<Qualification>();
- // Dictionary<string, Guid> fileNameIDs = new Dictionary<string, Guid>();
-
- public EmployeeQualificationEditPage()
- {
- InitializeComponent();
- }
-
- private void _viewmodel_OnLoaded(object sender, MobileViewModelLoadedEventArgs args)
- {
- Details.Refresh();
- Images.Refresh();
- }
-
- private void CheckChanged()
- {
- Dispatcher.BeginInvokeOnMainThread(() =>
- {
- bool changed = Item.ID == Guid.Empty || Item.IsChanged();
- _save.IsVisible = changed;
- _camera.IsVisible = !changed && _tabStrip.SelectedItem.Index == 1;
- });
- }
- // protected override void OnAppearing()
- // {
- // addViewDocsBtn.IsEnabled = false;
- // Task.Run(() =>
- // {
- // Thread.Sleep(1000);
- // if (EmpQualification.ID != Guid.Empty)
- // {
- // CoreTable table = new Client<EmployeeQualificationDocument>().Query(new Filter<EmployeeQualificationDocument>(x => x.EntityLink.ID).IsEqualTo(EmpQualification.ID),
- // new Columns<EmployeeQualificationDocument>(x => x.DocumentLink.ID));
- // if (table.Rows.Any())
- // {
- // fileNameIDs.Clear();
- // foreach (CoreRow row in table.Rows)
- // {
- // CoreTable docsTable = new Client<Document>().Query(new Filter<Document>(x => x.ID).IsEqualTo(Guid.Parse(row.Values[0].ToString())),
- // new Columns<Document>(x => x.ID, x => x.FileName));
- // Guid id = Guid.Parse(docsTable.Rows.First().Values[0].ToString());
- // string str = docsTable.Rows.First().Values[1].ToString();
- // if (!fileNameIDs.ContainsKey(str))
- // fileNameIDs.Add(str, id);
- // }
- // }
- // }
- // Device.BeginInvokeOnMainThread(() =>
- // {
- // addViewDocsBtn.IsEnabled = true;
- // documentsLbl.Text = "Documents (" + fileNameIDs.Count + ")";
- // });
- // });
- // base.OnAppearing();
- // }
- // async void ExitBtn_Clicked(object sender, EventArgs e)
- // {
- // if (newEmpQualificationSaved)
- // {
- // CoreTable table = new Client<EmployeeQualificationDocument>().Query
- // (
- // new Filter<EmployeeQualificationDocument>(x => x.EntityLink.ID).IsEqualTo(EmpQualification.ID),
- // new Columns<EmployeeQualificationDocument>(x => x.ID, x => x.DocumentLink.ID)
- // );
- // if (table.Rows.Any())
- // {
- // string chosenOption = await DisplayActionSheet("Alert", "You are exiting without saving. Continue?", null, "Yes", "No");
- // switch (chosenOption)
- // {
- // case "Cancel":
- // return;
- // default:
- // return;
- // case "Yes":
- // using (await MaterialDialog.Instance.LoadingDialogAsync(message: "Working"))
- // {
- // List<EmployeeQualificationDocument> empdocs = new List<EmployeeQualificationDocument>();
- // List<Document> docs = new List<Document>();
- // foreach (CoreRow row in table.Rows)
- // {
- // EmployeeQualificationDocument empdoc = new EmployeeQualificationDocument();
- // empdoc.ID = Guid.Parse(row.Values[0].ToString());
- // empdocs.Add(empdoc);
- // Document doc = new Document();
- // doc.ID = Guid.Parse(row.Values[1].ToString());
- // docs.Add(doc);
- // }
- // new Client<EmployeeQualificationDocument>().Delete(empdocs, "Deleted from mobile device");
- // new Client<Document>().Delete(docs, "Deleted from mobile device");
- // }
- // break;
- // case "No":
- // return;
- // }
- // }
- // new Client<EmployeeQualification>().Delete(EmpQualification, "Deleted from mobile device");
- // }
- // Navigation.PopAsync();
- // }
- // async void Save_Clicked(object sender, EventArgs e)
- // {
- // if (qualificationPicker.SelectedIndex == -1)
- // {
- // DisplayAlert("Alert", "Choose a qualification first", "OK");
- // return;
- // }
- //
- // using (await MaterialDialog.Instance.LoadingDialogAsync(message: "Saving"))
- // {
- // EmpQualification.Employee.ID = App.Data.Me.ID;
- // if (!string.IsNullOrWhiteSpace(frontPhotoDoc.FileName))
- // {
- // new Client<Document>().Save(frontPhotoDoc, "Saved from mobile device");
- // EmpQualification.FrontPhoto.ID = frontPhotoDoc.ID;
- // EmpQualification.Verified = DateTime.MinValue;
- // }
- // if (!string.IsNullOrWhiteSpace(backPhotoDoc.FileName))
- // {
- // new Client<Document>().Save(backPhotoDoc, "Saved from mobile device");
- // EmpQualification.BackPhoto.ID = backPhotoDoc.ID;
- // EmpQualification.Verified = DateTime.MinValue;
- // }
- // if (EmpQualification.Qualified == DateTime.MinValue)
- // EmpQualification.Qualified = qualifiedDatePicker.Date;
- // if (EmpQualification.Expiry == DateTime.MinValue)
- // EmpQualification.Expiry = expiryDatePicker.Date;
- // new Client<EmployeeQualification>().Save(EmpQualification, "Saved from mobile device");
- // }
- // await DisplayAlert("Succes", "Qualification saved for " + EmpQualification.Qualification.Description
- // + ". This qualification is now awaiting verification.", "OK");
- // Navigation.PopAsync();
- // }
- #endregion
- #region Loading
- // async void LoadScreen(Guid id)
- // {
- // try
- // {
- // if (id == Guid.Empty)
- // {
- // qualificationPicker.IsEnabled = true;
- // }
- // else
- // {
- // qualificationPicker.IsEnabled = false;
- // descriptionFrame.BorderColor = Color.Gray;
- // CoreTable table = new Client<EmployeeQualification>().Query(new Filter<EmployeeQualification>(x => x.ID).IsEqualTo(id),
- // new Columns<EmployeeQualification>(x => x.ID, x => x.Qualification.ID, x => x.Qualification.Description, x => x.Expiry,
- // x => x.Qualified, x => x.Verified, x => x.FrontPhoto.ID, x => x.BackPhoto.ID, x => x.Employee.ID, x => x.Qualification.Renewal,
- // x => x.Qualification.Period));
- // if (table.Rows.Any())
- // {
- // EmpQualification = table.Rows.FirstOrDefault().ToObject<EmployeeQualification>();
- // }
- // else
- // {
- // Device.BeginInvokeOnMainThread(() => { DisplayAlert("Error loading qualification", "", "OK"); });
- // return;
- // }
- // if (EmpQualification.Qualified != DateTime.MinValue)
- // {
- // Device.BeginInvokeOnMainThread(() => { qualifiedDatePicker.Date = EmpQualification.Qualified; });
- // }
- // if (EmpQualification.Expiry != DateTime.MinValue)
- // {
- // Device.BeginInvokeOnMainThread(() => { expiryDatePicker.Date = EmpQualification.Expiry; });
- // }
- // }
- // RefreshPhotoButtons();
- // LoadQualifications();
- // Task.Run(() =>
- // {
- // Thread.Sleep(1000);
- // bFirstLoad = false;
- // });
- // }
- // catch { }
- // }
- //
- //
- //
- // void LoadQualifications()
- // {
- // try
- // {
- // Task.Run(() =>
- // {
- // CoreTable table = new Client<Qualification>().Query(null,
- // new Columns<Qualification>(x => x.ID, x => x.Description, x => x.Renewal, x => x.Period)
- // );
- // foreach (CoreRow row in table.Rows)
- // {
- // Qualification qualification = row.ToObject<Qualification>();
- // if (!descriptionQualifications.ContainsKey(qualification.Description))
- // {
- // descriptionQualifications.Add(qualification.Description, qualification);
- // }
- // }
- // Device.BeginInvokeOnMainThread(() =>
- // {
- // qualificationPicker.ItemsSource = descriptionQualifications.Keys.ToList();
- // if (EmpQualification.Qualification.ID != Guid.Empty)
- // {
- // qualificationPicker.SelectedIndex = descriptionQualifications.Keys.ToList().FindIndex(x => x.Equals(EmpQualification.Qualification.Description));
- // ShowRenewal();
- // }
- // });
- // });
- // }
- // catch { }
- // }
- //
- // void ShowRenewal()
- // {
- // if (EmpQualification.Qualification.Renewal.Equals(QualificationRenewal.Permanent) ||
- // EmpQualification.Qualification.Renewal.Equals(QualificationRenewal.Manual))
- // {
- // renewalLbl.Text = EmpQualification.Qualification.Renewal.ToString();
- // }
- // else
- // {
- // renewalLbl.Text = EmpQualification.Qualification.Period.ToString() + " " + EmpQualification.Qualification.Renewal;
- // }
- // if (EmpQualification.Qualification.Renewal.Equals(QualificationRenewal.Permanent))
- // {
- // EmpQualification.Expiry = DateTime.MaxValue;
- // expiryDatePicker.Date = DateTime.MaxValue;
- // expiryDatePicker.IsEnabled = false;
- // Task.Run(() =>
- // {
- // Device.BeginInvokeOnMainThread(() =>
- // {
- // expiryDatePicker.BackgroundColor = Color.LightGreen;
- // expiryDatePicker.Date = EmpQualification.Expiry;
- // });
- // Thread.Sleep(1200);
- // Device.BeginInvokeOnMainThread(() => { expiryDatePicker.BackgroundColor = Color.Default; });
- // });
- // }
- // else
- // {
- // expiryDatePicker.IsEnabled = true;
- // if (EmpQualification.Expiry != DateTime.MinValue)
- // {
- // expiryDatePicker.Date = EmpQualification.Expiry;
- // }
- // else
- // {
- // EmpQualification.Expiry = DateTime.Today;
- // }
- // }
- // }
- #endregion
- #region Response to fields changing / Taps
- // async void AddViewDocsBtn_Clicked(object sender, EventArgs e)
- // {
- // if (qualificationPicker.SelectedIndex == -1)
- // {
- // DisplayAlert("Error", "Select a qualification first", "OK");
- // return;
- // }
- // using (await MaterialDialog.Instance.LoadingDialogAsync(message: "Loading"))
- // {
- // if (EmpQualification.ID == Guid.Empty)
- // {
- // new Client<EmployeeQualification>().Save(EmpQualification, "Saved from mobile device");
- // newEmpQualificationSaved = true;
- // }
- //
- // PDFList pdfList = new PDFList(); //fileNameIDs, EmpQualification, true, true, true, false);
- // Navigation.PushAsync(pdfList);
- // }
- // }
- //
- //
- // void QualificationPicker_IndexChanged(object sender, EventArgs e)
- // {
- // if (!bFirstLoad)
- // {
- // EmpQualification.Qualification.ID = descriptionQualifications[qualificationPicker.SelectedItem.ToString()].ID;
- // EmpQualification.Qualification.Description = qualificationPicker.SelectedItem.ToString();
- // EmpQualification.Qualification.Renewal = descriptionQualifications[qualificationPicker.SelectedItem.ToString()].Renewal;
- // EmpQualification.Qualification.Period = descriptionQualifications[qualificationPicker.SelectedItem.ToString()].Period;
- // ShowRenewal();
- // }
- // }
- //
- // void QualifiedDatePicker_Selected(object sender, DateChangedEventArgs e)
- // {
- // if (!bFirstLoad)
- // {
- // EmpQualification.Qualified = qualifiedDatePicker.Date;
- // EmpQualification.Verified = DateTime.MinValue;
- // Task.Run(() =>
- // {
- // Thread.Sleep(300);
- // Device.BeginInvokeOnMainThread(() =>
- // {
- // expiryDatePicker.BackgroundColor = Color.LightGreen;
- // expiryDatePicker.Date = EmpQualification.Expiry;
- // });
- // Thread.Sleep(1200);
- // Device.BeginInvokeOnMainThread(() => { expiryDatePicker.BackgroundColor = Color.Default; });
- // });
- // }
- // }
- //
- // void ExpiryDatePicker_Selected(object sender, DateChangedEventArgs e)
- // {
- // if (!bFirstLoad)
- // {
- // EmpQualification.Expiry = expiryDatePicker.Date;
- // EmpQualification.Verified = DateTime.MinValue;
- // }
- // }
- #endregion
-
- private void Save_Clicked(object sender, MobileMenuButtonClickedEventArgs args)
- {
- Item.Save("Saved on Mobile Device");
- CheckChanged();
- }
- private void Details_OnOnDetailsChanged(object sender, MobileViewChangedEventArgs eventargs)
- {
- CheckChanged();
- }
- private async void TakePhoto_Clicked(object sender, EventArgs e)
- {
- await Images.AddImage<MobileDocumentCameraSource, MobileDocumentCameraOptions>(
- PhotoUtils.CreateCameraOptions());
- CheckChanged();
- }
- private async void BrowseLibrary_Clicked(object sender, EventArgs e)
- {
- await Images.AddImage<MobileDocumentPhotoLibrarySource, MobileDocumentPhotoLibraryOptions>(PhotoUtils.CreatePhotoLibraryOptions());
- CheckChanged();
- }
-
- protected override async Task<bool> OnBackButtonClicked()
- {
- return await ConfirmChanges(Item);
- }
- private void _tabStrip_OnSelectionChanged(object sender, EventArgs e)
- {
- _tabView.SelectedItem = _tabView.Items[_tabStrip.SelectedItem.Index];
- CheckChanged();
- }
- }
- }
|