private void OnTableChanged(object sender, Watcher.Events.Args.TableChangedEventArgs <TModel> args)
        {
            var totalModels = args.TotalChangedModels;
            var sent        = new List <TModel>();

            foreach (var model in totalModels)
            {
                if (!_redisClient.TrySendModel(model, out var exception))
                {
                    Logger.LogWarning($"Can't sent model: UPDATE_ID: {model.UpdateId}");
                    Logger.LogWarning(exception.ToString());
                    continue;
                }

                Logger.LogDebug($"Model with UPDATE_ID: {model.UpdateId} sent to redis");
                sent.Add(model);

                var tempTable  = model.GetTempTableName();
                var idProperty = model.GetDbProperty(nameof(model.UpdateId));

                var command = $"DELETE FROM {tempTable} WHERE {idProperty} = {model.UpdateId}";
                var isOk    = _fbSqlExecuter.ExecuteNonQuery(command, (ex) =>
                {
                    Logger.LogWarning(ex.ToString());
                });

                if (isOk)
                {
                    Logger.LogDebug($"Model with UPDATE_ID: {model.UpdateId} deleted from {tempTable}");
                }
            }

            ModelsSentToRedis?.Invoke(this, new ModelsUpdatedEventArgs <TModel>()
            {
                Models = sent,
            });
        }
Exemple #2
0
 private void _watcher_TableChanged(object sender,
                                    Watcher.Events.Args.TableChangedEventArgs <EmployeeActionModel> args)
 {
     var a = args.TotalChangedModels;
 }