Пример #1
0
        internal static DisplayMessage GetDisplayMessageByCode(string langCode, string messageCode, bool forceUpdate = false)
        {
            if (!DisplayMessages.ContainsKey(langCode))
            {
                DisplayMessages.GetOrAdd(langCode, new ConcurrentDictionary <string, DisplayMessage>());
            }
            if (!DisplayMessages[langCode].ContainsKey(messageCode))
            {
                DisplayMessages[langCode].GetOrAdd(messageCode, _commands.GetDisplayMessageByCode(langCode, messageCode));
            }
            else if (DisplayMessages[langCode][messageCode] == null || forceUpdate)
            {
                DisplayMessages[langCode].AddOrUpdate(messageCode, _commands.GetDisplayMessageByCode(langCode, messageCode));
            }
            var displayMessage = DisplayMessages[langCode][messageCode] ?? new DisplayMessage();

            if (displayMessage.OperationIds.Count != displayMessage.Operations.Count)
            {
                displayMessage.Operations.Clear();
                displayMessage.OperationIds.ForEach(msg => msg.SetOperationToDisplayMessage(langCode, displayMessage));
            }
            return(displayMessage);
        }