public async Task <HttpResponseMessage> GetUserReport(string source, int loginid) { UserReportParam param = JsonConvert.DeserializeObject <UserReportParam>(source); ResponseModel result = await ReportDal.Instance.GetUserReport(param, loginid); return(Request.CreateResponse(HttpStatusCode.OK, result)); }
public SimpleUserListVM GetsUserReportAsync(UserReportParam userReportParam = null) { if (userReportParam == null) { userReportParam = null; } DateTime?xStartTime = null; DateTime?xEndTime = null; if (userReportParam.StartTime.HasValue) { xStartTime = userReportParam.StartTime.Value.AddHours(3).AddMinutes(30); } if (userReportParam.EndTime.HasValue) { xEndTime = userReportParam.EndTime.Value.AddHours(3).AddMinutes(30); } var currentUserId = GetCurrentUserID(); var user = new User(); user = uow.UserRepository.Get(i => i.xIsActive && i.Id == currentUserId, null, "xUserLoginHistories,xUserRoles,xUserRoles.xRole").FirstOrDefault(); var isAdmin = ((user.xUserRoles != null) && (user.xUserRoles.Any(i => i.xRole.xIsAdmin))); if (isAdmin && userReportParam.UserId > 0) { user = uow.UserRepository.Get(i => i.xIsActive && i.Id == userReportParam.UserId, null, "xUserLoginHistories,xUserRoles").FirstOrDefault(); } var SimpleUserList = user.xUserLoginHistories.Where(i => ((userReportParam.StartDate != null) ? i.xRegisterDate.Date >= userReportParam.StartDate.Value.Date : true) && ((userReportParam.EndDate != null) ? i.xRegisterDate.Date < userReportParam.EndDate.Value.Date : true) && ((xStartTime != null) ? i.xRegisterDate.TimeOfDay >= xStartTime.Value.TimeOfDay : true) && ((xEndTime != null) ? i.xRegisterDate.TimeOfDay < xEndTime.Value.TimeOfDay : true) ); return(new SimpleUserListVM { xFirstName = user.xFirstName, xUserLoginHistories = SimpleUserList.Select(i => new UserLoginHistoryVM { xRegisterDate = i.xRegisterDate }).ToList() }); }
internal async Task <ResponseModel> GetUserReport(UserReportParam parameters, int loginId) { ResponseModel response = new ResponseModel(); List <UserReport> result = new List <UserReport>(); using (IDbConnection conn = _dbConnection.Connection) { DynamicParameters param = new DynamicParameters(); /* * var valueIds = new DataTable(); * * if (parameters.userids == null) * parameters.userids = new List<int>() { 0 }; * * valueIds.Columns.Add("ID", typeof(string)); * parameters.userids.ForEach(x => * { * var dr = valueIds.NewRow(); * dr[0] = x; * valueIds.Rows.Add(dr); * }); * * valueIds.AcceptChanges(); * * param.Add("@UserIds", valueIds.AsTableValuedParameter("TABLE_ID_INT")); */ string userIds = string.Empty; if (parameters.userids != null && parameters.userids.Count > 0) { userIds = string.Join(",", parameters.userids); } if (!string.IsNullOrWhiteSpace(userIds)) { param.Add("@UserIds", userIds, DbType.String); } if (!string.IsNullOrWhiteSpace(parameters.jobcode)) { param.Add("@JobCode", parameters.jobcode, DbType.String); } if (!string.IsNullOrWhiteSpace(parameters.title)) { param.Add("@Title", parameters.title, DbType.String); } if (!string.IsNullOrWhiteSpace(parameters.location)) { param.Add("@Location", parameters.location, DbType.String); } if (!string.IsNullOrWhiteSpace(parameters.publisheddate)) { param.Add("@PublishedDate", parameters.publisheddate, DbType.String); } if (!string.IsNullOrWhiteSpace(parameters.assingeddate)) { param.Add("@AssignedDate", parameters.assingeddate, DbType.String); } if (!string.IsNullOrWhiteSpace(parameters.fromdate)) { param.Add("@FromDate", parameters.fromdate, DbType.String); } if (!string.IsNullOrWhiteSpace(parameters.todate)) { param.Add("@ToDate", parameters.todate, DbType.String); } if (parameters.lastdays != -1) { param.Add("@LastDays", parameters.lastdays, DbType.Int32); } dynamic data = await conn.QueryAsync <UserReport>(Constants.StoredProcedure.GETUSERREPORT, param, null, null, CommandType.StoredProcedure); result = (List <UserReport>)data; response.ResultStatus = result.Count > 0 ? Constants.ResponseResult.SUCCESS : Constants.ResponseResult.NODATA; response.Output = result; response.OutputCount = result.Count; } return(response); }
public GeneralResult GetUserLoginReport([FromBody] UserReportParam userReportParam = null) { var users = _UserService.GetsUserReportAsync(userReportParam); return(Ok(users)); }
public async Task <HttpResponseMessage> GetUserReportFile(string sourceParam) { HttpResponse response = HttpContext.Current.Response; List <UserReport> reportData = new List <UserReport>(); string userIds = string.Empty; UserReportParam source = JsonConvert.DeserializeObject <UserReportParam>(sourceParam); var reportResponse = await ReportDal.Instance.GetUserReport(source, 0); if (reportResponse.Output != null) { reportData = (List <UserReport>)reportResponse.Output; } /* Follow the below URL, so report will work. * https://stackoverflow.com/questions/38902037/ssrs-report-definition-is-newer-than-server?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa */ try { byte[] bytes; Warning[] warnings; string[] streamids; string mimeType, encoding, extension; LocalReport lr = new LocalReport(); lr.ReportPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Reports\\UserReport.rdlc"); if (source.userids != null && source.userids.Count > 0) { userIds = string.Join(",", source.userids); } List <ReportParameter> parameters = new List <ReportParameter>(); parameters.Add(new ReportParameter("UserIds", userIds)); parameters.Add(new ReportParameter("JobCode", source.jobcode)); parameters.Add(new ReportParameter("Title", source.title)); parameters.Add(new ReportParameter("Location", source.location)); parameters.Add(new ReportParameter("PublishedDate", source.publisheddate)); parameters.Add(new ReportParameter("AssignedDate", source.assingeddate)); parameters.Add(new ReportParameter("FromDate", source.fromdate)); parameters.Add(new ReportParameter("ToDate", source.todate)); parameters.Add(new ReportParameter("LastDays", source.lastdays.ToString())); lr.SetParameters(parameters); lr.DataSources.Clear(); lr.DataSources.Add(new ReportDataSource("DsUserReport", reportData)); lr.Refresh(); //< PageWidth > 8.5in</ PageWidth > < PageHeight > 11in</ PageHeight > string deviceInfo = @"<DeviceInfo> <OutputFormat>EMF</OutputFormat> <PageWidth>11.5in</PageWidth> <PageHeight>8.5in</PageHeight> <MarginTop>0.25in</MarginTop> <MarginLeft>0.15in</MarginLeft> <MarginRight>0.15in</MarginRight> <MarginBottom>0.25in</MarginBottom> </DeviceInfo>"; if (source.reporttype == "excel") { bytes = lr.Render("EXCELOPENXML", deviceInfo, out mimeType, out encoding, out extension, out streamids, out warnings); } else { bytes = lr.Render("pdf", deviceInfo, out mimeType, out encoding, out extension, out streamids, out warnings); } generateFile(response, bytes, "UserReport_", source.reporttype); return(new HttpResponseMessage(HttpStatusCode.OK)); } catch (Exception ex) { return(new HttpResponseMessage(HttpStatusCode.InternalServerError)); } }