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(); } } }
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); }
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, } }); }
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); }