Example #1
0
 internal void Execute(string query)
 {
     using IConnectionWrapper conn = dbWrapper.CreateConnection();
     conn.Open();
     using ICommandWrapper comm = dbWrapper.CreateCommand(query.ToString());
     comm.ExecuteNonQuery();
 }
Example #2
0
        public static IEventWrapper Wrap(this IEvent @event, ICommandWrapper parent)
        {
            var eventWrapperGeneric = typeof(EventWrapper <>)
                                      .GetTypeInfo()
                                      .MakeGenericType(@event.GetType());

            return(Activator.CreateInstance(eventWrapperGeneric, @event, parent) as IEventWrapper);
        }
Example #3
0
 public CommandToKeyBindingItem(ICommandWrapper c, params Keys[] k)
 {
     if (c == null)
     {
         throw new ArgumentNullException();
     }
     keys    = k;
     Command = c;
 }
Example #4
0
        internal List <T> ExecuteAndReadEntity <T>(string query) where T : new()
        {
            using IConnectionWrapper conn = dbWrapper.CreateConnection();
            conn.Open();
            using ICommandWrapper comm = dbWrapper.CreateCommand(query);
            var entities = comm.ExecuteReaderEntity <T>();

            return(entities);
        }
Example #5
0
        internal List <T> ExecuteAndReadOneColumn <T>(string query)
        {
            using IConnectionWrapper conn = dbWrapper.CreateConnection();
            conn.Open();
            using ICommandWrapper comm = dbWrapper.CreateCommand(query);
            var entities = comm.ExecuteReaderOneColumn <T>(0);

            return(entities);
        }
Example #6
0
        public async Task Fail(ICommandWrapper commandWrapper, Exception exception)
        {
            var commandRow = await Retrieve <CommandRow>(commandWrapper.Id.ToString());

            commandRow.IsStarted     = true;
            commandRow.IsDone        = true;
            commandRow.ExecutionDate = DateTimeOffset.UtcNow;
            commandRow.IsSuccessful  = false;
            var replaceOperation = TableOperation.Replace(commandRow);
            await _commandTable.ExecuteAsync(replaceOperation);
        }
Example #7
0
        public async Task Send <TCommand, TEvent>(ICommandWrapper <TCommand> parentCommand,
                                                  IReadOnlyCollection <TEvent> events) where TCommand : ICommand where TEvent : IEvent
        {
            var wrappedEvents = events
                                .Select(e => e.Wrap(parentCommand))
                                .ToArray();

            if (parentCommand.IsLinkToJob)
            {
                await _jobHandler.Associate(parentCommand, wrappedEvents);
            }
            await _eventStore.Save(wrappedEvents);

            await ProcessEvents(wrappedEvents);
        }
Example #8
0
        public void Bind(ICommandWrapper cmd, Control clickable)
        {
            var bi = new CommandToClickCommandEnabledUpdater(cmd, clickable);

            this.bindings.Add(bi);

            // TODO implemen can execute changed in the same manner
            clickable.Click += async(object sender, EventArgs e) =>
            {
                if (cmd.CanExecute(null))
                {
                    await cmd.Execute(null);
                }
            };
        }
Example #9
0
        public void Bind(ICommandWrapper cmd, ToolStripItem clickable)
        {
            var bi = new CommandToControlBindingItem(cmd, clickable);

            this.bindings.Add(bi);
            clickable.Enabled      = cmd.CanExecute(null);
            cmd.CanExecuteChanged += (object sender, EventArgs e) =>
            {
                clickable.Enabled = cmd.CanExecute(null);
            };


            clickable.Click += (object sender, EventArgs e) =>
            {
                if (cmd.CanExecute(null))
                {
                    cmd.Execute(null);
                }
            };
        }
Example #10
0
        public async Task Associate(ICommandWrapper commandParent, IReadOnlyCollection <IEventWrapper> eventWrappers)
        {
            var commandRow = await Retrieve <CommandRow>(commandParent.Id.ToString());

            commandRow.IsStarted     = true;
            commandRow.ExecutionDate = DateTimeOffset.UtcNow;
            commandRow.IsDone        = true;
            commandRow.IsSuccessful  = true;
            if (eventWrappers.Any())
            {
                commandRow.Events = _jsonConverter.Serialize(eventWrappers.Select(e => e.Id));
            }
            var replaceOperation = TableOperation.Replace(commandRow);
            await _commandTable.ExecuteAsync(replaceOperation);

            if (!eventWrappers.Any())
            {
                return;
            }
            var batchOperation = new TableBatchOperation();

            foreach (var eventWrapper in eventWrappers)
            {
                eventWrapper.JobId = commandParent.JobId;
                batchOperation.Add(TableOperation.Insert(new EventRow {
                    Type          = eventWrapper.Event.GetType().FullName,
                    RowKey        = eventWrapper.Id.ToString(),
                    PartitionKey  = "Event",
                    ParentId      = eventWrapper.ParentId,
                    Timestamp     = DateTimeOffset.UtcNow,
                    IsDone        = false,
                    IsStarted     = false,
                    ExecutionDate = null,
                    IsSuccessful  = false
                }));
            }
            await _eventTable.ExecuteBatchAsync(batchOperation);
        }
