Exemple #1
0
        public void Upsert(InterfaceString interfaceString)
        {
            var dataRec = Mapper.Map <Data.Models.InterfaceString>(interfaceString);

            _interfaceStringGateway.Upsert(dataRec);
            AddOrUpdateCacheObject(GetCacheKey(interfaceString.Key), interfaceString);
        }
Exemple #2
0
 public ResultModel Create(InterfaceString data)
 {
     try
     {
         var str = _interfaceStringService.GetString(data.Key);
         if (str == null)
         {
             _interfaceStringService.Upsert(data);
             return(ResultModel.Success);
         }
         return(new ResultModel(false, "Exists"));
     }
     catch (Exception e)
     {
         _logService.LogError(e);
         return(new ResultModel(e));
     }
 }
        /// <summary>Loads a translation from a language file</summary>
        /// <param name="File">The absolute on-disk path to the language file we wish to load</param>
        internal static void LoadLanguage(string File)
        {
            try
            {
                string[] Lines   = System.IO.File.ReadAllLines(File, new System.Text.UTF8Encoding());
                string   Section = "";
                InterfaceStrings                = new InterfaceString[16];
                InterfaceStringCount            = 0;
                QuickReferences.HandleForward   = "F";
                QuickReferences.HandleNeutral   = "N";
                QuickReferences.HandleBackward  = "B";
                QuickReferences.HandlePower     = "P";
                QuickReferences.HandlePowerNull = "N";
                QuickReferences.HandleBrake     = "B";
                QuickReferences.HandleBrakeNull = "N";
                QuickReferences.HandleRelease   = "RL";
                QuickReferences.HandleLap       = "LP";
                QuickReferences.HandleService   = "SV";
                QuickReferences.HandleEmergency = "EM";
                QuickReferences.HandleHoldBrake = "HB";
                QuickReferences.DoorsLeft       = "L";
                QuickReferences.DoorsRight      = "R";
                QuickReferences.Score           = "Score: ";
                for (int i = 0; i < Lines.Length; i++)
                {
                    Lines[i] = Lines[i].Trim();
                    if (!Lines[i].StartsWith(";"))
                    {
                        if (Lines[i].StartsWith("[", StringComparison.Ordinal) & Lines[i].EndsWith("]", StringComparison.Ordinal))
                        {
                            Section = Lines[i].Substring(1, Lines[i].Length - 2).Trim().ToLowerInvariant();
                        }
                        else
                        {
                            int j = Lines[i].IndexOf('=');
                            if (j >= 0)
                            {
                                string a = Lines[i].Substring(0, j).TrimEnd().ToLowerInvariant();
                                string b = Interface.Unescape(Lines[i].Substring(j + 1).TrimStart());
                                switch (Section)
                                {
                                case "handles":
                                    switch (a)
                                    {
                                    case "forward": Interface.QuickReferences.HandleForward = b; break;

                                    case "neutral": Interface.QuickReferences.HandleNeutral = b; break;

                                    case "backward": Interface.QuickReferences.HandleBackward = b; break;

                                    case "power": Interface.QuickReferences.HandlePower = b; break;

                                    case "powernull": Interface.QuickReferences.HandlePowerNull = b; break;

                                    case "brake": Interface.QuickReferences.HandleBrake = b; break;

                                    case "locobrake": Interface.QuickReferences.HandleLocoBrake = b; break;

                                    case "brakenull": Interface.QuickReferences.HandleBrakeNull = b; break;

                                    case "release": Interface.QuickReferences.HandleRelease = b; break;

                                    case "lap": Interface.QuickReferences.HandleLap = b; break;

                                    case "service": Interface.QuickReferences.HandleService = b; break;

                                    case "emergency": Interface.QuickReferences.HandleEmergency = b; break;

                                    case "holdbrake": Interface.QuickReferences.HandleHoldBrake = b; break;
                                    }
                                    break;

                                case "doors":
                                    switch (a)
                                    {
                                    case "left": Interface.QuickReferences.DoorsLeft = b; break;

                                    case "right": Interface.QuickReferences.DoorsRight = b; break;
                                    }
                                    break;

                                case "misc":
                                    switch (a)
                                    {
                                    case "score": Interface.QuickReferences.Score = b; break;
                                    }
                                    break;

                                case "commands":
                                {
                                    for (int k = 0; k < CommandInfos.Length; k++)
                                    {
                                        if (string.Compare(CommandInfos[k].Name, a, StringComparison.OrdinalIgnoreCase) == 0)
                                        {
                                            CommandInfos[k].Description = b;
                                            break;
                                        }
                                    }
                                } break;

                                case "keys":
                                {
                                    for (int k = 0; k < TranslatedKeys.Length; k++)
                                    {
                                        if (string.Compare(TranslatedKeys[k].Name, a, StringComparison.OrdinalIgnoreCase) == 0)
                                        {
                                            TranslatedKeys[k].Description = b;
                                            break;
                                        }
                                    }
                                } break;

                                default:
                                    AddInterfaceString(Section + "_" + a, b);
                                    break;
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception)
            {
                //This message is shown when loading a language fails, and must not be translated, as otherwise it could produce a blank error message
                MessageBox.Show(@"An error occurred whilst attempting to load the selected language file.");
                Environment.Exit(0);
            }
        }
        /// <summary>Adds a language file to the available langauge list</summary>
        /// <param name="File">The absolute on-disk path to the language file we wish to load</param>
        internal static void AddLanguage(string File)
        {
            //Create new language
            Language newLanguage = new Language
            {
                Name          = "Unknown",
                LanguageCode  = System.IO.Path.GetFileNameWithoutExtension(File),
                FallbackCodes = new List <string>()
            };

            try
            {
                string[]                Lines          = System.IO.File.ReadAllLines(File, new System.Text.UTF8Encoding());
                string                  Section        = "";
                InterfaceString[]       LoadedStrings  = new InterfaceString[16];
                CommandInfo[]           LoadedCommands = new CommandInfo[Interface.CommandInfos.Length];
                KeyInfo[]               LoadedKeys     = new KeyInfo[Interface.TranslatedKeys.Length];
                InterfaceQuickReference QuickReference = new InterfaceQuickReference();
                Array.Copy(Interface.CommandInfos, LoadedCommands, Interface.CommandInfos.Length);
                Array.Copy(Interface.TranslatedKeys, LoadedKeys, Interface.TranslatedKeys.Length);
                var LoadedStringCount = 0;
                for (int i = 0; i < Lines.Length; i++)
                {
                    Lines[i] = Lines[i].Trim();
                    if (!Lines[i].StartsWith(";"))
                    {
                        if (Lines[i].StartsWith("[", StringComparison.Ordinal) & Lines[i].EndsWith("]", StringComparison.Ordinal))
                        {
                            Section = Lines[i].Substring(1, Lines[i].Length - 2).Trim().ToLowerInvariant();
                        }
                        else
                        {
                            int j = Lines[i].IndexOf('=');
                            if (j >= 0)
                            {
                                string a = Lines[i].Substring(0, j).TrimEnd().ToLowerInvariant();
                                string b = Interface.Unescape(Lines[i].Substring(j + 1).TrimStart());
                                switch (Section)
                                {
                                case "handles":
                                    switch (a)
                                    {
                                    case "forward": QuickReference.HandleForward = b; break;

                                    case "neutral": QuickReference.HandleNeutral = b; break;

                                    case "backward": QuickReference.HandleBackward = b; break;

                                    case "power": QuickReference.HandlePower = b; break;

                                    case "powernull": QuickReference.HandlePowerNull = b; break;

                                    case "brake": QuickReference.HandleBrake = b; break;

                                    case "locobrake": QuickReference.HandleLocoBrake = b; break;

                                    case "brakenull": QuickReference.HandleBrakeNull = b; break;

                                    case "release": QuickReference.HandleRelease = b; break;

                                    case "lap": QuickReference.HandleLap = b; break;

                                    case "service": QuickReference.HandleService = b; break;

                                    case "emergency": QuickReference.HandleEmergency = b; break;

                                    case "holdbrake": QuickReference.HandleHoldBrake = b; break;
                                    }
                                    break;

                                case "doors":
                                    switch (a)
                                    {
                                    case "left": QuickReference.DoorsLeft = b; break;

                                    case "right": QuickReference.DoorsRight = b; break;
                                    }
                                    break;

                                case "misc":
                                    switch (a)
                                    {
                                    case "score": QuickReference.Score = b; break;
                                    }
                                    break;

                                case "commands":
                                {
                                    for (int k = 0; k < LoadedCommands.Length; k++)
                                    {
                                        if (string.Compare(LoadedCommands[k].Name, a, StringComparison.OrdinalIgnoreCase) == 0)
                                        {
                                            LoadedCommands[k].Description = b;
                                            break;
                                        }
                                    }
                                } break;

                                case "keys":
                                {
                                    for (int k = 0; k < LoadedKeys.Length; k++)
                                    {
                                        if (string.Compare(LoadedKeys[k].Name, a, StringComparison.OrdinalIgnoreCase) == 0)
                                        {
                                            LoadedKeys[k].Description = b;
                                            break;
                                        }
                                    }
                                } break;

                                case "fallback":
                                    switch (a)
                                    {
                                    case "language": newLanguage.FallbackCodes.Add(b); break;
                                    }
                                    break;

                                case "language":
                                    switch (a)
                                    {
                                    case "name": newLanguage.Name = b; break;

                                    case "flag": newLanguage.Flag = b; break;
                                    }
                                    break;

                                default:
                                    if (LoadedStringCount >= LoadedStrings.Length)
                                    {
                                        Array.Resize <InterfaceString>(ref LoadedStrings,
                                                                       LoadedStrings.Length << 1);
                                    }
                                    LoadedStrings[LoadedStringCount].Name = Section + "_" + a;
                                    LoadedStrings[LoadedStringCount].Text = b;
                                    LoadedStringCount++;
                                    break;
                                }
                            }
                        }
                    }
                }
                newLanguage.InterfaceStrings     = LoadedStrings;
                newLanguage.CommandInfos         = LoadedCommands;
                newLanguage.KeyInfos             = LoadedKeys;
                newLanguage.InterfaceStringCount = LoadedStringCount;
                newLanguage.QuickReferences      = QuickReference;
                //We should always fall-back to en-US as the last-resort before failing to load a string
                newLanguage.FallbackCodes.Add("en-US");
                AvailableLangauges.Add(newLanguage);
            }
            catch (Exception)
            {
                //This message is shown when loading a language fails, and must not be translated, as otherwise it could produce a blank error message
                MessageBox.Show(@"An error occurred whilst attempting to load the language file: \n \n" + File);
                Environment.Exit(0);
            }
        }
Exemple #5
0
        /// <summary>Adds a language file to the available langauge list</summary>
        /// <param name="File">The absolute on-disk path to the language file we wish to load</param>
	    internal static void AddLanguage(string File)
	    {
            //Create new language
            Language newLanguage = new Language
            {
                Name = "Unknown",
                LanguageCode = System.IO.Path.GetFileNameWithoutExtension(File),
                FallbackCodes = new List<string>()
            };
            try
            {
                string[] Lines = System.IO.File.ReadAllLines(File, new System.Text.UTF8Encoding());
                string Section = "";
                InterfaceString[] LoadedStrings = new InterfaceString[16];
                CommandInfo[] LoadedCommands = new CommandInfo[Interface.CommandInfos.Length];
				KeyInfo[] LoadedKeys = new KeyInfo[Interface.TranslatedKeys.Length];
				InterfaceQuickReference QuickReference = new InterfaceQuickReference();
                Array.Copy(Interface.CommandInfos, LoadedCommands, Interface.CommandInfos.Length);
				Array.Copy(Interface.TranslatedKeys, LoadedKeys, Interface.TranslatedKeys.Length);
                var LoadedStringCount = 0;
                for (int i = 0; i < Lines.Length; i++)
                {
                    Lines[i] = Lines[i].Trim();
                    if (!Lines[i].StartsWith(";"))
                    {
                        if (Lines[i].StartsWith("[", StringComparison.Ordinal) & Lines[i].EndsWith("]", StringComparison.Ordinal))
                        {
                            Section = Lines[i].Substring(1, Lines[i].Length - 2).Trim().ToLowerInvariant();
                        }
                        else
                        {
                            int j = Lines[i].IndexOf('=');
                            if (j >= 0)
                            {
                                string a = Lines[i].Substring(0, j).TrimEnd().ToLowerInvariant();
                                string b = Interface.Unescape(Lines[i].Substring(j + 1).TrimStart());
                                switch (Section)
                                {
                                    case "handles":
                                        switch (a)
                                        {
                                            case "forward": QuickReference.HandleForward = b; break;
                                            case "neutral": QuickReference.HandleNeutral = b; break;
                                            case "backward": QuickReference.HandleBackward = b; break;
                                            case "power": QuickReference.HandlePower = b; break;
                                            case "powernull": QuickReference.HandlePowerNull = b; break;
                                            case "brake": QuickReference.HandleBrake = b; break;
                                            case "brakenull": QuickReference.HandleBrakeNull = b; break;
                                            case "release": QuickReference.HandleRelease = b; break;
                                            case "lap": QuickReference.HandleLap = b; break;
                                            case "service": QuickReference.HandleService = b; break;
                                            case "emergency": QuickReference.HandleEmergency = b; break;
                                            case "holdbrake": QuickReference.HandleHoldBrake = b; break;
                                        } break;
                                    case "doors":
                                        switch (a)
                                        {
                                            case "left": QuickReference.DoorsLeft = b; break;
                                            case "right": QuickReference.DoorsRight = b; break;
                                        } break;
                                    case "misc":
                                        switch (a)
                                        {
                                            case "score": QuickReference.Score = b; break;
                                        } break;
                                    case "commands":
                                        {
                                            for (int k = 0; k < LoadedCommands.Length; k++)
                                            {
                                                if (string.Compare(LoadedCommands[k].Name, a, StringComparison.OrdinalIgnoreCase) == 0)
                                                {
                                                    LoadedCommands[k].Description = b;
                                                    break;
                                                }
                                            }
                                        } break;
                                    case "keys":
                                        {
                                            for (int k = 0; k < LoadedKeys.Length; k++)
                                            {
                                                if (string.Compare(LoadedKeys[k].Name, a, StringComparison.OrdinalIgnoreCase) == 0)
                                                {
                                                    LoadedKeys[k].Description = b;
                                                    break;
                                                }
                                            }
                                        } break;
                                    case "fallback":
                                        switch (a)
                                        {
                                            case "language": newLanguage.FallbackCodes.Add(b); break;
                                        } break;
                                    case "language":
                                        switch (a)
                                        {
                                            case "name": newLanguage.Name = b; break;
                                            case "flag": newLanguage.Flag = b; break;
                                        } break;

                                    default:
                                        if (LoadedStringCount >= LoadedStrings.Length)
                                        {
                                            Array.Resize<InterfaceString>(ref LoadedStrings,
                                                LoadedStrings.Length << 1);
                                        }
                                        LoadedStrings[LoadedStringCount].Name = Section + "_" + a;
                                        LoadedStrings[LoadedStringCount].Text = b;
                                        LoadedStringCount++;
                                        break;
                                }
                            }
                        }
                    }
                }
                newLanguage.InterfaceStrings = LoadedStrings;
                newLanguage.CommandInfos = LoadedCommands;
	            newLanguage.KeyInfos = LoadedKeys;
                newLanguage.InterfaceStringCount = LoadedStringCount;
                newLanguage.QuickReferences = QuickReference;
                //We should always fall-back to en-US as the last-resort before failing to load a string
                newLanguage.FallbackCodes.Add("en-US");
                AvailableLangauges.Add(newLanguage);
            }
            catch (Exception)
            {
                //This message is shown when loading a language fails, and must not be translated, as otherwise it could produce a blank error message
                MessageBox.Show("An error occurred whilst attempting to load the language file: \n \n" + File);
                Environment.Exit(0);
            }
	    }
Exemple #6
0
        /// <summary>Loads a translation from a language file</summary>
        /// <param name="File">The absolute on-disk path to the language file we wish to load</param>
        internal static void LoadLanguage(string File)
        {
            try
            {
                string[] Lines = System.IO.File.ReadAllLines(File, new System.Text.UTF8Encoding());
                string Section = "";
                InterfaceStrings = new InterfaceString[16];
                InterfaceStringCount = 0;
                QuickReferences.HandleForward = "F";
                QuickReferences.HandleNeutral = "N";
                QuickReferences.HandleBackward = "B";
                QuickReferences.HandlePower = "P";
                QuickReferences.HandlePowerNull = "N";
                QuickReferences.HandleBrake = "B";
                QuickReferences.HandleBrakeNull = "N";
                QuickReferences.HandleRelease = "RL";
                QuickReferences.HandleLap = "LP";
                QuickReferences.HandleService = "SV";
                QuickReferences.HandleEmergency = "EM";
                QuickReferences.HandleHoldBrake = "HB";
                QuickReferences.DoorsLeft = "L";
                QuickReferences.DoorsRight = "R";
                QuickReferences.Score = "Score: ";
                for (int i = 0; i < Lines.Length; i++)
                {
                    Lines[i] = Lines[i].Trim();
                    if (!Lines[i].StartsWith(";"))
                    {
                        if (Lines[i].StartsWith("[", StringComparison.Ordinal) & Lines[i].EndsWith("]", StringComparison.Ordinal))
                        {
                            Section = Lines[i].Substring(1, Lines[i].Length - 2).Trim().ToLowerInvariant();
                        }
                        else
                        {
                            int j = Lines[i].IndexOf('=');
                            if (j >= 0)
                            {
                                string a = Lines[i].Substring(0, j).TrimEnd().ToLowerInvariant();
                                string b = Interface.Unescape(Lines[i].Substring(j + 1).TrimStart());
                                switch (Section)
                                {
                                    case "handles":
                                        switch (a)
                                        {
                                            case "forward": Interface.QuickReferences.HandleForward = b; break;
                                            case "neutral": Interface.QuickReferences.HandleNeutral = b; break;
                                            case "backward": Interface.QuickReferences.HandleBackward = b; break;
                                            case "power": Interface.QuickReferences.HandlePower = b; break;
                                            case "powernull": Interface.QuickReferences.HandlePowerNull = b; break;
                                            case "brake": Interface.QuickReferences.HandleBrake = b; break;
                                            case "brakenull": Interface.QuickReferences.HandleBrakeNull = b; break;
                                            case "release": Interface.QuickReferences.HandleRelease = b; break;
                                            case "lap": Interface.QuickReferences.HandleLap = b; break;
                                            case "service": Interface.QuickReferences.HandleService = b; break;
                                            case "emergency": Interface.QuickReferences.HandleEmergency = b; break;
                                            case "holdbrake": Interface.QuickReferences.HandleHoldBrake = b; break;
                                        } break;
                                    case "doors":
                                        switch (a)
                                        {
                                            case "left": Interface.QuickReferences.DoorsLeft = b; break;
                                            case "right": Interface.QuickReferences.DoorsRight = b; break;
                                        } break;
                                    case "misc":
                                        switch (a)
                                        {
                                            case "score": Interface.QuickReferences.Score = b; break;
                                        } break;
                                    case "commands":
                                        {
                                            for (int k = 0; k < CommandInfos.Length; k++)
                                            {
                                                if (string.Compare(CommandInfos[k].Name, a, StringComparison.OrdinalIgnoreCase) == 0)
                                                {
                                                    CommandInfos[k].Description = b;
                                                    break;
                                                }
                                            }
                                        } break;
                                    case "keys":
                                        {
                                            for (int k = 0; k < TranslatedKeys.Length; k++)
                                            {
                                                if (string.Compare(TranslatedKeys[k].Name, a, StringComparison.OrdinalIgnoreCase) == 0)
                                                {
                                                    TranslatedKeys[k].Description = b;
                                                    break;
                                                }
                                            }

                                        } break;
                                    default:
                                        AddInterfaceString(Section + "_" + a, b);
                                        break;
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception)
            {
                //This message is shown when loading a language fails, and must not be translated, as otherwise it could produce a blank error message
                MessageBox.Show("An error occurred whilst attempting to load the selected language file.");
                Environment.Exit(0);
            }
        }
 public void Upsert(InterfaceString rec)
 {
     Exec(GetProcedureString(), rec);
 }