コード例 #1
0
 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);
 }
コード例 #2
0
        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);
        }
コード例 #3
0
        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();
                }
            }
        }