Exemplo n.º 1
0
    public static IStream <T> MergeWith <T>(this IStream <T> stream, params IStream <T>[] others)
    {
        return(new AnonymousStream <T>((Action <T> reaction, Priority p) =>
        {
            ListDisposable disp = new ListDisposable();
            disp.Add(stream.Listen(reaction, p));

            foreach (var other in others)
            {
                disp.Add(other.Listen(reaction, p));
            }

            return disp;
        }));
    }
Exemplo n.º 2
0
    public static IEmptyStream MergeWith(this IEmptyStream stream, params IEmptyStream[] others)
    {
        return(new AnonymousEmptyStream((reaction, p) =>
        {
            ListDisposable disp = new ListDisposable();
            disp.Add(stream.Listen(reaction, p));

            foreach (var other in others)
            {
                disp.Add(other.Listen(reaction, p));
            }

            return disp;
        }));
    }
Exemplo n.º 3
0
        public static IDisposable ProcessEach <T>(this IObservableCollection <T> self, Action <T> func, Action <T> onRemove = null)
        {
            foreach (var item in self)
            {
                func(item);
            }
            var finalDisp  = new ListDisposable();
            var collection = new Collection <T>();

            finalDisp.Add(self.ObserveReset().Listen(unit =>
            {
                if (onRemove != null)
                {
                    foreach (var element in collection)
                    {
                        onRemove(element);
                    }
                }

                collection.Clear();
            }));
            finalDisp.Add(self.ObserveAdd().Listen(add =>
            {
                func(add.Value);
                collection.Add(add.Value);
            }));
            finalDisp.Add(self.ObserveReplace().Listen(replaceEvent =>
            {
                collection.Add(replaceEvent.NewValue);
                collection.Remove(replaceEvent.OldValue);
                func(replaceEvent.NewValue);
                if (onRemove != null)
                {
                    onRemove(replaceEvent.OldValue);
                }
            }));

            if (onRemove != null)
            {
                finalDisp.Add(self.ObserveRemove().Listen(remove =>
                {
                    onRemove(remove.Value);
                    collection.Remove(remove.Value);
                }));
            }
            return(finalDisp);
        }
Exemplo n.º 4
0
 public ServicesHome()
 {
     _dc     = new ecommersEntities();
     _result = new DataHomeSite();
     ListDisposable.Add(_dc);
 }