Esempio n. 1
0
        public async Task Consume(ConsumeContext <IReportRegistrationCommand> context)
        {
            Console.WriteLine($"{context.Message.ReportName} isimli Location Report :");
            Console.WriteLine($"Veritabanına kayıt edilmiştir.");

            using (var dbContext = new DatabaseContext())
            {
                var report = dbContext.Reports.FirstOrDefault(x => x.ID == context.Message.ID);

                if (report != null)
                {
                    var client = new RestClient("https://localhost:44386/api/user/user/PostRecordCounts");
                    client.Timeout = -1;
                    var request = new RestRequest(Method.POST);
                    request.AddHeader("Content-Type", "application/json");
                    var data = new UserReportDTO();
                    data.Address = report.Location;
                    request.AddParameter("application/json", JsonConvert.SerializeObject(data), ParameterType.RequestBody);
                    IRestResponse response     = client.Execute(request);
                    var           responsedata = JsonConvert.DeserializeObject <RecordDto>(response.Content);

                    report.RecordPhoneCount = responsedata.recordNumberCount;
                    report.RecordUserCount  = responsedata.recordUsersCount;
                    report.status           = ReportData.Enum.ReportEnum.Tamamlandı;
                    dbContext.Reports.Update(report);
                    await dbContext.SaveChangesAsync();
                }
            }
        }
Esempio n. 2
0
        public List <UserReportDTO> GetUserReportBetweenDateRange(string startDate, string endDate)
        {
            List <UserReportDTO> UserReportList = new List <UserReportDTO>();

            h.AddParametersToCommand(new List <SqlParameter>
            {
                new SqlParameter()
                {
                    ParameterName = "@startdate",
                    Value         = startDate
                },
                new SqlParameter()
                {
                    ParameterName = "@enddate",
                    Value         = endDate
                }
            });
            SqlDataReader reader = h.ExecuteSpReader("sp_UserPracticeYearlyReport");

            while (reader.Read())
            {
                userReportDTO           = new UserReportDTO();
                userReportDTO.Name      = reader[0].ToString();
                userReportDTO.WordCount = (int)reader[1];

                UserReportList.Add(userReportDTO);
            }
            reader.Close();
            return(UserReportList);
        }
Esempio n. 3
0
        public Envelope <UserReportDTO> GetUsersReport(int pageNumber, int?pageMaxSize, DateTime?loanDate, int?duration)
        {
            var maxSize = (pageMaxSize.HasValue ? pageMaxSize.Value : defaultPageSize);

            var query = db.Loans.AsQueryable();

            // Filter by date
            if (loanDate.HasValue)
            {
                query = query.Where(l => l.LoanDate <= loanDate.Value && (!l.ReturnDate.HasValue || (loanDate <= l.ReturnDate)));
            }

            // Filter by duration
            if (duration.HasValue)
            {
                DateTime dateToUse = loanDate.HasValue ? loanDate.Value : DateTime.Now;
                query = query.Where(l =>
                                    (duration.Value <= (dateToUse - l.LoanDate).TotalDays) &&
                                    (!l.ReturnDate.HasValue ||
                                     (l.ReturnDate.HasValue && dateToUse <= l.ReturnDate.Value)));
            }

            // Group and order by user ID
            var group = query.Include(l => l.User).Include(l => l.Book).GroupBy(l => l.UserID, l => l).ToList();

            group.OrderBy(g => g.Key);

            var totalNumberOfItems = group.Count();
            var pageCount          = (int)Math.Ceiling(totalNumberOfItems / (double)maxSize);

            var report = group.Select(g => g.ToList()).Skip((pageNumber - 1) * maxSize).Take(maxSize);

            // Map entities over to DTOs
            var userReportDTOs = new List <UserReportDTO>();

            foreach (var entry in report)
            {
                var userReportDTO = new UserReportDTO
                {
                    User      = mapper.Map <UserEntity, UserDTO>(entry[0].User),
                    UserLoans = mapper.Map <IList <LoanEntity>, IList <UserLoanDTO> >(entry)
                };

                userReportDTOs.Add(userReportDTO);
            }

            return(new Envelope <UserReportDTO>
            {
                Items = userReportDTOs,
                Paging = new Paging
                {
                    PageCount = pageCount,
                    PageSize = userReportDTOs.Count,
                    PageMaxSize = maxSize,
                    PageNumber = pageNumber,
                    TotalNumberOfItems = totalNumberOfItems,
                }
            });
        }
Esempio n. 4
0
        public List <UserReportDTO> GetWordUserReportByMonth(string date)
        {
            List <UserReportDTO> WordUserReportList = new List <UserReportDTO>();

            h.AddParametersToCommand(new List <SqlParameter>
            {
                new SqlParameter()
                {
                    ParameterName = "@date",
                    Value         = date
                }
            });
            SqlDataReader reader = h.ExecuteSpReader("sp_UserPracticeReportByMonth");

            while (reader.Read())
            {
                userReportDTO           = new UserReportDTO();
                userReportDTO.Name      = reader[0].ToString();
                userReportDTO.WordCount = (int)reader[1];
                WordUserReportList.Add(userReportDTO);
            }
            reader.Close();
            return(WordUserReportList);
        }