예제 #1
0
        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());
            }
        }
예제 #2
0
        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);
            }
        }