public Result deserialize(String json) { if (json == null || json.Equals("")) { return null; } Result result = new Result(); try { JObject jObject = JObject.Parse(json); result.Cookie = (String)jObject["cookie"]; result.Title = (String)jObject["title"]; result.HideCancel = (Boolean)jObject["hideCancel"]; result.ShowBack = (Boolean)jObject["showBack"]; JArray jArray = (JArray)jObject["resultParts"]; foreach (JObject obj in jArray) { int type = (int)obj["type"]; switch (type) { case 0: result.ResultParts.Add((String)obj["message"]); break; case 1: ResultList resultList = new ResultList(); resultList.MultiSelectionEnable = (Boolean)obj["isMultiSelection"]; resultList.Title = (String)obj["title"]; JArray records = (JArray)obj["records"]; if (records != null) { foreach (JObject jRecord in records) { Record record = new Record(); record.Code = (String)jRecord["code"]; JArray cells = (JArray)jRecord["cells"]; foreach (JObject jCell in cells) { Cell cell = new Cell(); cell.Title = (String)jCell["title"]; cell.Value = (String)jCell["value"]; record.Cells.Add(cell); } resultList.Records.Add(record); } } result.ResultParts.Add(resultList); break; case 2: CommandsList commandsList = new CommandsList(); JArray jCommands = (JArray)obj["commandNames"]; if (jCommands != null) { foreach (JObject jCommand in jCommands) { Command command = new Command(); command.Name = (String)jCommand["name"]; command.Code = (String)jCommand["code"]; commandsList.Commands.Add(command); } } result.ResultParts.Add(commandsList); break; case 3: InputType inputType = new InputType(); inputType.Type = (int)obj["inputType"]; inputType.Name = (String)obj["name"]; inputType.Value = (String)obj["value"]; result.ResultParts.Add(inputType); break; } } } catch (Exception exception) { Console.Write(exception.StackTrace); } return result; }
private void addInputType(InputType inputType) { if (inputType.Type == InputType.INPUT_TYPE_PASSWORD) { PasswordBox passwordBox = new PasswordBox(); passwordBox.Password = inputType.Value; ContentPanel.Children.Add(passwordBox); passwordBox.Focus(); passwordBox.LostFocus += new RoutedEventHandler(TextChanged_Clicked); passwordBox.KeyDown += OnKeyDownHandler; } else if (inputType.Type == InputType.INPUT_TYPE_DATE) { DatePicker datePicker = new DatePicker(); datePicker.Header = inputType.Name; datePicker.Value = toDateTime(inputType.Value); ContentPanel.Children.Add(datePicker); datePicker.Focus(); datePicker.ValueChanged += Date_Changed; } else { TextBox textBox = new TextBox(); textBox.Text = inputType.Value; InputScope Keyboard = new InputScope(); InputScopeName ScopeName = new InputScopeName(); switch (inputType.Type) { case InputType.INPUT_TYPE_DATE: ScopeName.NameValue = InputScopeNameValue.Date; break; case InputType.INPUT_TYPE_AMOUNT: ScopeName.NameValue = InputScopeNameValue.CurrencyAmount; break; case InputType.INPUT_TYPE_EMAIL: ScopeName.NameValue = InputScopeNameValue.EmailUserName; break; case InputType.INPUT_TYPE_NUMBER: ScopeName.NameValue = InputScopeNameValue.Number; break; case InputType.INPUT_TYPE_PASSWORD: ScopeName.NameValue = InputScopeNameValue.Password; break; case InputType.INPUT_TYPE_PHONE: ScopeName.NameValue = InputScopeNameValue.TelephoneNumber; break; case InputType.INPUT_TYPE_URL: ScopeName.NameValue = InputScopeNameValue.Url; break; case InputType.INPUT_TYPE_STRING: ScopeName.NameValue = InputScopeNameValue.Text; break; } Keyboard.Names.Add(ScopeName); textBox.InputScope = Keyboard; ContentPanel.Children.Add(textBox); textBox.Focus(); textBox.LostFocus += new RoutedEventHandler(TextChanged_Clicked); textBox.KeyDown += OnKeyDownHandler; } }