Ejemplo n.º 1
0
        public async Task SendReports()
        {
            var currentDay      = DateTime.Now;
            var currentDayInSec = new DateTimeOffset(currentDay).ToUnixTimeSeconds();

            if (currentDayInSec >= firstOfMonth)
            {
                var users = userPreferences.GetUniqueUsers();
                foreach (UserTeam ut in users)
                {
                    var monthData = userRecordService.RetrieveRawStats(ut.userID, ut.teamID);
                    if (!monthData.Error)
                    {
                        monthlyDataRepository.StoreData(ut.userID, ut.teamID, monthData.Stats);
                    }
                }
                var subscribers = subscriberRepository.GetSubscribers();
                if (subscribers.Any())
                {
                    foreach (UserTeam ut in subscribers)
                    {
                        var             report   = userRecordService.RetrieveMonthStats(ut.userID, ut.teamID);
                        AuthResponseDTO teamInfo = credentials.GetValue(ut.teamID);
                        await slackAPI.SendMessage(teamInfo.bot.bot_access_token, ut.userID, report.ResultMessage);
                    }
                    var nextMonth = currentDay.AddMonths(1);
                    firstOfMonth = new DateTimeOffset(Utilities.NextReportDate(nextMonth)).ToUnixTimeSeconds();
                }
            }
        }
        public async Task <IActionResult> GetAllSubscribers()
        {
            try
            {
                var subscribers = await _subscriberRepository.GetSubscribers();

                if (subscribers == null)
                {
                    return(NotFound());
                }

                return(Ok(subscribers));
            }
            catch (Exception)
            {
                return(BadRequest());
            }
        }