private IBlazorSitecoreField CreateSitecoreField <T>(KeyValuePair <string, BlazorField> sitecoreField) { if (sitecoreField.Value == null) { return(null); } BlazorSitecoreField <T> field = null; T fieldValue = default; try { switch (sitecoreField.Value.Type) { case FieldTypes.HtmlField: case FieldTypes.PlainTextField: case FieldTypes.CheckboxField: fieldValue = (T)Convert.ChangeType(sitecoreField.Value.Value.ToString(), typeof(T)); break; default: fieldValue = JsonSerializer.Deserialize <T>(sitecoreField.Value.Value.ToString()); break; } field = new BlazorSitecoreField <T> { FieldName = sitecoreField.Key, Value = fieldValue, Editable = sitecoreField.Value?.Editable, Type = sitecoreField.Value?.Type }; } catch (Exception ex) { Console.WriteLine($"Error creating field {sitecoreField.Value.Value}. Error { ex.Message}"); } return(field); }
private IBlazorSitecoreField CreateSitecoreField <T>(KeyValuePair <string, BlazorField> sitecoreField) where T : class { if (sitecoreField.Value == null) { return(null); } BlazorSitecoreField <T> field = null; T fieldValue = default; try { switch (sitecoreField.Value.Type) { case FieldTypes.HtmlField: case FieldTypes.PlainTextField: fieldValue = sitecoreField.Value.Value as T; break; default: fieldValue = Json.Deserialize <T>(sitecoreField.Value.Value.ToString()); break; } field = new BlazorSitecoreField <T> { FieldName = sitecoreField.Key, Value = fieldValue, Editable = sitecoreField.Value?.Editable, Type = sitecoreField.Value?.Type }; } catch (Exception ex) { Console.WriteLine($"Error cretaing field {fieldValue.GetType()}. Error { ex.Message}"); } return(field); }
private IBlazorSitecoreField CreateComplexSitecoreField <T>(KeyValuePair <string, BlazorField> field) where T : class { if (field.Value == null) { return(null); } BlazorSitecoreField <T> sitecoreField = null; T fieldValue = default; try { switch (field.Value.Type) { case FieldTypes.MultiListField: BlazorFieldValueMultiList fieldValueMultiList = new BlazorFieldValueMultiList() { Values = new List <BlazorFieldValueMultiListItem>() }; foreach (var item in field.Value.Values) { if (item == null || string.IsNullOrWhiteSpace(item.ToString())) { continue; } BlazorFieldValueMultiListItem multiListItem = Json.Deserialize <BlazorFieldValueMultiListItem>(item.ToString()); var model = CreateComponentModel(multiListItem.Fields); if (!model.hasModel) { continue; } multiListItem.SitecoreFields = model.model; fieldValueMultiList.Values.Add(multiListItem); } fieldValue = fieldValueMultiList as T; break; default: break; } sitecoreField = new BlazorSitecoreField <T> { FieldName = field.Key, Value = fieldValue, Editable = field.Value?.Editable, Type = field.Value?.Type }; } catch (Exception ex) { Console.WriteLine($"Error cretaing complex field {fieldValue.GetType()}. Error { ex.Message}"); } return(sitecoreField); }