/// <summary> /// Gets the sample type field value. /// </summary> /// <param name="field"> /// The field. /// </param> /// <param name="editableRoot"> /// The editable root. /// </param> /// <returns> /// The value. /// </returns> public object GetValue(DetailsSaveFieldModel field, IEditableRoot editableRoot) { var jObject = field.Value as JObject; if (jObject != null) { return jObject.ToObject<SampleTypeModel>(); } return field.Value; }
public object GetValue(DetailsSaveFieldModel field, IEditableRoot editableRoot) { var bytes = field.Value as byte[]; var base64 = field.Value as string; if (!string.IsNullOrEmpty(base64)) { bytes = Convert.FromBase64String(base64); } return bytes; }
/// <summary> /// Gets the value. /// </summary> /// <param name="field">The field.</param> /// <param name="editableRoot">The editable root.</param> /// <returns></returns> public object GetValue(DetailsSaveFieldModel field, IEditableRoot editableRoot) { if (field.Settings == null) return null; var fileFieldOptions = field.Settings.ToObject<FileFieldOptions>(); if (fileFieldOptions == null) return null; IFileProcess fileEdit = editableRoot.GetValueByPropertyName(field.SystemName); if (fileEdit == null) return null; fileEdit.FileName = fileFieldOptions.FileName; fileEdit.OriginalFileName = fileFieldOptions.OriginalFileName; if (!fileFieldOptions.Locked) { fileEdit.LockedDate = null; } else if (!fileEdit.Locked.HasValue || !fileEdit.Locked.Value) { fileEdit.LockedDate = DateTime.Now; } fileEdit.Locked = fileFieldOptions.Locked; fileEdit.LockedByAccountId = fileFieldOptions.LockedByAccountId; fileEdit.LockedByAccountName = fileFieldOptions.LockedByAccountName; if (fileFieldOptions.AuditLog != null) { fileEdit.FileChangeInfo = new AuditLogInfo { LogType = fileFieldOptions.AuditLog.LogType, ProcessName = fileFieldOptions.AuditLog.ProcessName, ItemId = fileFieldOptions.AuditLog.ItemId, FieldName = fileFieldOptions.AuditLog.FieldName, OldValue = fileFieldOptions.AuditLog.OldValue, NewValue = fileFieldOptions.AuditLog.NewValue, DateUpdated = fileFieldOptions.AuditLog.DateUpdated, User = fileFieldOptions.AuditLog.User }; } var newModel = ((IBusinessBase)fileEdit).Save(); if (fileFieldOptions.FileId == 0) { editableRoot.SetValueByPropertyName(string.Format("{0}Id", field.SystemName), ((IDynamicObject)newModel).Id); } return newModel; }
/// <summary> /// Gets the field value. /// </summary> /// <param name="field">The field.</param> /// <returns></returns> private object GetFieldValue(DetailsSaveFieldModel field) { switch (field.FieldType) { case ColumnTypes.Integer: return Convert.ToInt32(field.Value); case ColumnTypes.Frequency: var jObject = field.Value as JObject; if (jObject != null) return jObject.ToObject<FrequencyModel>(); return field.Value; case ColumnTypes.Reference: return Convert.ToInt32(field.Value); case ColumnTypes.MultiReference: if (field.Value == null) return null; return JsonConvert.DeserializeObject<List<MultiCrossReferenceModel>>(field.Value.ToString()); case ColumnTypes.Numeric: return Convert.ToDecimal(field.Value); default: return field.Value; } }
public object GetValue(DetailsSaveFieldModel field, IEditableRoot editableRoot) { return Convert.ToInt32(field.Value); }
private static void SetSampleTypeValue(DetailsSaveFieldModel field, IEditableRoot editableRoot) { var model = field.Value as SampleTypeModel; if (model != null) { editableRoot.SetSampleType(field.SystemName, model.SampleType); editableRoot.SetSampleFalseLabel(field.SystemName, model.FalseLabel); editableRoot.SetSampleTrueLabel(field.SystemName, model.TrueLabel); } }
private static void SetFrequencyValue(DetailsSaveFieldModel field, IEditableRoot editableRoot) { var model = field.Value as FrequencyModel; if (model != null) { FrequencyFieldOptions settings = null; if (field.Settings != null) { settings = field.Settings.ToObject<FrequencyFieldOptions>(); } editableRoot.SetFrequencyInfo( field.SystemName, new FrequencyInfo(GetFrequencyName(model, settings), model.FrequencyType.ToString(), model.FrequencyHours, model.SelectedEvent)); } }
private void SetMultiReferenceValue(DetailsSaveFieldModel field, IEditableRoot editableRoot) { var currentMcrValue = (ICrossRefItemList)editableRoot.GetValueByPropertyName(field.SystemName); if (field.Value == null) { currentMcrValue.Clear(); return; } var mcrContent = JsonConvert.DeserializeObject<List<MultiCrossReferenceModel>>(field.Value.ToString()); if (mcrContent == null || mcrContent.ToArray().Length == 0) { if (currentMcrValue != null) { currentMcrValue.Clear(); } return; } var newItemsList = mcrContent .Where(mcrItem => !currentMcrValue.Contains(mcrItem.Id)) .Select(c => (ICrossRefItemInfo)_dynamicTypeManager.GetMultiCrossReferenceItem(editableRoot.ProcessName, field.SystemName, c.Id)).ToList(); var deletedItems = (from ICrossRefItemInfo item in currentMcrValue where !mcrContent.Select(x=>x.Id).Contains(item.Id) select item).ToList(); currentMcrValue.RemoveRange(deletedItems); currentMcrValue.AddRange(newItemsList); }
private void SetValue(Type editableRootType, DetailsSaveFieldModel field, IEditableRoot editableRoot) { var prop = editableRootType.GetProperty(field.SystemName); if (prop != null) { if (_handlers.ContainsKey(field.FieldType)) field.Value = _handlers[field.FieldType].GetValue(field, editableRoot); if (field.FieldType == ColumnTypes.Reference) { int? value = new int?(Convert.ToInt32(field.Value)); prop.SetValue(editableRoot, value); return; } if (field.FieldType == ColumnTypes.MultiReference) { SetMultiReferenceValue(field, editableRoot); return; } if (field.FieldType == ColumnTypes.Numeric) { decimal? value = new decimal?(Convert.ToDecimal(field.Value)); prop.SetValue(editableRoot, value); return; } if (field.FieldType == ColumnTypes.Frequency) { SetFrequencyValue(field, editableRoot); return; } if (field.FieldType == ColumnTypes.SampleType) { SetSampleTypeValue(field, editableRoot); return; } prop.SetValue(editableRoot, field.Value); } else SetValue(editableRoot.GetBaseEdit().GetType(), field, editableRoot.GetBaseEdit()); }