async Task <List <Job> > GetContent(int listStart, int listEnd, Connection cnx) { string jobKey = String.Format("/api/api/5?id=id$~{0}~cmd$~getjob~{1}~{2}", cnx.ID, listStart, listEnd); string jsonRaw = ""; jsonRaw = await Client.GET(cnx.Token, jobKey); if (jsonRaw == "errorerrorerror") { await DisplayAlert("Http Request Error", "Please try again.\n\nIf this keeps happening, please contact us.", "Ok"); //make sure that if you do return null here it doesnt break the app. return(null); } var x = JobsFromJson.FromJson(jsonRaw); List <Job> Jobs = JsonDictionaryToJob(x); return(Jobs); }
public async void ListView_ItemSelected(object sender, SelectedItemChangedEventArgs e) { var cnx = Maincnx; var item = e.SelectedItem as JobCell; Job _item = new Job(); _item = item.job; string jobKey = String.Format("/api/api/5?id=id$~{0}~cmd$~getjobdetails~{1}", cnx.ID, item.JobNumber); //List<MegaParser.groupitem> groupitems = MegaParser.ParseJobs(await GetJob(jobKey, cnx.Token)); string rawJson = await GetJob(jobKey, cnx.Token); if (connected == false) { return; } if (rawJson == "no jobs" || string.IsNullOrEmpty(rawJson)) { await DisplayAlert("No Info", "No Further Information", "ok"); Console.WriteLine("RETURNED: no jobs"); updateList(Maincnx, null); } else if (rawJson[0] != '[') { await DisplayAlert("No Info", "No Further Information", "ok"); Console.WriteLine("RETURNED: Improper Format"); updateList(Maincnx, null); } else { var x = JobsFromJson.FromJson(rawJson); List <SubJob> _subJobs = new List <SubJob>(); foreach (Dictionary <string, string> i in x) { SubJob sj = new SubJob(); if (i["subjob"] == "") { sj.Subjob = 0; } else { sj.Subjob = Convert.ToInt32(i["subjob"]); } if (i["esent"] == "") { sj.Sent = 0; } else { sj.Sent = Convert.ToInt32(i["esent"]); } sj.Status = i["status"]; sj.Created = i["created"]; sj.Description = i["description"]; sj.GrossValue = i["grossValue"]; sj.NetValue = i["netValue"]; sj.VatValue = i["vatValue"]; sj.Notes = i["notes"]; _subJobs.Add(sj); } List <Job> subjobs = new List <Job>(); foreach (SubJob _sj in _subJobs) { Job job = new Job(); if (_sj.Description == "none") { _sj.Description = ""; } if (_sj.GrossValue == null || _sj.GrossValue == "") { if (_item.grossValue == null || _item.grossValue == 0) { _sj.GrossValue = "0.00"; job.grossValue = Convert.ToDouble(_sj.GrossValue); } else if (_sj.Subjob == 0) { job.grossValue = _item.grossValue; } } else { job.grossValue = Convert.ToDouble(_sj.GrossValue); } if (_sj.NetValue == null || _sj.NetValue == "") { if (_item.netValue == null || _item.netValue == 0) { _sj.NetValue = "0.00"; job.netValue = Convert.ToDouble(_sj.NetValue); } else if (_sj.Subjob == 0) { job.netValue = _item.netValue; } } else { job.netValue = Convert.ToDouble(_sj.NetValue); } if (_sj.VatValue == null || _sj.VatValue == "") { if (_item.vatValue == null || _item.vatValue == 0) { _sj.VatValue = "0.00"; job.vatValue = Convert.ToDouble(_sj.VatValue); } else if (_sj.Subjob == 0) { job.vatValue = _item.vatValue; } } else { job.vatValue = Convert.ToDouble(_sj.VatValue); } job.job = _item.job; job.subjob = _sj.Subjob; job.status = _sj.Status; job.created = Convert.ToDateTime(_sj.Created, System.Globalization.CultureInfo.CreateSpecificCulture("en-GB")); job.add1 = _item.add1; job.add2 = _item.add2; job.add3 = _item.add3; job.add4 = _item.add4; job.addpc = _item.addpc; job.awarded = _item.awarded; job.buildername = _item.buildername; job.description = _sj.Description; job.sentcount = _sj.Sent; job.Notes = _sj.Notes; subjobs.Add(job); } if (subjobs.Count == 1) { JobCell _job = new JobCell { JobColor = StatusSorter.JobNumberColor(subjobs[0]), Status = StatusSorter.StatusText(subjobs[0]), StatusColor = StatusSorter.StatusColor(subjobs[0]), CellColor = StatusSorter.CellColor(subjobs[0]), Add1 = subjobs[0].add1, Add2 = subjobs[0].add2, Add3 = subjobs[0].add3, Add4 = subjobs[0].add4, AddPC = subjobs[0].addpc, Awarded = subjobs[0].awarded, Builder = subjobs[0].buildername, Created = subjobs[0].created, Description = subjobs[0].description, JobNumber = subjobs[0].job.ToString(), SentCount = subjobs[0].sentcount, GrossValue = subjobs[0].grossValue, NetValue = subjobs[0].netValue, VatValue = subjobs[0].vatValue, Notes = subjobs[0].Notes, noSubs = true, job = _item }; await Navigation.PushAsync(new JobSpecific(cnx, _job, false)); } else { await Navigation.PushAsync(new Subjobs_List(cnx, subjobs, _item)); } } }