Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            var configPath = defaultConfigPath;

            if (args.Length > 0)
            {
                configPath = args[0];
            }

            var doc                 = XDocument.Load(configPath);
            var configElement       = doc.Element("configuration");
            var googleSheetConf     = configElement.Element("googleSheetsApi");
            var credentialsEnvVar   = googleSheetConf.Element("credentialsEnvVar").Attribute("val").Value;
            var credentialsFileName = googleSheetConf.Element("credentialsFileName").Attribute("val").Value;
            var secretTokenEnvVar   = configElement
                                      .Element("telegramApi")
                                      .Element("secretTokenEnvVar")
                                      .Attribute("val").Value;
            var firebaseApiConf        = configElement.Element("firebaseApi");
            var secretFirebaseTokenVar = firebaseApiConf.Element("secretTokenVar").Attribute("val").Value;
            var basePath = firebaseApiConf.Element("basePath").Attribute("val").Value;

            var requisitionSheetHeaders        = new List <string>();
            var requirmentsSheetHeaderComments = new List <string>();

            var learningPlanSheetHeaders        = new List <string>();
            var learningPlanSheetHeaderComments = new List <string>();

            var requisitionPatternMsgList  = new List <(string pattern, string msg)>();
            var learningPlanPatternMsgList = new List <(string pattern, string msg)>();

            var requisitionSheetSettings = configElement
                                           .Element("sheetSettings")
                                           .Elements("sheet").Where(e => e.Attribute("name").Value == "Requisitions").First();

            FillHeaderConfiguration(requisitionSheetSettings, requisitionSheetHeaders,
                                    requirmentsSheetHeaderComments, requisitionPatternMsgList);

            var learningPlanSheetSettings = configElement
                                            .Element("sheetSettings")
                                            .Elements("sheet").Where(e => e.Attribute("name").Value == "LearningPlan").First();

            FillHeaderConfiguration(learningPlanSheetSettings, learningPlanSheetHeaders,
                                    learningPlanSheetHeaderComments, learningPlanPatternMsgList);


            var credentialDirPath = Environment.GetEnvironmentVariable(credentialsEnvVar);
            var credentialPath    = Path.Combine(credentialDirPath, credentialsFileName);

            var secretToken = Environment.GetEnvironmentVariable(secretTokenEnvVar);

            var firebaseSecret = Environment.GetEnvironmentVariable(secretFirebaseTokenVar);

            var container = ConfigureContainer();

            Console.WriteLine("Starting...");

            var bot = new TBot(secretToken, credentialPath, firebaseSecret, basePath,
                               requisitionSheetHeaders, requirmentsSheetHeaderComments,
                               learningPlanSheetHeaders, learningPlanSheetHeaderComments,
                               requisitionPatternMsgList, learningPlanPatternMsgList, container);

            bot.Start();
            Console.WriteLine("Press Enter to stop the Bot");
            Console.ReadLine();
            bot.Stop();
        }