/// <summary>
 ///     Return the prefix
 /// </summary>
 /// <param name="type"></param>
 /// <param name="index"></param>
 /// <returns></returns>
 public static string getPrefix(BikeStatEvent.StatTypes type, int index)
 {
     if (type != BikeStatEvent.StatTypes.COMBINED)
     {
         return("");
     }
     if (calculateAverage[index])
     {
         return(" (avg)");
     }
     return(" (total)");
 }
Beispiel #2
0
        public void loadIdentifier(object focus)
        {
            if (focus is ClientIdentifier)
            {
                client.sendData(new Message(Commands.GETSTATS, focus));
                current            = BikeStatEvent.StatTypes.CURRENT_STATISTICS;
                linkLabel1.Visible = true;
            }


            if (focus is HistoryStats)
            {
                client.receivedAllBikeData.Invoke((HistoryStats)focus);
                linkLabel1.Visible = false;
                current            = BikeStatEvent.StatTypes.COMBINED;
                updateLabels(((HistoryStats)focus).getCombined());
            }
        }
Beispiel #3
0
        private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            var values  = Enum.GetNames(typeof(BikeStatEvent.StatTypes));
            var current = (int)this.current + 1;

            if (current > values.Length - 1)
            {
                current = 0;
            }

            this.current    = (BikeStatEvent.StatTypes)Enum.Parse(typeof(BikeStatEvent.StatTypes), values[current]);
            linkLabel1.Text = values[current];

            if (sender != null)
            {
                client.sendData(this.current);
            }
        }
Beispiel #4
0
        /// <summary>
        ///     Writes the recieved data to the console. depending on what kind of data it is. Does it do differnt things
        /// </summary>
        /// <param name="data">object data</param>
        public override void dataReceived(object data)
        {
            Console.WriteLine("SERVER RECEIVED " + data);
            if (data is Commands)
            {
                var command = (Commands)data;

                if (command == Commands.BREAKCONNECTION)
                {
                    server.exception(identifier, "Client wants to break connection [connection closed]");
                    connected = false;
                    writeHistory();
                    server.parseData(this, data);
                    close();
                    return;
                }
                if (command == Commands.NOTIFYONNEWCONNECTED)
                {
                    wantsNotify = !wantsNotify;
                    return;
                }
            }

            if (data is BikeStatEvent.StatTypes)
            {
                StatType = (BikeStatEvent.StatTypes)data;
                return;
            }

            if (data is TextMessage)
            {
                messages.Add((TextMessage)data);
            }

            if (data is Message)
            {
                var message = (Message)data;
                switch (message.parameter)
                {
                case Commands.FOLLOW:
                    following.Add((ClientIdentifier)message.sendObject);
                    return;

                case Commands.UNFOLLOW:
                    var client = (ClientIdentifier)message.sendObject;
                    following.RemoveAll(arg => client.serverID == arg.serverID);
                    return;
                }
            }

            if (data is Authentication)
            {
                Authentication = (Authentication)data;
                if (!server.validUser(Authentication))
                {
                    server.exception(identifier, "Client has given wrong username/password");
                    sendData(Commands.AUTHENTICATIONDENIED);

                    // breakConnection();
                    return;
                }

                if (server.inUse(Authentication))
                {
                    server.exception(identifier, "login details are already in use");
                    sendData(Commands.AUTHENTICATIONINUSE);

                    // breakConnection();
                    return;
                }

                if (Authentication.rights == Authentication.Rights.UNKNOWN)
                {
                    Authentication.rights = server.getCorrespondingRights(Authentication);
                    server.exception(identifier,
                                     "Client rights don't correspond with server details: UKNOWN vs " + Authentication.rights +
                                     " [savely replaced]");
                    sendData(new Message(Commands.AUTHENTICATIONRIGHTSINCORRECT, Authentication));
                }

                if ((Authentication.rights != server.getCorrespondingRights(Authentication)) ||
                    (server.getCorrespondingRights(Authentication) == Authentication.Rights.BANNED))
                {
                    server.exception(identifier,
                                     "Client rights don't correspond with server details:" + Authentication.rights);
                    sendData(Commands.AUTHENTICATIONRIGHTSINCORRECT);
                    return;
                }

                identifier.rights = Authentication.rights;
                sendData(Commands.AUTHENTICATIONCORRECT);
                server.exception(identifier, "Client registered!");
                server.registerServer(this);
                return;
            }

            if (identifier.serverID != -1)
            {
                server.parseData(this, data);
            }
        }