private static void SetExtendedColumnValues( Context context, BaseItemModel model, ExpandoObject data, Column[] columns) { columns?.ForEach(column => model?.GetValue( context: context, column: column, value: String( data: data, columnName: column.ColumnName))); }
public override bool TrySetMember(SetMemberBinder binder, object value) { string name = binder.Name; Model.GetValue( context: Context, column: new Column(name), value: value.ToStr()); switch (name) { case nameof(BaseModel.VerUp): Model.VerUp = value.ToBool(); return(true); case nameof(BaseItemModel.Body): Model.Body = value.ToStr(); return(true); case nameof(BaseItemModel.Title): Model.Title.Value = value.ToStr(); return(true); } if (Model is IssueModel issueModel) { switch (name) { case nameof(IssueModel.StartTime): issueModel.StartTime = value.ToDateTime(); return(true); case nameof(IssueModel.CompletionTime): issueModel.CompletionTime.Value = value.ToDateTime(); return(true); case nameof(IssueModel.WorkValue): issueModel.WorkValue.Value = value.ToDecimal(); return(true); case nameof(IssueModel.ProgressRate): issueModel.ProgressRate.Value = value.ToDecimal(); return(true); case nameof(IssueModel.Status): issueModel.Status.Value = value.ToInt(); return(true); case nameof(IssueModel.Manager): issueModel.Manager = SiteInfo.User( context: Context, userId: value.ToInt()); return(true); case nameof(IssueModel.Owner): issueModel.Owner = SiteInfo.User( context: Context, userId: value.ToInt()); return(true); case nameof(IssueModel.Locked): issueModel.Locked = value.ToBool(); return(true); case nameof(IssueModel.ReadOnly): issueModel.ReadOnly = value.ToBool(); return(true); } } else if (Model is ResultModel resultModel) { switch (name) { case nameof(ResultModel.Status): resultModel.Status.Value = value.ToInt(); return(true); case nameof(ResultModel.Manager): resultModel.Manager = SiteInfo.User( context: Context, userId: value.ToInt()); return(true); case nameof(ResultModel.Owner): resultModel.Owner = SiteInfo.User( context: Context, userId: value.ToInt()); return(true); case nameof(ResultModel.Locked): resultModel.Locked = value.ToBool(); return(true); case nameof(ResultModel.ReadOnly): resultModel.ReadOnly = value.ToBool(); return(true); } } return(true); }