string CheckDayForMeeting(MainModel.JSONItem item, string rest) { switch (item.meeting) { case null: return(rest + item.lateness.ToString() + item.initial); default: return(rest + item.lateness.ToString() + item.initial + mdl.GetMeetingSign()); } }
public ArrayList parseDataJSONString(string JSONString) { ArrayList ArrayToReturn = new ArrayList(); ArrayList DeserializedJSONList; MainModel.JSONHeader header = parseJSONHeader(JSONString); MainModel.JSONItem jsonitem; string temp2; char[] temp; temp = JSONString.ToCharArray(); temp[0] = '['; temp[temp.Length - 1] = ']'; temp2 = ""; foreach (char c in temp) { temp2 += c; } DeserializedJSONList = JsonConvert.DeserializeObject <ArrayList>(temp2); if (DeserializedJSONList != null) { foreach (object item in DeserializedJSONList) { if (item != DeserializedJSONList[0]) { jsonitem = new MainModel.JSONItem(DateTime.Now, '0', 0, null); jsonitem.meeting = new List <MainModel.MeetingObject>(); foreach (JProperty jobj in (IList)item) { switch (jobj.Name) { case "date": try { jsonitem.date = DateTime.Parse(jobj.Value.ToString()); } catch (FormatException) { MessageBox.Show("Datum-Format ist falsch!", "Parsing-Fehler", MessageBoxButton.OK, MessageBoxImage.Error); } break; case "lateness": try { jsonitem.lateness = int.Parse(jobj.Value.ToString()); } catch (FormatException) { MessageBox.Show("Format für die Verspätungen ist falsch!", "Parsing-Fehler", MessageBoxButton.OK, MessageBoxImage.Error); } break; case "initial": try { jsonitem.initial = char.Parse(jobj.Value.ToString()); } catch (FormatException) { MessageBox.Show("Format für die Anwesenheit ist falsch!", "Parsing-Fehler", MessageBoxButton.OK, MessageBoxImage.Error); } break; case "meeting": bool isNull = false; foreach (object array in jobj) { int i = 0; if (array.GetType() == typeof(JValue)) { if (((JValue)array).Value == null) { isNull = true; } else { foreach (JObject arrayItem in (JValue)array) { foreach (JProperty innerItem in (IList)arrayItem) { switch (innerItem.Name) { case "time": try { jsonitem.meeting.ElementAt(i).time = DateTime.Parse(innerItem.Value.ToString()); } catch (FormatException) { MessageBox.Show("Datum-Format ist falsch!", "Parsing-Fehler", MessageBoxButton.OK, MessageBoxImage.Error); } break; case "sender": jsonitem.meeting.ElementAt(i).sender = innerItem.Value.ToString(); break; case "subject": jsonitem.meeting.ElementAt(i).subject = innerItem.Value.ToString(); break; case "info": jsonitem.meeting.ElementAt(i).info = innerItem.Value.ToString(); break; } } i++; } } } else { if (((JArray)array).Count < 1) { isNull = true; } else { foreach (JObject arrayItem in (JArray)array) { jsonitem.meeting.Add(new MainModel.MeetingObject(DateTime.Now, "", "", "")); foreach (JProperty innerItem in (IList)arrayItem) { switch (innerItem.Name) { case "time": try { jsonitem.meeting.ElementAt(i).time = DateTime.Parse(innerItem.Value.ToString()); } catch (FormatException) { MessageBox.Show("Datum-Format ist falsch!", "Parsing-Fehler", MessageBoxButton.OK, MessageBoxImage.Error); } break; case "sender": jsonitem.meeting.ElementAt(i).sender = innerItem.Value.ToString(); break; case "subject": jsonitem.meeting.ElementAt(i).subject = innerItem.Value.ToString(); break; case "info": jsonitem.meeting.ElementAt(i).info = innerItem.Value.ToString(); break; } } i++; } } } } if (isNull) { jsonitem.meeting = null; } break; } } ArrayToReturn.Add(jsonitem); } else { ArrayToReturn.Add(header); } } return(ArrayToReturn); } else { return(null); } }