Esempio n. 1
0
        /// <summary>
        /// Default constructor.
        /// Same thing as create new configs vith default values
        /// </summary>
        public EditorCore()
        {
            // set repository first
            Repository = new EditorRepository();

            Operations = new OperationsContainer();
            BotManager.SetCore(this);
            var rawConfigs = Config.RawData.Configs.GetDefaultConfigs();

            Configs = new BotConfigs(rawConfigs);
            Dialogs = new DialogsProvider(rawConfigs.Dialogs);
        }
Esempio n. 2
0
        public EditorCore(BotConfigs configs, DialogsProvider dialogs)
        {
            if (configs == null)
            {
                throw new ArgumentNullException("configs");
            }

            Operations = new OperationsContainer();
            BotManager.SetCore(this);

            Configs = configs;
            Dialogs = dialogs;
        }
Esempio n. 3
0
        /// <summary>
        /// Build serializeble configs from work data
        /// </summary>
        public Configs(BotConfigs configs, DialogsProvider dialogs)
        {
            BasicDelay = configs.BasicDelay;
            BotHash    = configs.BotHash;
            BotName    = configs.BotName;

            CustomValues   = new ConfigValuesContainer(configs.GetCustomValues(), CustomValuesSectionName);
            LanguageValues = new LangValuesContainer(configs.TextStrings);

            // fill proxies
            ProxyServers = new List <ProxyValue>();
            foreach (var prox in configs.Proxies)
            {
                ProxyServers.Add(new ProxyValue(prox));
            }

            Dialogs = new DialogsContainer(dialogs);
        }
Esempio n. 4
0
        /// <summary>
        /// Converts work dialogs to serializeble data
        /// </summary>
        public DialogsContainer(DialogsProvider dp) : this()
        {
            var root = dp.RootDialog;

            Dialogs = DialogsReader(root);

            // fill general buttons
            foreach (var btn in dp.GetButtons())
            {
                SupportButtons.Add(new Button(btn));
            }

            // initialize own buttons field
            Buttons = new List <string>();
            foreach (var btn in root.SupportButtons)
            {
                Buttons.Add(btn.Id);
            }

            // provide serialization of registration dialog
            RegistrationDialog         = new Dialog(dp.RegistrationDialog);
            RegistrationDialog.Dialogs = DialogsReader(dp.RegistrationDialog);
        }
Esempio n. 5
0
        /// <summary>
        /// Deserialize and return config object from file
        /// </summary>
        public virtual (bool, BotConfigs, DialogsProvider) ReadConfigs()
        {
            bool            resultFlag    = false;
            BotConfigs      resultConfigs = null;
            DialogsProvider resultDialogs = null;

            BotManager.Core?.LogController?.LogMessage(new Debug.DebugMessage($"Reading configs file '{FileName}'..."));

            try
            {
                using FileStream fs = new FileStream(FileName, FileMode.Open);
                try
                {
                    XmlSerializer   serializer       = new XmlSerializer(typeof(RawData.Configs));
                    RawData.Configs deserializedData = (RawData.Configs)serializer.Deserialize(fs);

                    resultConfigs = new BotConfigs(deserializedData);
                    resultDialogs = new DialogsProvider(deserializedData.Dialogs);
                    resultFlag    = true;
                    BotManager.Core?.LogController
                    ?.LogSucces(new Debug.DebugMessage($"Reading configs file is success!"));
                }
                catch (Exception e)
                {
                    BotManager.Core?.LogController?
                    .LogError(new Debug.DebugMessage($"Coudn't deserialize data!\r\nError: {e.Message}", "ConfigWorker.ReadConfigs()", e));
                }
                finally { fs?.Dispose(); }
            }
            catch (Exception e)
            {
                BotManager.Core?.LogController?
                .LogError(new Debug.DebugMessage($"Coudn't read file '{FileName}'\r\nError: {e.Message}", "ConfigWorker.ReadConfigs()", e));
            }
            return(resultFlag, resultConfigs, resultDialogs);
        }
Esempio n. 6
0
        /// <summary>
        /// Serialize config data to file.
        /// </summary>
        public virtual bool SaveConfig(BotConfigs configs, DialogsProvider dialogs)
        {
            bool result = false;

            BotManager.Core?.LogController?.LogMessage(new Debug.DebugMessage($"Saving configs file '{FileName}'..."));
            try
            {
                using FileStream fs = new FileStream(FileName, FileMode.Create);
                try
                {
                    if (configs == null)
                    {
                        throw new ArgumentNullException("config", "Configs object can't be null!");
                    }

                    RawData.Configs serializedData = new RawData.Configs(configs, dialogs);
                    XmlSerializer   serializer     = new XmlSerializer(typeof(RawData.Configs));
                    serializer.Serialize(fs, serializedData);
                    result = true;
                    BotManager.Core?.LogController?.LogSucces(new Debug.DebugMessage($"Saving configs file is success!"));
                }
                catch (Exception e)
                {
                    BotManager.Core?.LogController?
                    .LogError(new Debug.DebugMessage($"Coudn't serialize data!\r\nError: {e.Message}", "ConfigWorker.SaveConfig()", e));
                }
                finally { fs?.Dispose(); }
            }
            catch (Exception e)
            {
                BotManager.Core?.LogController?
                .LogError(new Debug.DebugMessage($"Coudn't save file '{FileName}'\r\nError: {e.Message}", "ConfigWorker.SaveConfig()", e));
            }

            return(result);
        }
Esempio n. 7
0
 public DataParser()
 {
     DialogsProvider = BotManager.Core.Dialogs;
 }