Ejemplo n.º 1
0
 public Bot(ITaskMailRepository taskMailRepository,
            ISlackUserRepository slackUserDetailsRepository,
            IStringConstantRepository stringConstant,
            IEnvironmentVariableRepository environmentVariableRepository, IComponentContext component)
 {
     _taskMailRepository         = taskMailRepository;
     _slackUserDetailsRepository = slackUserDetailsRepository;
     _logger         = LogManager.GetLogger("TaskBotModule");
     _scrumlogger    = LogManager.GetLogger("ScrumBotModule");
     _stringConstant = stringConstant;
     _environmentVariableRepository = environmentVariableRepository;
     _component = component;
 }
        /// <summary>
        /// Used to connect task mail bot and to capture task mail
        /// </summary>
        /// <param name="container"></param>
        public static void Main(IComponentContext container)
        {
            _logger         = container.Resolve <ILogger>();
            _stringConstant = container.Resolve <IStringConstantRepository>();
            try
            {
                _taskMailRepository = container.Resolve <ITaskMailRepository>();
                _slackUserDetails   = container.Resolve <ISlackUserRepository>();

                _environmentVariableRepository = container.Resolve <IEnvironmentVariableRepository>();
                // assigning bot token on Slack Socket Client
                string            botToken = _environmentVariableRepository.TaskmailAccessToken;
                SlackSocketClient client   = new SlackSocketClient(botToken);
                // Creating a Action<MessageReceived> for Slack Socket Client to get connect. No use in task mail bot
                MessageReceived messageReceive = new MessageReceived();
                messageReceive.ok = true;
                Action <MessageReceived> showMethod = (MessageReceived messageReceived) => new MessageReceived();
                // Telling Slack Socket Client to the bot whose access token was given early
                client.Connect((connected) => { });
                try
                {
                    // Method will hit when someone send some text in task mail bot
                    client.OnMessageReceived += (message) =>
                    {
                        var    user      = _slackUserDetails.GetById(message.user);
                        string replyText = "";
                        var    text      = message.text;
                        if (text.ToLower() == _stringConstant.TaskMailSubject.ToLower())
                        {
                            replyText = _taskMailRepository.StartTaskMail(user.Name).Result;
                        }
                        else
                        {
                            replyText = _taskMailRepository.QuestionAndAnswer(user.Name, text).Result;
                        }
                        // Method to send back response to task mail bot
                        client.SendMessage(showMethod, message.channel, replyText);
                    };
                }
                catch (Exception)
                {
                    client.CloseSocket();
                }
            }
            catch (Exception ex)
            {
                _logger.Error(_stringConstant.LoggerErrorMessageTaskMailBot + " " + ex.Message + "\n" + ex.StackTrace);
                throw ex;
            }
        }
 public TaskMailRepositoryTest()
 {
     _componentContext              = AutofacConfig.RegisterDependancies();
     _taskMailRepository            = _componentContext.Resolve <ITaskMailRepository>();
     _slackUserRepository           = _componentContext.Resolve <ISlackUserRepository>();
     _botQuestionRepository         = _componentContext.Resolve <IBotQuestionRepository>();
     _mockHttpClient                = _componentContext.Resolve <Mock <IHttpClientRepository> >();
     _userManager                   = _componentContext.Resolve <ApplicationUserManager>();
     _taskMailDataRepository        = _componentContext.Resolve <IRepository <TaskMail> >();
     _taskMailDetailsDataRepository = _componentContext.Resolve <IRepository <TaskMailDetails> >();
     _projectUserRepository         = _componentContext.Resolve <IProjectUserCallRepository>();
     _stringConstant                = _componentContext.Resolve <IStringConstantRepository>();
     _mockEmailService              = _componentContext.Resolve <Mock <IEmailService> >();
     Initialize();
 }
Ejemplo n.º 4
0
 public TaskReportController(ITaskMailRepository taskMailReport, IStringConstantRepository stringConstant)
 {
     this._taskMailReport = taskMailReport;
     _stringConstant      = stringConstant;
 }