private List <OperatingState> GetOperatingStates()
        {
            Console.WriteLine("Welcome to the get all operating states example!" + Environment.NewLine);

            Console.WriteLine("Determine token ..." + Environment.NewLine);

            TokenHandler tokenHandler = new TokenHandler(_user, _password, _urlForTokenGeneration);
            Token        token        = tokenHandler.GetAccessToken();

            Console.WriteLine("Token: " + token.Access_token + Environment.NewLine);

            Console.WriteLine("Determine operating states ..." + Environment.NewLine);

            FORCEBridgeConnector connector = new FORCEBridgeConnector(_urlToBridgeAPI, token);
            var states = connector.GetOperatingStates();

            var result = new List <OperatingState>();

            foreach (var item in states)
            {
                result.Add(new OperatingState()
                {
                    Code = item.Code, Description = item.Description, Color = item.Color, ShortDescription = item.ShortDescription
                });
            }
            return(result);
        }
        private List <Workplace> GetWorkplaces()
        {
            Console.WriteLine("Welcome to the get all available workplaces sample!" + Environment.NewLine);

            Console.WriteLine("Determine token ..." + Environment.NewLine);

            TokenHandler tokenHandler = new TokenHandler(_user, _password, _urlForTokenGeneration);
            Token        token        = tokenHandler.GetAccessToken();

            Console.WriteLine("Token: " + token.Access_token + Environment.NewLine);

            Console.WriteLine("Determine workplaces ..." + Environment.NewLine);

            FORCEBridgeConnector connector = new FORCEBridgeConnector(_urlToBridgeAPI, token);
            var workplaces = connector.GetWorkplaces();

            var result = new List <Workplace>();

            foreach (var item in workplaces)
            {
                result.Add(new Workplace()
                {
                    Id = item.Id, Number = item.Number, Description = item.Description, OperatingStateCode = item.OperatingState.Code, OperatingStateDescription = item.OperatingState.Description
                });
            }
            return(result);
        }
        private string GetOperatingStateOfWorkplace(string workplaceNumber)
        {
            Console.WriteLine("Determine token ..." + Environment.NewLine);

            TokenHandler tokenHandler = new TokenHandler(_user, _password, _urlForTokenGeneration);
            Token        token        = tokenHandler.GetAccessToken();

            Console.WriteLine("Token: " + token.Access_token + Environment.NewLine);

            Console.WriteLine("Determine workplace operating state ..." + Environment.NewLine);

            FORCEBridgeConnector connector = new FORCEBridgeConnector(_urlToBridgeAPI, token);
            var operatingState             = connector.GetCurrentWorkplaceOperatingStateByWorkplaceNumber(workplaceNumber);

            return(operatingState.Description + " (" + operatingState.Code + ")");
        }
Exemple #4
0
        private const string _password = "******"; // Password of the user

        static void Main()
        {
            Console.WriteLine("Welcome to the get current operating state of a workplace example!" + Environment.NewLine);

            string workplaceNumber = "R_WPL_04"; // YOUR WORKPLACE NUMBER

            Console.WriteLine("Determine token ..." + Environment.NewLine);

            TokenHandler tokenHandler = new TokenHandler(_user, _password, _urlForTokenGeneration);
            Token        token        = tokenHandler.GetAccessToken();

            Console.WriteLine("Token: " + token.Access_token + Environment.NewLine);

            Console.WriteLine("Determine workplace " + workplaceNumber + "..." + Environment.NewLine);

            FORCEBridgeConnector connector = new FORCEBridgeConnector(_urlToBridgeAPI, token);
            var workplace = connector.GetWorkplaceByNumber(workplaceNumber);

            Console.WriteLine(String.Format("Workplace: {0} ({1})", workplace.Number, workplace.Description));
            Console.WriteLine(String.Format("State: {2}: {1} (Id: {0})", workplace.OperatingState.Id, workplace.OperatingState.Description, workplace.OperatingState.Code));
        }
        private const string _password = "******"; // Password of the user

        static void Main()
        {
            Console.WriteLine("Welcome to the get all available workplaces sample!" + Environment.NewLine);

            Console.WriteLine("Determine token ..." + Environment.NewLine);

            TokenHandler tokenHandler = new TokenHandler(_user, _password, _urlForTokenGeneration);
            Token        token        = tokenHandler.GetAccessToken();

            Console.WriteLine("Token: " + token.Access_token + Environment.NewLine);

            Console.WriteLine("Determine workplaces ..." + Environment.NewLine);

            FORCEBridgeConnector connector = new FORCEBridgeConnector(_urlToBridgeAPI, token);
            var workplaces = connector.GetWorkplaces();

            foreach (var workplace in workplaces)
            {
                Console.WriteLine(String.Format("Id: {0}, Number: {1}, Description: {2}", workplace.Id, workplace.Number, workplace.Description));
            }
        }
