Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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()
            });
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        public GeneralResult GetUserLoginReport([FromBody] UserReportParam userReportParam = null)
        {
            var users = _UserService.GetsUserReportAsync(userReportParam);

            return(Ok(users));
        }
Esempio n. 5
0
        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));
            }
        }