private Call ToEntity(CallCache cache, Call entity) { entity.UserId = cache.UserId; entity.VirtualNumber = cache.VirtualNumber; entity.ForwardNumber = cache.ForwardNumber; entity.CallDate = cache.CallDate; return(entity); }
internal static CallCache ToCache(Call obj) { var result = new CallCache(); result.UserId = obj.UserId; result.VirtualNumber = obj.VirtualNumber; result.ForwardNumber = obj.ForwardNumber; result.CallDate = obj.CallDate; return(result); }
public static void CopyTo <T> (this T source, T sink) where T : IDomainQuore { var upsertCall = new CallCache(ExpressionUtils.Lambda <Action <T, IEnumerable <CallCache.Entity> > > ((q, e) => q.Quore.Upsert(e))); var sourceIori = source.Quore.Gateway.Iori; var sinkIori = sink.Quore.Gateway.Iori; Trace.WriteLine($"{nameof (CopyTo)} source = {sourceIori.ToFileName ()} sink = {sinkIori.ToFileName ()}"); foreach (var queryProp in typeof(T).GetProperties().Where(p => typeof(IQueryable).IsAssignableFrom(p.PropertyType))) { using (var trans = sink.Quore.BeginTransaction()) { var s = queryProp.GetValue(source); var type = queryProp.PropertyType.GenericTypeArguments.First(); var meth = upsertCall.Getter(type); Trace.WriteLine($"{nameof (CopyTo)} {nameof (IQueryable)}<{type.Name}>"); meth.DynamicInvoke(sink, s); trans.Commit(); } } }