Exemple #1
0
        public override void Run()
        {
            try
            {
                var connection = new AfConnectionMgr(Server, DatabaseName);
                connection.Connect();
                var afDatabase = connection.GetDatabase();

                // Parsing options
                if (OptionList)
                {
                    ListElements(afDatabase, ElementPath);
                }

                if (NewElementParams != null && NewElementParams.Count > 0)
                {
                    var elementName     = NewElementParams[0];
                    var elementPath     = NewElementParams.Count >= 2 ? NewElementParams[1]:null;
                    var elementTemplate = NewElementParams.Count >= 3 ? NewElementParams[2]:null;
                    CreateElement(afDatabase, elementName, elementPath, elementTemplate);
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }
        }
Exemple #2
0
        private void MonitorAFAttributes()
        {
            DataPipeHandler afDataPipeHandler = null;

            try
            {
                //connect to AF Server
                if (string.IsNullOrEmpty(AFServerName))
                {
                    throw new AFServerNotFoundException();
                }

                else
                {
                    AFDatabase database;
                    var        _afConnectionManager = AfConnectionMgr.ConnectAndGetDatabase(AFServerName, AFDatabaseName,
                                                                                            out database);

                    // get the attributes that will be monitored
                    IDictionary <string, string> findAttributesErrors;
                    var attributes = AFAttribute.FindAttributesByPath(AttributesList, database, out findAttributesErrors);

                    // in case there was errors in the search we display them
                    if (findAttributesErrors != null && findAttributesErrors.Count > 0)
                    {
                        findAttributesErrors.ToList().ForEach(e => Logger.ErrorFormat("{0},{1}", e.Key, e.Value));
                    }


                    afDataPipeHandler = new DataPipeHandler(new AFConsoleDataObserver());
                    afDataPipeHandler.AddSignupsWithInitEvents(attributes);

                    afDataPipeHandler.StartListening(TimeSpan.FromSeconds(Interval));

                    Logger.InfoFormat("Listening for data changes started. Checking every {0}s", Interval);
                }
            }


            catch (Exception ex)
            {
                Logger.Error(ex);
            }

            finally
            {
                _terminateRequest.WaitOne();

                // null propagation operator, this is same as x!=null x.Dispose()
                afDataPipeHandler?.Dispose();
            }
        }
Exemple #3
0
        public override void Run()
        {
            try
            {
                var connection = new AfConnectionMgr(Server, Database);
                connection.Connect();

                AFDatabase database = connection.GetDatabase();

                var afObject = AFObject.FindObject(AttributePath, database);

                var separator = CultureInfo.CurrentCulture.TextInfo.ListSeparator;

                if (afObject is AFAttribute)
                {
                    var     attribute = (AFAttribute)afObject;
                    AFValue value     = attribute.GetValue();
                    Console.WriteLine("{0}{1}{2}{3}{4}", GetStringValue(value), separator, value.Timestamp, separator, attribute.Name);
                }

                if (afObject is AFElement)
                {
                    var element = (AFElement)afObject;

                    // the attibute list object allows a single GetValue() call for all attributes at same time.
                    // We call this a "Bulk Call"
                    var attributes = new AFAttributeList(element.Attributes);
                    var values     = attributes.GetValue();

                    // prints the results
                    values.ForEach((afvalue) => Console.WriteLine("{0}{1}{2}{3}{4}", GetStringValue(afvalue), separator, afvalue.Timestamp, separator, afvalue.Attribute.Name));
                }
            }

            catch (Exception ex)
            {
                this.Logger.Error(ex);
            }
        }