Exemplo n.º 1
0
        public async Task <IActionResult> GetGeneralStatistics([FromQuery] HoaDonDichVuStatisticsParams userParams)
        {
            try
            {
                var result = await _repo.GetGeneralStatistics(userParams);

                return(StatusCode(200, new SuccessResponseDto
                {
                    Message = "Lấy dữ liệu thống kê tổng quan về " + _entityName + " thành công!",
                    Result = new SuccessResponseResultWithSingleDataDto
                    {
                        Data = result
                    }
                }));
            }
            catch (Exception e)
            {
                return(StatusCode(500, new FailedResponseDto
                {
                    Message = "Lấy dữ liệu thống kê tổng quan về " + _entityName + " thất bại!",
                    Result = new FailedResponseResultDto
                    {
                        Errors = e
                    }
                }));
            }
        }
Exemplo n.º 2
0
        public async Task <Object> GetGeneralStatistics(HoaDonDichVuStatisticsParams userParams)
        {
            var       totalHoaDonDV = 0;
            KhachHang khachHangCoHoaDonNhieuNhat = new KhachHang();
            DichVu    dichVuCoHoaDonNhieuNhat    = new DichVu();

            var danhSachKhachHang = _context.DanhSachKhachHang.OrderBy(x => x.ThoiGianTao).ToList();
            var danhSachDichVu    = _context.DanhSachDichVu.OrderBy(x => x.ThoiGianTao).ToList();

            var demKhachHang = new List <int>();
            var demDichVu    = new List <int>();


            if (userParams != null && userParams.StartingTime.GetHashCode() != 0 && userParams.EndingTime.GetHashCode() != 0)
            {
                totalHoaDonDV = _context.DanhSachHoaDonDichVu.Where(x => x.ThoiGianTao >= userParams.StartingTime && x.ThoiGianTao <= userParams.EndingTime).Count();
                var danhSachHoaDonDichVu = _context.DanhSachHoaDonDichVu.Where(x => x.ThoiGianTao >= userParams.StartingTime && x.ThoiGianTao <= userParams.EndingTime);
                var danhSachChiTietHDDV  = _context.DanhSachChiTietHDDV.Where(x => x.ThoiGianTao >= userParams.StartingTime && x.ThoiGianTao <= userParams.EndingTime);
                foreach (var khachHang in danhSachKhachHang)
                {
                    int demKH = 0;
                    foreach (var hoaDonDichVu in danhSachHoaDonDichVu)
                    {
                        if (hoaDonDichVu.MaKhachHang == khachHang.MaKhachHang)
                        {
                            demKH = demKH + 1;
                        }
                    }

                    demKhachHang.Add(demKH);
                }

                int maxKH   = demKhachHang.Max();
                int indexKH = demKhachHang.IndexOf(maxKH);
                khachHangCoHoaDonNhieuNhat = danhSachKhachHang.ElementAt(indexKH);


                foreach (var dichVu in danhSachDichVu)
                {
                    int demDV = 0;
                    foreach (var chiTietHDDV in danhSachChiTietHDDV)
                    {
                        if (chiTietHDDV.MaDichVu == dichVu.MaDichVu)
                        {
                            demDV = demDV + 1;
                        }
                    }

                    demDichVu.Add(demDV);
                }

                int maxDV   = demDichVu.Max();
                int indexDV = demDichVu.IndexOf(maxDV);
                dichVuCoHoaDonNhieuNhat = danhSachDichVu.ElementAt(indexDV);
            }

            else
            {
                totalHoaDonDV = _context.DanhSachHoaDonDichVu.Count();
                var danhSachHoaDonDichVu = _context.DanhSachHoaDonDichVu.OrderBy(x => x.ThoiGianTao);
                var danhSachChiTietHDDV  = _context.DanhSachChiTietHDDV.OrderBy(x => x.ThoiGianTao);

                foreach (var khachHang in danhSachKhachHang)
                {
                    int demKH = 0;
                    foreach (var hoaDonDichVu in danhSachHoaDonDichVu)
                    {
                        if (hoaDonDichVu.MaKhachHang == khachHang.MaKhachHang)
                        {
                            demKH = demKH + 1;
                        }
                    }

                    demKhachHang.Add(demKH);
                }

                int maxKH   = demKhachHang.Max();
                int indexKH = demKhachHang.IndexOf(maxKH);
                khachHangCoHoaDonNhieuNhat = danhSachKhachHang.ElementAt(indexKH);


                foreach (var dichVu in danhSachDichVu)
                {
                    int demDV = 0;
                    foreach (var chiTietHDDV in danhSachChiTietHDDV)
                    {
                        if (chiTietHDDV.MaDichVu == dichVu.MaDichVu)
                        {
                            demDV = demDV + 1;
                        }
                    }

                    demDichVu.Add(demDV);
                }

                int maxDV   = demDichVu.Max();
                int indexDV = demDichVu.IndexOf(maxDV);
                dichVuCoHoaDonNhieuNhat = danhSachDichVu.ElementAt(indexDV);
            }

            return(new
            {
                totalHoaDonDV,
                khachHangCoHoaDonNhieuNhat,
                dichVuCoHoaDonNhieuNhat
            });
        }