Analytics.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace CompanyCoreLib
  7. {
  8. public class Analytics
  9. {
  10. public List<DateTime> PopularMonths(List<DateTime> dates)
  11. {
  12. List<DataOfOrder> dataOfOrders = new List<DataOfOrder>();
  13. foreach (DateTime item in dates)
  14. {
  15. var data = dataOfOrders.FirstOrDefault(x => x.Date.Month == item.Month && x.Date.Year == item.Year);
  16. if (data is null) dataOfOrders.Add(new DataOfOrder { Date = new DateTime(item.Year, item.Month, 1), CountOrder = 1 });
  17. else dataOfOrders.FirstOrDefault(x => x.Date.Month == item.Month && x.Date.Year == item.Year).CountOrder += 1;
  18. }
  19. dataOfOrders = dataOfOrders.OrderByDescending(x => x.CountOrder).ThenBy(x => x.Date).ToList();
  20. List<DateTime> SortList = new List<DateTime>();
  21. foreach (var item in dataOfOrders)
  22. {
  23. SortList.Add(item.Date);
  24. }
  25. return SortList;
  26. }
  27. }
  28. class DataOfOrder
  29. {
  30. public DateTime Date { get; set; }
  31. public int CountOrder { get; set; }
  32. }
  33. }