Example #11
0
        public async Task Process <TCommand>(ICommandWrapper <TCommand> commandWrapper) where TCommand : ICommand
        {
            var commandHandler = _commandHandlerFactory.Resolve <TCommand>();
            IReadOnlyCollection <IEvent> events;

            try {
                events = await commandHandler.Handle(commandWrapper.Command);
            }
            catch (Exception ex) {
                if (commandWrapper.IsLinkToJob)
                {
                    await _jobHandler.Fail(commandWrapper, ex);
                }
                return;
            }
            if (events.Any())
            {
                await _eventDispatcher.Send(commandWrapper, events);
            }
            else
            {
                await _jobHandler.Done(commandWrapper);
            }
        }
Example #12
0
        public void Bind(ICommandWrapper cmd, Control cont, Mouse mouseBtn, ModifierKeys key = ModifierKeys.None)
        {
            ActionsPerControl       o = getOrCreateActionContainer(cont);
            CommandToKeyBindingItem kbi;


            if (key == ModifierKeys.Control)
            {
                kbi = new CommandToKeyBindingItem(cmd, Keys.ControlKey);
            }
            else if (key == ModifierKeys.Shift)
            {
                kbi = new CommandToKeyBindingItem(cmd, Keys.ShiftKey);
            }
            else if (key == ModifierKeys.ControlShift)
            {
                kbi = new CommandToKeyBindingItem(cmd, Keys.ControlKey, Keys.ShiftKey);
            }
            else
            {
                kbi = new CommandToKeyBindingItem(cmd);
            }

            if (mouseBtn == Mouse.LeftDoubleclick)
            {
                o.AddOnDoubleClickAction(MouseButtons.Left, kbi, key);
            }
            else if (mouseBtn == Mouse.LeftDown)
            {
                o.AddOnClickAction(MouseButtons.Left, kbi, key);
            }
            else if (mouseBtn == Mouse.RightDown)
            {
                o.AddOnClickAction(MouseButtons.Right, kbi, key);
            }
        }
Example #13
0
 public async Task <IJob> Create(ICommandWrapper wrappedCommand)
 {
     return(await Create(new[] { wrappedCommand }));
 }
Example #14
0
 public EventWrapper(TEvent @event, ICommandWrapper parent)
 {
     Id       = Guid.NewGuid();
     Event    = @event;
     ParentId = parent.Id;
 }
Example #15
0
        public void Bind(ICommandWrapper c, params Keys[] k)
        {
            var bi = new CommandToKeyBindingItem(c, k);

            bindings.Add(bi);
        }
Example #16
0
        public void Bind(ICommandWrapper c, Keys key)
        {
            var bi = new CommandToKeyBindingItem(c, key);

            bindings.Add(bi);
        }
Example #17
0
 public CommandToClickCommandEnabledUpdater(ICommandWrapper cmd, Control c)
 {
     Command = cmd;
     Control = c;
 }
Example #18
0
 public CommandToControlBindingItem(ICommandWrapper cmd, ToolStripItem c)
 {
     Command = cmd;
     tsi     = c;
 }
Example #19
0
 public CommandToControlBindingItem(ICommandWrapper cmd, Control c)
 {
     Command = cmd;
     control = c;
 }
Example #20
0
 internal MockCommandFactoryBuilder ForCommandReturn(string commandString, ICommandWrapper command)
 {
     _commands.Add(commandString, command);
     return(this);
 }
Example #21
0
 public async Task Initialize(IJob job, ICommandWrapper wrappedCommand)
 {
     await Initialize(job, new[] { wrappedCommand });
 }
Example #22
0
 public ValuesController(IIndex <WrapperTypes, Func <ICommandWrapper <ITxnReq, ITxnRe> > > wrapperFactories)
 {
     _commandWrapper = wrapperFactories[WrapperTypes.DbWrapper]();
     _remoteWrapper  = wrapperFactories[WrapperTypes.RemoteService]();
 }
Example #23
0
 public async Task Send <TCommand, TEvent>(ICommandWrapper <TCommand> parentCommand, TEvent @event)
     where TCommand : ICommand where TEvent : IEvent
 {
     await Send <TCommand, TEvent>(parentCommand, new[] { @event });
 }