public bool CanHandle(object obj, IGraph uow) { if (obj == null) { return(false); } //if it's not managedhydrateable skip immediately if (!(obj is IManagedHydrateable)) { return(false); } //do we have the indicated value manager? if not, we'll skip and let the chain decide IManagedHydrateable hyd = obj as IManagedHydrateable; var mgrId = hyd.GetValueManagerId(); var mgr = uow.ChainOfResponsibility.GetValueManagerById(mgrId); if (mgr == null) { return(false); } return(true); }
public string DehydrateValue(object obj, IGraph uow) { if (!(obj is IManagedHydrateable)) { return(null); } //do we have the indicated value manager? if not, we'll skip and let the chain decide IManagedHydrateable hyd = obj as IManagedHydrateable; var mgrId = hyd.GetValueManagerId(); var mgr = uow.ChainOfResponsibility.GetValueManagerById(mgrId); if (mgr == null) { return(null); } var val = mgr.DehydrateValue(obj, uow); return(LengthEncoder.LengthEncodeList(mgrId, val)); }