Exemple #6
0
        private const string _password = "******"; // Password of the user

        static void Main()
        {
            Console.WriteLine("Welcome to the get all operating states example!" + Environment.NewLine);

            Console.WriteLine("Determine token ..." + Environment.NewLine);

            TokenHandler tokenHandler = new TokenHandler(_user, _password, _urlForTokenGeneration);
            Token        token        = tokenHandler.GetAccessToken();

            Console.WriteLine("Token: " + token.Access_token + Environment.NewLine);

            Console.WriteLine("Determine operating states ..." + Environment.NewLine);

            FORCEBridgeConnector connector = new FORCEBridgeConnector(_urlToBridgeAPI, token);
            var operatingStates            = connector.GetOperatingStates();

            foreach (var state in operatingStates)
            {
                Console.WriteLine(String.Format("Operating state: {0}: {1} ({2}) with color {3}", state.Code, state.ShortDescription, state.Description, state.Color));
                Console.BackgroundColor = ConsoleColor.Black;
            }
        }
        private const string _password = "******"; // Password of the user

        static async Task Main()
        {
            Console.WriteLine("Welcome to the Customized Action Callback Sample");
            Console.WriteLine("");

            TokenHandler         tokenHandler = new TokenHandler(_user, _password, _urlForTokenGeneration);
            Token                token        = tokenHandler.GetAccessToken();
            FORCEBridgeConnector connector    = new FORCEBridgeConnector(_urlToBridgeAPI, token);

            // Register Callback on Bridge API

            string MQTTTCPUrl           = "mqtt://test.mosquitto.org"; //Define your MQTT-Broker and topic!!!!
            string PORT                 = "1883";
            string MQTTTopicName        = "external/forcecustomcallback";
            string EventType            = "CUSTOMIZED_ACTION_TRIGGERED";
            string ForceCustomEventName = "test";

            Console.WriteLine("Register callback " + EventType + " for MQTT-Broker " + MQTTTCPUrl + ", topic " + MQTTTopicName);
            Console.WriteLine("");

            string callbackRegistrationJSON = BuildCallbackRegistrationJSON(MQTTTCPUrl + ":" + PORT + "/" + MQTTTopicName, EventType, ForceCustomEventName);

            connector.RegisterCallback(callbackRegistrationJSON);

            Console.WriteLine("Registration completed.");
            Console.WriteLine("");

            // Inizialize a MQTT-Client and subscribe to the above defined topic

            Console.WriteLine("Initialize a MQTT Client and subscripe to the given topic " + MQTTTopicName + "...");
            Console.WriteLine("");

            var options = new MqttClientOptionsBuilder()
                          .WithTcpServer(MQTTTCPUrl.Replace("mqtt://", String.Empty), 1883)
                          .Build();

            var factory    = new MqttFactory();
            var mqttClient = factory.CreateMqttClient();
            await mqttClient.ConnectAsync(options, CancellationToken.None);

            // Subscribe to the defined topic
            await mqttClient.SubscribeAsync(new TopicFilterBuilder().WithTopic(MQTTTopicName).Build());

            Console.WriteLine("Wait for customited actions ...");
            Console.WriteLine("");

            List <string> callbackIDs = new List <string>();

            mqttClient.UseApplicationMessageReceivedHandler(e =>
            {
                Console.WriteLine("---------------------------------------");
                var payload = Encoding.UTF8.GetString(e.ApplicationMessage.Payload);
                Console.WriteLine("--- RECEIVED " + EventType + " MESSAGE ---");
                Console.WriteLine("---------------------------------------");
                Console.WriteLine(Newtonsoft.Json.Linq.JObject.Parse(payload).SelectToken("properties.data").ToString());
                Console.WriteLine("---------------------------------------");
                Console.WriteLine("");
                string callbackId = Newtonsoft.Json.Linq.JObject.Parse(payload).SelectToken("properties.callbackId").ToString();
                if (!callbackIDs.Contains(callbackId))
                {
                    callbackIDs.Add(callbackId);
                }
            });
            Console.ReadLine();

            // DELETE THE CALLBACK
            Console.WriteLine("Delete the previous registered callback ...");
            foreach (var id in callbackIDs)
            {
                Console.WriteLine("Delete the callback with id" + id);
                connector.DeleteCallback(id);
            }
        }
        private const string _password = "******"; // Password of the user

        static void Main()
        {
            Console.WriteLine("Welcome to the ticket sample!" + Environment.NewLine);

            Console.WriteLine("Determine token ..." + Environment.NewLine);

            TokenHandler tokenHandler = new TokenHandler(_user, _password, _urlForTokenGeneration);
            Token        token        = tokenHandler.GetAccessToken();

            Console.WriteLine("Token: " + token.Access_token + Environment.NewLine);

            Console.WriteLine("Determine all tickets ..." + Environment.NewLine);

            FORCEBridgeConnector connector = new FORCEBridgeConnector(_urlToBridgeAPI, token);
            var tickets = connector.GetTickets();

            int counter = 0;

            foreach (TicketProperties ticket in tickets)
            {
                counter += 1;
                Console.WriteLine(String.Empty);
                Console.WriteLine("Ticket " + counter + " of " + tickets.Count);
                Console.WriteLine("-------------------------------");
                Console.WriteLine("Id: {0}", ticket.Id);
                Console.WriteLine("Number: {0}", ticket.Number);
                Console.WriteLine("Title: {0}", ticket.Title);
                Console.WriteLine("Description: {0}", ticket.Description);
                Console.WriteLine("RootCause: {0}", ticket.RootCause);
                Console.WriteLine("Priority: {0}", ticket.Priority);
                Console.WriteLine("Editor: {0}", ticket.Editor);
                Console.WriteLine("CreationDate: {0}", ticket.CreationDate);
                Console.WriteLine("TicketStateId: {0}", ticket.TicketStateId);
                Console.WriteLine("TicketClassId: {0}", ticket.TicketClassId);
                Console.WriteLine("OperationId: {0}", ticket.OperationId);
                Console.WriteLine("Material: {0}", (ticket.Material is null) ? "" : ticket.Material.ToString());
                Console.WriteLine("Workplace: {0}", (ticket.Workplace is null) ? "" : ticket.Workplace.ToString());
                Console.WriteLine("ShiftId: {0}", ticket.ShiftId);
            }

            Console.WriteLine(String.Empty);
            Console.WriteLine("Determine all activities of ticket {0} ..." + Environment.NewLine, tickets.First().Id);

            var ticketActivities = connector.GetTicketActivitiesByTicketId(tickets.First().Id);

            if (ticketActivities.Any())
            {
                counter = 0;
                foreach (TicketActivityProperties activity in ticketActivities)
                {
                    counter += 1;
                    Console.WriteLine(String.Empty);
                    Console.WriteLine("Ticket activity " + counter + " of " + ticketActivities.Count);
                    Console.WriteLine("-------------------------------");
                    Console.WriteLine("Id: {0}", activity.Id);
                    Console.WriteLine("Title: {0}", activity.Title);
                    Console.WriteLine("State: {0}", activity.TicketActivityStateId);
                    Console.WriteLine("Editor: {0}", activity.Editor);
                    Console.WriteLine("Due date: {0}", activity.DueDate);
                    Console.WriteLine("Description: {0}", activity.Description);
                }
                Console.WriteLine(String.Empty);
                Console.WriteLine("Determine all remmarks of activity {0} (ticket {1}) ..." + Environment.NewLine, tickets.First().Id, ticketActivities.First().Id);
                var ticketActivityRemarks = connector.GetTicketActivityRemarksByTicketAndActivityId(tickets.First().Id, ticketActivities.First().Id);
                counter = 0;
                foreach (TicketActivityRemarkProperties remark in ticketActivityRemarks)
                {
                    counter += 1;
                    Console.WriteLine(String.Empty);
                    Console.WriteLine("Ticket activity remark " + counter + " of " + ticketActivityRemarks.Count);
                    Console.WriteLine("-------------------------------");
                    Console.WriteLine("Id: {0}", remark.Id);
                    Console.WriteLine("Editor: {0}", remark.Editor);
                    Console.WriteLine("Remark: {0}", remark.Remark);
                }
                Console.WriteLine(String.Empty);
            }
            else
            {
                Console.WriteLine("Ticket {0} contains no activities." + Environment.NewLine, tickets.First().Id);
            }
            Console.WriteLine(String.Empty);
        }
        static void Main()
        {
            Console.WriteLine("Welcome to the staff members sample!" + Environment.NewLine);

            Console.WriteLine("Determine token ...");

            TokenHandler tokenHandler = new TokenHandler(_user, _password, _urlForTokenGeneration);
            Token        token        = tokenHandler.GetAccessToken();

            Console.WriteLine("Token: " + token.Access_token + Environment.NewLine);

            Console.WriteLine("Determine staff members ...");

            FORCEBridgeConnector connector = new FORCEBridgeConnector(_urlToBridgeAPI, token);
            var staffMembers = connector.GetStaffMembers();

            foreach (var staff in staffMembers)
            {
                Console.WriteLine(String.Format("Staff member: {0}: {2} {1}", staff.Id, staff.FirstName, staff.LastName));
            }
            Console.WriteLine(Environment.NewLine);

            Console.WriteLine("Determine current staff members of workplace id " + _workplaceId + " ...");

            var currentStaffMembersOfWorkplace = connector.GetCurrentStaffMembersOfWorkplaceId(_workplaceId);

            foreach (var staff in currentStaffMembersOfWorkplace)
            {
                Console.WriteLine(String.Format("Staff member: {0}: {2} {1}", staff.Id, staff.FirstName, staff.LastName));
            }

            if (!currentStaffMembersOfWorkplace.Any())
            {
                Console.WriteLine("No staff member signed on!" + Environment.NewLine);
            }
            else
            {
                Console.WriteLine(Environment.NewLine);
                Console.WriteLine("Sign off all staff members of workplace id " + _workplaceId + " ...");
                foreach (var staff in currentStaffMembersOfWorkplace)
                {
                    Console.WriteLine(String.Format("Sign off staff member: {0}: {2} {1}", staff.Id, staff.FirstName, staff.LastName));
                    connector.SendCommand(GetStaffMemberWorkplaceStateCommandString(SignOptions.Off, _workplaceId, staff.Id));
                }
                Console.WriteLine(Environment.NewLine);

                Console.WriteLine("Determine current staff members of workplace id " + _workplaceId + " ...");
                currentStaffMembersOfWorkplace = connector.GetCurrentStaffMembersOfWorkplaceId(_workplaceId);
                foreach (var staff in currentStaffMembersOfWorkplace)
                {
                    Console.WriteLine(String.Format("Staff member: {0}: {2} {1}", staff.Id, staff.FirstName, staff.LastName));
                }
                if (!currentStaffMembersOfWorkplace.Any())
                {
                    Console.WriteLine("No staff member signed on!");
                }
                Console.WriteLine(Environment.NewLine);
            }


            Console.WriteLine("Sign on a staff member on workplace " + _workplaceId + " ...");
            var staffMemberToSignOn = staffMembers[new Random().Next(staffMembers.Count)];

            Console.WriteLine(String.Format("Sign on staff member: {0}: {2} {1}", staffMemberToSignOn.Id, staffMemberToSignOn.FirstName, staffMemberToSignOn.LastName));
            connector.SendCommand(GetStaffMemberWorkplaceStateCommandString(SignOptions.On, _workplaceId, staffMemberToSignOn.Id));

            Console.WriteLine(Environment.NewLine);

            Console.WriteLine("Determine current staff members of workplace id " + _workplaceId + " ...");
            currentStaffMembersOfWorkplace = connector.GetCurrentStaffMembersOfWorkplaceId(_workplaceId);
            foreach (var staff in currentStaffMembersOfWorkplace)
            {
                Console.WriteLine(String.Format("Staff member: {0}: {2} {1}", staff.Id, staff.FirstName, staff.LastName));
            }
        }
        private const string _operating_state_code_for_alarming = "999"; // The operating state for alarming

        static async Task Main()
        {
            Console.WriteLine("Welcome to the alerting example (based on mqtt callbacks)!");
            Console.WriteLine("");

            TokenHandler         tokenHandler = new TokenHandler(_user, _password, _urlForTokenGeneration);
            Token                token        = tokenHandler.GetAccessToken();
            FORCEBridgeConnector connector    = new FORCEBridgeConnector(_urlToBridgeAPI, token);

            Console.WriteLine("Connect to the Bridge API and get workplace ID of defined workplace " + _workplaceNumber);
            Console.WriteLine("");

            string workplaceId = connector.GetWorkplaceByNumber(_workplaceNumber).Id;

            // Register Callback on Bridge API

            string MQTTTCPUrl    = "mqtt://test.mosquitto.org"; //Define your MQTT-Broker and topic!!!!
            string PORT          = "1883";
            string MQTTTopicName = "external/statechange";
            string EventType     = "WORKPLACE_OPERATING_STATE_CHANGED";

            Console.WriteLine("Register callback " + EventType + " of workplace " + workplaceId + " for MQTT-Broker " + MQTTTCPUrl + ", topic " + MQTTTopicName);
            Console.WriteLine("");

            string callbackRegistrationJSON = BuildCallbackRegistrationJSON(MQTTTCPUrl + ":" + PORT + "/" + MQTTTopicName, workplaceId, EventType);

            connector.RegisterCallback(callbackRegistrationJSON);

            Console.WriteLine("Registration completed.");
            Console.WriteLine("");

            // Inizialize a MQTT-Client and subscribe to the above defined topic

            Console.WriteLine("Initialize a MQTT Client and subscripe to the given topic " + MQTTTopicName + "...");
            Console.WriteLine("");

            var options = new MqttClientOptionsBuilder()
                          .WithTcpServer(MQTTTCPUrl.Replace("mqtt://", String.Empty), 1883)
                          .Build();

            var factory    = new MqttFactory();
            var mqttClient = factory.CreateMqttClient();
            await mqttClient.ConnectAsync(options, CancellationToken.None);

            // Subscribe to the defined topic
            await mqttClient.SubscribeAsync(new TopicFilterBuilder().WithTopic(MQTTTopicName).Build());

            Console.WriteLine("Wait for machine state changes ...");
            Console.WriteLine("");

            List <string> callbackIDs = new List <string>();

            mqttClient.UseApplicationMessageReceivedHandler(e =>
            {
                Console.WriteLine("---------------------------------------");
                try
                {
                    // WILL BE EXECUTED IF A MACHINE STATE OCCURES
                    var payload          = Encoding.UTF8.GetString(e.ApplicationMessage.Payload);
                    var callbackResponse = Newtonsoft.Json.JsonConvert.DeserializeObject <WorkplaceOperatingStateChangedCallbackResponse>(payload);
                    if (!callbackIDs.Contains(callbackResponse.Properties.CallbackId))
                    {
                        callbackIDs.Add(callbackResponse.Properties.CallbackId);
                    }

                    Console.WriteLine("--- RECEIVED " + EventType + " MESSAGE ---");
                    Console.WriteLine("---------------------------------------");
                    Console.WriteLine("Current operating state: " + callbackResponse.Properties.Data.CurrentOperatingState.Description + " (" + callbackResponse.Properties.Data.CurrentOperatingState.Code + ")");
                    Console.WriteLine("Previous operating state: " + callbackResponse.Properties.Data.PreviousOperatingState.Description + " (" + callbackResponse.Properties.Data.PreviousOperatingState.Code + ")");
                    if (callbackResponse.Properties.Data.CurrentOperatingState.Code == _operating_state_code_for_alarming)
                    {
                        Console.WriteLine("---------------------------------------");
                        Console.WriteLine("  !!! WARNING WARNING WARNING WARNING !!!");
                        Console.WriteLine(" --- MACHINE SWITCHED TO STATE CODE " + _operating_state_code_for_alarming + " ---");
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(" !!! ERROR OCCURED !!! " + ex.ToString());
                }
                Console.WriteLine("---------------------------------------");
                Console.WriteLine("");
            });
            Console.ReadLine();

            // DELETE THE CALLBACK
            Console.WriteLine("Delete the previous registered callback ...");
            foreach (var id in callbackIDs)
            {
                Console.WriteLine("Delete the callback with id" + id);
                connector.DeleteCallback(id);
            }
        }