public static Message CombineMessages(Message firstMessage, Message secondMessage, string messageStringSeparator = null)
        {
            if (messageStringSeparator == null)
            {
                messageStringSeparator = DefaultStringSeparator;
            }

            return(new Message()
            {
                Arabic = firstMessage.Arabic + messageStringSeparator + secondMessage.Arabic,
                English = firstMessage.English + messageStringSeparator + secondMessage.English,
                Options = MessageOption.CombineOptions(firstMessage.Options, secondMessage.Options),
            });
        }
        public static MessageOption CombineOptions(MessageOption firstOptions, MessageOption secondOptions)
        {
            MessageOption newOptions = null;

            if (firstOptions != null && secondOptions != null)
            {
                newOptions = new MessageOption
                {
                    Arabic  = CombineOptions(firstOptions.Arabic, secondOptions.Arabic),
                    English = CombineOptions(firstOptions.English, secondOptions.English)
                };
            }
            else if (firstOptions != null)
            {
                newOptions = firstOptions;
            }
            else
            {
                newOptions = secondOptions;
            }

            return(newOptions);
        }
 public MessageOption Combine(MessageOption otherOptions)
 {
     return(CombineOptions(this, otherOptions));
 }