/// <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); }
public EditorCore(BotConfigs configs, DialogsProvider dialogs) { if (configs == null) { throw new ArgumentNullException("configs"); } Operations = new OperationsContainer(); BotManager.SetCore(this); Configs = configs; Dialogs = dialogs; }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
public DataParser() { DialogsProvider = BotManager.Core.Dialogs; }