protected override void OnAppearing() { base.OnAppearing(); try { configuration = AiDataStore.GetConfiguration(); Inspections = configuration.Inspections.Where(x => x.FarmerKey == questionaire.Key).ToList(); if (Inspections.Count > 0) { fields.IsVisible = true; nofields.IsVisible = false; lfieldStack.IsVisible = true; fields.ItemsSource = Inspections; } else { fields.IsVisible = false; nofields.IsVisible = true; lfieldStack.IsVisible = false; } } catch (Exception ex) { } }
private void OnSave(object sender, EventArgs args) { try { if (string.IsNullOrEmpty(Username.Text)) { Task.Run(async() => await PopupNavigation.Instance.PushAsync(new MessageBox("Enter username to proceed", MessageType.Regular, promptPageState), true)); return; } if (user.UserName.Equals(Username.Text)) { Task.Run(async() => await PopupNavigation.Instance.PushAsync(new MessageBox("The username you've entered is the same as the current one", MessageType.Regular, promptPageState), true)); return; } //Save configuration configuration.Users.Find(x => x.UserName == user.UserName).UserName = Username.Text; AiDataStore.SaveConfiguration(configuration); //Save user user.UserName = Username.Text; AiDataStore.SaveUser(user); //Close Popup promptPageState.OnResumePage(null); Task.Run(async() => await PopupNavigation.Instance.RemovePageAsync(this)); } catch (Exception ex) { Task.Run(async() => await PopupNavigation.Instance.PushAsync(new MessageBox(ex.Message, MessageType.Regular, promptPageState), true)); } }
public QSections(DCAnalytics.ObjectType objectType, Questionaire _questionaire, QuestionairePageState questionairePageState = null, Certification _certification = null, FieldInspection _fieldInspection = null) { InitializeComponent(); controls = new UIControls(this); ObjectType = objectType; selectPageState = this; promptPageState = this; picturePageState = this; locationPageState = this; questionaire = null; questionaire = _questionaire; FieldInspection = _fieldInspection; certification = _certification; Title = questionaire.Name; this.questionairePageState = questionairePageState; sectionViews = new List <SectionView>(); _questionaireStatus = string.IsNullOrEmpty(questionaire.Key) ? QuestionaireStatus.Create : QuestionaireStatus.Modify; _dbManager = new DatabaseManager(); user = AiDataStore.GetUser(); configuration = AiDataStore.GetConfiguration(); isValid = true; Sections.Clear(); Sections = (FieldInspection != null) ? FieldInspection.Sections: (certification != null) ? certification.Sections: questionaire.Sections; dependencies.Clear(); navigatedTargetSections.Clear(); controls.targets.Clear(); Init(); }
private void OnRefreshQuestionaires(object sender, EventArgs args) { try { _template = configuration.Questionaires.Find(q => q.Status == DCAnalytics.Statuses.Template); Task.Factory.StartNew(async() => { var response = Synchronization.GetModifiedQuestionaire(_template.OID).Result; var responseContent = await response.Content.ReadAsStringAsync(); questionaire = JsonConvert.DeserializeObject <Questionaire>(responseContent); }).ContinueWith(task => { Device.BeginInvokeOnMainThread(() => { if (questionaire != null) { configuration.Questionaires[configuration.Questionaires.IndexOf(_template)] = questionaire; AiDataStore.SaveConfiguration(configuration); RefreshQuestionaires(questionaire); } else { Task.Run(async() => await PopupNavigation.Instance.PushAsync(new MessageBox("Something went wrong, please try again", MessageType.Regular, this))); } }); }, TaskScheduler.FromCurrentSynchronizationContext()); } catch (Exception ex) { Task.Run(async() => await PopupNavigation.Instance.PushAsync(new MessageBox("Something went wrong, please try again", MessageType.Regular, this))); } }
private void OnTrainerAdded(object sender, EventArgs args) { try { if (string.IsNullOrEmpty(Name.Text)) { Task.Run(async() => await PopupNavigation.Instance.PushAsync(new MessageBox("Name cannot be empty", MessageType.Regular, promptPageState))); } else { configuration.Trainings.Find(x => x.Name == training.Name).Trainers.Add(new Trainer { Key = Guid.NewGuid().ToString(), Name = Name.Text }); AiDataStore.SaveConfiguration(configuration); promptPageState.OnResumePage(null); } } catch (Exception ex) { //DisplayAlert("Error", ex.Message); Debug.WriteLine($"Exception after Selection Complete: {ex}"); } }
private async Task SynchronizeQuestionaires() { try { var questionaires = configuration.Questionaires.Where(q => q.Status != DCAnalytics.Statuses.Template).ToList(); for (int q = questionaires.Count - 1; q >= 0; q--) { var questionaire = questionaires[q]; var result = await Task.Factory.StartNew(async() => { var response = Data.Synchronization.SynchronizeQuestionaire(questionaire).Result; var responseContent = await response.Content.ReadAsStringAsync(); return(JsonConvert.DeserializeObject <bool>(responseContent)); }); isSynchronized = !isSynchronized ? isSynchronized : result.Result; if (isSynchronized) { configuration.Questionaires.Remove(questionaire); } } AiDataStore.SaveConfiguration(configuration); } catch (Exception ex) { throw ex; } }
private void OnTraineeTapped(object sender, ItemTappedEventArgs args) { try { var qItem = args.Item as QItem; var qn = qns.Find(q => q.Key == qItem.ID); qn.IsSelected = true; var _training = configuration.Trainings.Find(x => x.Name == training.Name); var _trainee = _training.Trainees.Find(t => t.FarmerKey == qn.Key); if (_trainee == null) { _trainee = new Trainee { Key = Guid.NewGuid().ToString(), FarmerKey = qn.Key }; _training.Trainees.Add(_trainee); } AiDataStore.SaveConfiguration(configuration); Navigation.RemovePage(this); } catch (Exception ex) { } }
private void InitClient() { try { Task.Factory.StartNew(async() => { // Do some work on a background thread, allowing the UI to remain responsive var response = Synchronization.Client(user.ClientId).Result; var responseContent = await response.Content.ReadAsStringAsync(); client = JsonConvert.DeserializeObject <Client>(responseContent); }).ContinueWith(task => { Device.BeginInvokeOnMainThread(() => { if (client != null) { AiDataStore.SaveClient(client); InitConfigurations(); } else { Task.Run(async() => await PopupNavigation.Instance.PushAsync(new MessageBox("Unfortunately, your account has no affiliation to any client, please contact your admin for a possible solution", MessageType.Regular, PromptPageState))); AiDataStore.Logout(); } }); }, TaskScheduler.FromCurrentSynchronizationContext()); } catch (Exception ex) { Debug.Write(ex.StackTrace); } }
public void InitConfigurations() { try { Task.Factory.StartNew(async() => { // Do some work on a background thread, allowing the UI to remain responsive var response = Synchronization.Configurations(user).Result; var responseContent = await response.Content.ReadAsStringAsync(); configurations = JsonConvert.DeserializeObject <List <Configuration> >(responseContent); }).ContinueWith(task => { Device.BeginInvokeOnMainThread(() => { progressIndicator.IsVisible = false; if (configurations == null) { Task.Run(async() => await PopupNavigation.Instance.PushAsync(new MessageBox("Unfortunately, you have not been attached to any configuration, please get in touch with your team lead to attach you to one", MessageType.Regular, PromptPageState))); AiDataStore.Logout(); App.Current.MainPage = new NavigationPage(new SignIn()); } else { Init(); AiDataStore.SaveConfigurations(configurations); } }); }, TaskScheduler.FromCurrentSynchronizationContext()); } catch (Exception ex) { Debug.Write(ex.StackTrace); } }
public NavigationDrawer() { InitializeComponent(); user = AiDataStore.GetUser(); client = AiDataStore.Client(); Init(); }
private async Task SynchronizeTrainings() { try { for (int t = configuration.Trainings.Count - 1; t >= 0; t--) { var training = configuration.Trainings[t]; var result = await Task.Factory.StartNew(async() => { var response = Data.Synchronization.SynchronizeTraining(training).Result; var responseContent = await response.Content.ReadAsStringAsync(); return(JsonConvert.DeserializeObject <bool>(responseContent)); }); isSynchronized = !isSynchronized ? isSynchronized : result.Result; if (isSynchronized) { training.Trainees.Clear(); } } AiDataStore.SaveConfiguration(configuration); } catch (Exception ex) { throw ex; } }
private async Task SynchronizePurchases() { try { for (int p = configuration.Purchases.Count - 1; p >= 0; p--) { var purchase = configuration.Purchases[p]; var result = await Task.Factory.StartNew(async() => { var response = Data.Synchronization.SynchronizePurchase(purchase).Result; var responseContent = await response.Content.ReadAsStringAsync(); return(JsonConvert.DeserializeObject <bool>(responseContent)); }); isSynchronized = !isSynchronized ? isSynchronized : result.Result; if (isSynchronized) { configuration.Purchases.Remove(purchase); } } AiDataStore.SaveConfiguration(configuration); } catch (Exception ex) { throw ex; } }
private async Task SynchronizeInspections() { try { var inspections = configuration.Inspections.Where(x => !string.IsNullOrEmpty(x.FarmerKey)).ToList(); for (int i = inspections.Count - 1; i >= 0; i--) { var inspection = inspections[i]; var result = await Task.Factory.StartNew(async() => { var response = Data.Synchronization.SynchronizeInspection(inspection).Result; var responseContent = await response.Content.ReadAsStringAsync(); return(JsonConvert.DeserializeObject <bool>(responseContent)); }); isSynchronized = !isSynchronized ? isSynchronized : result.Result; if (isSynchronized) { configuration.Inspections.Remove(inspection); } } AiDataStore.SaveConfiguration(configuration); } catch (Exception ex) { throw ex; } }
public ChangePassword(PromptPageState promptPageState) { InitializeComponent(); this.promptPageState = promptPageState; configuration = AiDataStore.GetConfiguration(); user = AiDataStore.GetUser(); }
public ChangeUsername(PromptPageState promptPageState) { InitializeComponent(); this.promptPageState = promptPageState; this.configuration = AiDataStore.GetConfiguration(); this.user = AiDataStore.GetUser(); Username.Text = user.UserName; }
public void OnExit() { try { AiDataStore.Logout(); App.Current.MainPage = new NavigationPage(new SignIn()); } catch (Exception ex) { } }
public Trainings(string Title = null) { InitializeComponent(); if (!string.IsNullOrEmpty(Title)) { this.Title = Title; } this.configuration = AiDataStore.GetConfiguration(); Init(); }
public void OnConfirm() { try { configuration.Questionaires.Remove(configuration.Questionaires.Find(x => x.Key == Questionaire.Key)); AiDataStore.SaveConfiguration(configuration); Navigation.RemovePage(this); } catch (Exception ex) { } }
private async void OnSynchronizationTapped(object sender, EventArgs args) { try { configuration = AiDataStore.GetConfiguration(); (Application.Current.MainPage as MasterDetailPage).IsPresented = false; Synchronize = new Synchronize(this); await PopupNavigation.Instance.PushAsync(Synchronize); } catch (Exception ex) { } }
public void OnConfirm() { try { configuration.Questionaires.Remove(configuration.Questionaires.Find(x => x.Key == questionaire.Key)); AiDataStore.SaveConfiguration(configuration); Navigation.RemovePage(this); } catch (Exception ex) { Task.Run(async() => await PopupNavigation.Instance.PushAsync(new MessageBox(ex.StackTrace, MessageType.Regular, this), true)); } }
private void PurchaseItem(object sender, EventArgs args) { try { if (string.IsNullOrEmpty(stationLbl.ClassId) || string.IsNullOrEmpty(productLbl.ClassId) || string.IsNullOrEmpty(qty.Text) || string.IsNullOrEmpty(price.Text)) { Task.Run(async() => await PopupNavigation.Instance.PushAsync(new MessageBox("All fields should be filled", MessageType.Regular, this), true)); } else { if (purchase == null) { purchase = new Models.Purchase { Key = Guid.NewGuid().ToString(), Lotid = (configuration.Purchases.Count() == 0) ? "LotId1" : "LotId" + (Convert.ToInt64(Regex.Match(configuration.Purchases.Last().Lotid, @"\d+$").Value) + 1), DateOfPurchase = DateTime.Now.Date, Farmer = questionaire.Key, ConfigurationId = configuration.OID, CreatedBy = User.Key } } ; purchase.Price = Convert.ToDecimal(price.Text); purchase.Quantity = Convert.ToDecimal(qty.Text); purchase.Product = int.Parse(productLbl.ClassId); purchase.Station = int.Parse(stationLbl.ClassId); purchase.TotalAmount = Convert.ToDecimal(price.Text) * Convert.ToDecimal(qty.Text); var configPurchase = configuration.Purchases.Find(x => x.Key == purchase.Key); if (configPurchase == null) { configuration.Purchases.Add(purchase); } else { configPurchase = purchase; } AiDataStore.SaveConfiguration(configuration); Navigation.RemovePage(this); } } catch (Exception ex) { } }
private void Init() { try { configuration = AiDataStore.GetConfiguration(); user = AiDataStore.GetUser(); names.Text = user.Firstname + " " + user.Lastname; username.Text = user.UserName; mail.Text = user.Email; } catch (Exception ex) { } }
private void OnConfigurationTapped(object sender, ItemTappedEventArgs args) { try { var configuration = args.Item as Configuration; AiDataStore.SaveConfiguration(configuration); var configUser = configuration.Users.Find(u => u.OID == user.OID); //App.Current.MainPage = new MainPage(configUser.UserRights.FirstOrDefault().ObjectType); App.Current.MainPage = new MainPage(); } catch (Exception ex) { } }
public SaveQuestionaire() { InitializeComponent(); try { user = AiDataStore.GetUser(); if (user.UserRights.Where(x => x.ObjectType == DCAnalytics.ObjectType.Certification).ToList().Count() > 0) { returnLbl.Text = "RETURN TO CERTIFICATE"; reportStatus.Text = "Submit Certification"; } } catch (Exception ex) { Task.Run(async() => await PopupNavigation.Instance.PushAsync(new MessageBox(ex.StackTrace, MessageType.Regular, this), true)); } }
public Purchase(Models.Purchase purchase = null, Questionaire questionaire = null) { InitializeComponent(); configuration = AiDataStore.GetConfiguration(); this.questionaire = questionaire; this.purchase = purchase; Question qn = questionaire.Sections.FirstOrDefault().Questions.Find(x => x.QuestionText == "Name"); if (qn != null) { name.Text = qn.Answers.FirstOrDefault().AnswerText; } if (purchase != null) { Init(); } }
private void OnSignOutTapped(object sender, EventArgs args) { try { (Application.Current.MainPage as MasterDetailPage).IsPresented = false; configuration = AiDataStore.GetConfiguration(); if (!IsDataExisting()) { Task.Run(async() => await PopupNavigation.Instance.PushAsync(new MessageBox("You have unsynchronized data, are you sure you want to logout?", MessageType.Logout, this))); } else { OnExit(); } } catch (Exception ex) { } }
private void Init() { configuration = AiDataStore.GetConfiguration(); var _purchases = configuration.Purchases.Where(x => x.Farmer == questionaire.Key).ToList(); if (_purchases.Count > 0) { purchases.IsVisible = true; nextPageFAB.IsVisible = true; nopurchases.IsVisible = false; purchases.ItemsSource = _purchases; } else { purchases.IsVisible = false; nextPageFAB.IsVisible = false; nopurchases.IsVisible = true; } }
private void Init() { try { user = AiDataStore.GetUser(); var answer = questionaire.Sections.FirstOrDefault().Questions.Find(x => x.QuestionText == "Name").Answers.FirstOrDefault(); name.Text = answer.AnswerText; Question qn = questionaire.Sections.FirstOrDefault().Questions.Find(x => x.QuestionText == "Region"); if (qn != null) { if (qn.Answers != null) { region.IsVisible = true; region.Text = qn.EnumList.EnumValues.Find(r => r.Code == Convert.ToInt64(qn.Answers.FirstOrDefault())).Description; } } if (ObjectType == DCAnalytics.ObjectType.Purchase) { actionBtn.Text = "Purchase"; actionBtn.Clicked += OnPurchase; } else if (ObjectType == DCAnalytics.ObjectType.Certification) { actionBtn.Text = "Certify"; actionBtn.Clicked += OnCertify; } else if (ObjectType == DCAnalytics.ObjectType.Purchase) { actionBtn.Text = "Purchase"; actionBtn.Clicked += OnPurchase; } else { actionBtn.Text = "Survey"; actionBtn.Clicked += OnSurvey; } } catch (Exception ex) { } }
public void Authorize() { //Show progress indicator processInIndicator.IsVisible = true; processInIndicator.IsRunning = true; signInLbl.Text = "Please wait..."; Task.Factory.StartNew(async() => { // Do some work on a background thread, allowing the UI to remain responsive user = configuration.Users.Find(x => x.UserName == Username.Text && x.Password == Password.Text); }).ContinueWith(task => { Device.BeginInvokeOnMainThread(() => { try { Task.Run(async() => await Task.Delay(5000)); //Hide progress indicator processInIndicator.IsRunning = false; processInIndicator.IsVisible = false; if (user != null) { AiDataStore.SaveUser(user); StartApplication(user.UserRights.FirstOrDefault().ObjectType); } else { Task.Run(async() => await PopupNavigation.Instance.PushAsync(new MessageBox("Wrong username or password", MessageType.Regular, this))); signInLbl.Text = "SIGN IN"; } } catch (Exception ex) { } }); }, TaskScheduler.FromCurrentSynchronizationContext()); }
private void OnSave(object sender, EventArgs args) { try { if (string.IsNullOrEmpty(CPassword.Text) || string.IsNullOrEmpty(NPassword.Text) || string.IsNullOrEmpty(Password.Text)) { Task.Run(async() => await PopupNavigation.Instance.PushAsync(new MessageBox("Enter missing password to proceed", MessageType.Regular, promptPageState), true)); return; } if (user.Password.Equals(NPassword.Text)) { Task.Run(async() => await PopupNavigation.Instance.PushAsync(new MessageBox("You've entered a wrong current password", MessageType.Regular, promptPageState), true)); return; } if (!NPassword.Text.Equals(Password.Text)) { Task.Run(async() => await PopupNavigation.Instance.PushAsync(new MessageBox("New Password doesnot match the confirmed password", MessageType.Regular, promptPageState), true)); return; } //Save configuration configuration.Users.Find(x => x.UserName == user.UserName).Password = NPassword.Text; AiDataStore.SaveConfiguration(configuration); //Save user user.Password = NPassword.Text; AiDataStore.SaveUser(user); //Close Popup Task.Run(async() => await PopupNavigation.Instance.RemovePageAsync(this)); } catch (Exception ex) { Task.Run(async() => await PopupNavigation.Instance.PushAsync(new MessageBox(ex.Message, MessageType.Regular, promptPageState), true)); } }