static void Main() { var observableProvider = new ObservableProvider(); var observableGenerator1 = GeneratorFactory.CreateGenerator(0, 100, 1, 100); var observableGenerator2 = GeneratorFactory.CreateGenerator(1000, 2000, 2, 600); var observableGenerator3 = GeneratorFactory.CreateGenerator(10000, 15000, 51, 1000); Console.WriteLine("Press any keys, enter to end ConsoleKey stream."); var observableMerge1 = Observable.Merge( observableProvider.ConsoleKey.Select(x => (int)x.Key), observableGenerator1, observableGenerator2, observableGenerator3 ); var consoleKeySubscribent = observableProvider.ConsoleKey.Subscribe( key => { if (key.Key != ConsoleKey.Enter) { return; } observableProvider.ConsoleKey.Stop(); Console.WriteLine("Press any key to stop program."); }); var subscribent1 = observableMerge1.Subscribe( item => { Console.WriteLine($"Merge1: {item}"); }, exception => Console.WriteLine(exception)); var observableMerge2 = GeneratorFactory.CreateGenerator(-1000, 0, 1, 10); observableMerge2 .Merge(observableGenerator1) .Merge(observableGenerator2) .Merge(observableGenerator3); var subscribent2 = observableMerge2.Subscribe( item => { Console.WriteLine($"Merge2: {item}"); }, exception => Console.WriteLine(exception)); observableProvider.ConsoleKey.Start(); Console.ReadKey(); subscribent1.Dispose(); subscribent2.Dispose(); consoleKeySubscribent.Dispose(); observableProvider.Dispose(); }
public async Task <ValidationResult> AddOrUpdate(AnimalDto animal) { var validator = ValidatorFactory.GetValidator <AnimalDto>(); var validationResult = validator.Validate(animal); if (validationResult.IsSuccess) { // TODO avoid race conditions with transactions var existingEntity = await Context.Animals.FindAsync(animal.Id); if (existingEntity == null) { existingEntity = new Animal(); Context.Animals.Add(existingEntity); } else { existingEntity.ModifiedAt = DateTimeOffset.UtcNow; } existingEntity.Name = animal.Name; existingEntity.BirthDate = animal.BirthDate; existingEntity.Specie = Context.Species.Find(animal.Specie.Id); await Context.SaveChangesAsync(); var updatedDto = GetExpression().Compile()(existingEntity); ObservableProvider.OnUpdate(updatedDto, "Animal"); } return(validationResult); }
static void Main() { var observableStream1 = GeneratorFactory.CreateGenerator(0, 100, 1, 500); var observableStream2 = GeneratorFactory.CreateGenerator(1000, 1100, 1, 2000); var observableStream3 = GeneratorFactory.CreateGenerator(10000, 11000, 1, 250); var observableProvider = new ObservableProvider(); observableProvider.ConsoleKey.BreakWhenKey(ConsoleKey.Enter); var combineLatestStream = observableStream1.CombineLatest( observableStream2, observableStream3, observableProvider.ConsoleKey, (a, b, c, d) => new { A = a, B = b, C = c, D = d.Key }); var combineLatestSubscribent = combineLatestStream.DefaultPrint("CombineLatest"); Console.WriteLine("Pres any key to show results."); observableProvider.ConsoleKey.Start(); observableProvider.Dispose(); combineLatestSubscribent.Dispose(); }
static void Main(string[] args) { var observableProvider = new ObservableProvider(); var timeList = GetTimeListSamples(); var subscribent = observableProvider .TimeCounter .StartWith(timeList) .StartWith( new Time { Hours = 1, Minutes = 10 }, new Time { Hours = 2, Minutes = 20 }, new Time { Hours = 3, Minutes = 10, Seconds = 20 }, new Time { Hours = 4, Minutes = 10 } ) .Subscribe( time => { Console.WriteLine(time); }, exception => Console.WriteLine(exception) ); Console.ReadKey(); subscribent.Dispose(); }
static void Main() { var observableStream1 = GeneratorFactory.CreateGenerator(0, 100, 1, 100); var observableStream2 = GeneratorFactory.CreateGenerator(0, 100, 1, 60); var observableStream3 = GeneratorFactory.CreateGenerator(0, 100, 1, 120); var observableProvider = new ObservableProvider(); observableProvider.ConsoleKey.BreakWhenKey(ConsoleKey.Enter); var whenAndThenSequence = Observable.When(observableStream1 .And(observableStream2) .And(observableStream3) .And(observableProvider.ConsoleKey) .And(observableProvider.TimeCounter) .Then((first, second, third, consoleKey, time) => new { One = first, Two = second, Three = third, Key = consoleKey.Key, Time = time }) ); Console.WriteLine("Pres any key to show results."); var whenAndThenSubscribent = whenAndThenSequence.DefaultPrint("WhenAndThen"); observableProvider.ConsoleKey.Start(); observableProvider.Dispose(); whenAndThenSubscribent.Dispose(); }
private static void InitializeGenerators() { _observableProvider = new ObservableProvider(); var initialState = 0; _generator = Observable.Generate( initialState, condition => condition < GenerateItemCount, iterate => iterate + 1, resultSelector => resultSelector, timeSelector => TimeSpan.FromMilliseconds(100) ); }
static void Main() { var subscribents = new List <IDisposable>(); var observableProvider = new ObservableProvider(); var observableStream = GeneratorFactory.CreateGenerator(0, 5, 1, 300); Console.WriteLine("Press any keys (Enter end to stream)."); MetadataCreateGenerator(subscribents, observableStream); MetadataManual(subscribents); MetadataConsoleKey(subscribents, observableProvider); Console.ReadKey(); subscribents.ForEach(subscribent => subscribent.Dispose()); }
static void Main() { var observableProvider = new ObservableProvider(); observableProvider.ConsoleKey .Subscribe(consoleKey => { Console.WriteLine(consoleKey.Key); if (consoleKey.Key == ConsoleKey.Enter) { observableProvider.ConsoleKey.Stop(); } }); observableProvider.ConsoleKey.Start(); observableProvider.Dispose(); }
static void Main(string[] args) { var observableProvider = new ObservableProvider(); observableProvider.TimeCounter.Subscribe(time => { Console.ForegroundColor = ConsoleColor.White; Console.WriteLine(time); }); observableProvider.ValentinesDay.Subscribe(valentinesDayMessage => { Console.ForegroundColor = valentinesDayMessage.Color; Console.WriteLine(valentinesDayMessage.Message); }); Console.ReadKey(); observableProvider.Dispose(); }
public async Task <ValidationResult> Delete(int id) { var result = ValidationResult.Empty; var entity = await Context.Animals.FindAsync(id); if (entity != null) { Context.Animals.Remove(entity); await Context.SaveChangesAsync(); ObservableProvider.OnDelete(id, "Animal"); } else { result.AddError("{{animal.delete.missing}}", "Animal does not exist"); } return(result); }
private static void MetadataConsoleKey(ICollection <IDisposable> subscribents, ObservableProvider observableProvider) { subscribents.Add( observableProvider.ConsoleKey .Materialize() .DefaultPrint("MaterializeConsoleKey")); subscribents.Add(observableProvider.ConsoleKey .Materialize() .Dematerialize() .DefaultPrint("DematerializeConsoleKey")); subscribents.Add(observableProvider.ConsoleKey .Select(x => x.Key) .DefaultPrint("ConsoleKey")); observableProvider.ConsoleKey.BreakWhenKey(ConsoleKey.Enter); observableProvider.ConsoleKey.Start(); }