Ejemplo n.º 1
0
        public async Task <FileResult> LoginReport()
        {
            var usersInfos = await _userInfoService.Get();

            StringBuilder info = new StringBuilder();

            info.AppendLine($"User Id,Email,User Logs in,Last Login,AVG Login perday,Login permonth");

            foreach (var item in usersInfos)
            {
                var userId       = item.UserId;
                var loginReports = await _loginReportService.GetReport(userId);

                var user = await _userManager.FindByIdAsync(userId.ToString());

                var email = user.Email;
                if (loginReports != null)
                {
                    if (user != null && !(await _userManager.IsInRoleAsync(user, "Admin")))
                    {
                        info.AppendLine($"{userId} , {email} , {loginReports.FirstLogin}, {loginReports.LastLogin}" +
                                        $"{loginReports.CounterLogsIn} , {loginReports.PerMonth}, {loginReports.AvgPerday}");
                    }
                }
            }
            var bytearray = Encoding.ASCII.GetBytes(info.ToString());

            return(File(new MemoryStream(bytearray), "text/csv", "LoginReport.csv"));
        }