/// <summary>
        /// Create report WorkerReport
        /// </summary>
        /// <param name="viewName">viewName </param>
        /// <returns>List<ReportWorker></returns>
        public static List <ReportProject> CreateReportsProject(string viewName)
        {
            Func <MySqlDataReader, List <ReportProject> > func = (reader) =>
            {
                List <ReportProject> reportProject = new List <ReportProject>();
                while (reader.Read())
                {
                    reportProject.Add(ConvertReport.ConvertDBtoReport(reader));
                }
                return(reportProject);
            };
            List <ReportProject> reportProjects = DBAccess.RunReader(func, "report", new List <string>()
            {
                viewName
            }, new List <string>()
            {
                "viewName"
            });

            foreach (var item in reportProjects)
            {
                item.Items = GetDepartmentsWorkersProject(item.Id);
            }

            return(reportProjects);
        }
        /// <summary>
        /// Gets department to reportProject
        /// </summary>
        /// <param name="id">idProject</param>
        /// <returns>List<ReportProject></returns>
        private static List <ReportProject> GetDepartmentsWorkersProject(int id)
        {
            Func <MySqlDataReader, List <ReportProject> > func = (reader) =>
            {
                List <ReportProject> reportProject = new List <ReportProject>();
                while (reader.Read())
                {
                    reportProject.Add(ConvertReport.ConvertDBtoDepartment(reader));
                }
                return(reportProject);
            };
            List <ReportProject> departmentProjects = DBAccess.RunReader(func, "departmensProject", new List <string>()
            {
                id.ToString()
            }, new List <string>()
            {
                "Id"
            });

            foreach (var item in departmentProjects)
            {
                item.Items      = GetWorkersByDepartmentAndProject(item.Id, id);
                item.SumHoursDo = item.Items.Sum(p => p.SumHoursDo);
            }
            return(departmentProjects);
        }
        /// <summary>
        /// Create report WorkerReport
        /// </summary>
        /// <param name="viewName">viewName </param>
        /// <returns>List<ReportWorker></returns>
        public static List <ReportWorker> CreateReportsWorker(string viewName)
        {
            Func <MySqlDataReader, List <ReportWorker> > func = (reader) =>
            {
                List <ReportWorker> reportWorker = new List <ReportWorker>();
                while (reader.Read())
                {
                    reportWorker.Add(ConvertReport.ConvertDBtoReportWorker(reader));
                }
                return(reportWorker);
            };

            List <ReportWorker> reportWorkers = DBAccess.RunReader(func, "report", new List <string>()
            {
                viewName
            }, new List <string>()
            {
                "viewName"
            });

            reportWorkers.ForEach(r =>
            {
                r.ParentId = 0;
                r.Items    = GetReportWorkerDetailsById(r.Id);
            });

            return(reportWorkers);
        }
Пример #4
0
        /// <summary>
        /// 後台終端報表
        /// </summary>
        /// <param name="afterParameters"></param>
        /// <returns></returns>
        public DataSet GetSourceReport(AfterParameters afterParameters)
        {
            var response = GetReportAsync(afterParameters, "GetSourceReport");
            var dataStr  = response.Result.Content.ReadAsStringAsync().Result;
            var backData = JsonConvert.DeserializeObject <List <SourceReport> >(dataStr);
            //轉換前端Model
            List <ReportSource> reportSources = ConvertReport.ConvertReportSourceModel(backData);

            DataTable totalDataTable = new DataTable();

            totalDataTable.Columns.Add(new DataColumn("totalCount", typeof(Int32)));
            var row = totalDataTable.NewRow();

            row["totalCount"] = backData.Count;
            totalDataTable.Rows.Add(row);

            //分頁排序&分頁
            reportSources = reportSources.OrderBy(o => o.group_name).ToList();
            reportSources = reportSources.Skip((afterParameters.PageNum - 1) * afterParameters.PageSize).Take(afterParameters.PageSize).ToList();

            DataSet ds = new DataSet();

            ds.Tables.Add(totalDataTable);
            ds.Tables.Add(reportSources.ToDataTable <ReportSource>());

            return(ds);
        }
        public static List <ReportProject> CreateReportsProject(string viewName)
        {
            Func <MySqlDataReader, List <ReportProject> > func = (reader) =>
            {
                List <ReportProject> reportProject = new List <ReportProject>();
                while (reader.Read())
                {
                    reportProject.Add(ConvertReport.ConvertDBtoReport(reader));
                }
                return(reportProject);
            };
            List <ReportProject> reportProjects = DBAccess.RunReader(func, "report", new List <string>()
            {
                viewName
            }, new List <string>()
            {
                "viewName"
            });

            foreach (var item in reportProjects)
            {
                item.Project.workers = new List <UserWithoutPassword>();
                List <ProjectWorker> workerInProject = LogicManager.getUsersBelongProjects(item.Project.ProjectId);
                var workerInProjectGroup             = workerInProject.GroupBy(p => p.User.DepartmentId);

                foreach (var departmentWorkers in workerInProjectGroup)
                {
                    item.DepartmentUser.Add(new HourDepartmentProject());
                }
            }

            return(reportProjects);
        }
Пример #6
0
        /// <summary>
        /// 後台代理報表
        /// </summary>
        /// <param name="afterParameters"></param>
        /// <returns></returns>
        public DataSet GetIntegratedReport(AfterParameters afterParameters)
        {
            var response = GetReportAsync(afterParameters, "GetIntegratedReport");
            var dataStr  = response.Result.Content.ReadAsStringAsync().Result;
            var backData = JsonConvert.DeserializeObject <List <IntegratedReport> >(dataStr);
            //轉換前端Model
            List <ReportIntegrated> reportIntegrateds = ConvertReport.ConvertReportIntegratedModel(backData);

            //DataTable totalDataTable = new DataTable();
            //totalDataTable.Columns.Add(new DataColumn("totalCount", typeof(Int32)));
            //var row = totalDataTable.NewRow();
            //row["totalCount"] = backData.Count;
            //totalDataTable.Rows.Add(row);
            DataSet ds = new DataSet();

            if (reportIntegrateds.Count == 0)
            {
                reportIntegrateds.Add(new ReportIntegrated());
            }

            ds.Tables.Add(reportIntegrateds.ToDataTable <ReportIntegrated>());


            return(ds);
        }
Пример #7
0
        /// <summary>
        /// 後台代理報表
        /// </summary>
        /// <param name="afterParameters"></param>
        /// <returns></returns>
        public DataSet GetAgencyHender(AfterParameters afterParameters)
        {
            var response = GetReportAsync(afterParameters, "GetAgencyHender");
            var dataStr  = response.Result.Content.ReadAsStringAsync().Result;
            var backData = JsonConvert.DeserializeObject <List <AgentsReport> >(dataStr);
            //轉換前端Model
            List <ReportAgent> reportAgents = ConvertReport.ConvertReportAgentModel(backData);

            DataTable totalDataTable = new DataTable();

            totalDataTable.Columns.Add(new DataColumn("totalCount", typeof(Int32)));
            var row = totalDataTable.NewRow();

            row["totalCount"] = backData.Count;
            totalDataTable.Rows.Add(row);

            //分頁排序&分頁

            reportAgents = reportAgents.OrderByDescending(o => o.TotalBettingAccount).ToList();



            DataSet ds = new DataSet();

            ds.Tables.Add(totalDataTable);
            ds.Tables.Add(reportAgents.ToDataTable <ReportAgent>());

            return(ds);
        }
Пример #8
0
        /// <summary>
        ///  直播後台-主播報表
        /// </summary>
        /// <param name="afterParameters"></param>
        /// <returns></returns>
        public return_anchor_tip_record GetAnchorsReport(LiveParameters liveParameters)
        {
            var response = GetLiveReport(liveParameters, "GetAnchorsReport");
            var dataStr  = response.Result.Content.ReadAsStringAsync().Result;
            var backData = JsonConvert.DeserializeObject <AnchorListReport>(dataStr);
            //轉換前端Model
            return_anchor_tip_record reportLotterys = ConvertReport.ConvertReportAnchorsModel(backData);

            return(reportLotterys);
        }
Пример #9
0
        /// <summary>
        /// 平台彩種報表
        /// </summary>
        /// <param name="afterParameters"></param>
        /// <returns></returns>
        public DataSet GetPlatformLotteryReport(AfterParameters afterParameters)
        {
            var response = GetReportAsync(afterParameters, "GetPlatformLotteryReport");
            var dataStr  = response.Result.Content.ReadAsStringAsync().Result;
            var backData = JsonConvert.DeserializeObject <List <LotteryReport> >(dataStr);
            //轉換前端Model
            List <ReportLottery> reportLotterys = ConvertReport.ConvertReportLotteryModel(backData);

            DataTable totalDataTable = new DataTable();

            totalDataTable.Columns.Add(new DataColumn("totalCount", typeof(Int32)));
            var row = totalDataTable.NewRow();

            row["totalCount"] = backData.Count;
            totalDataTable.Rows.Add(row);

            //分頁排序&分頁
            switch (afterParameters.OrderBy)
            {
            case "profits_money desc":
                reportLotterys = reportLotterys.OrderByDescending(o => o.ProfitMoney).ToList();
                break;

            case "profits_money asc":
                reportLotterys = reportLotterys.OrderBy(o => o.ProfitMoney).ToList();
                break;

            case "profits_rates desc":
                reportLotterys = reportLotterys.OrderByDescending(o => o.ProfitRate).ToList();
                break;

            //盈率递增
            case "profits_rates asc":
                reportLotterys = reportLotterys.OrderBy(o => o.ProfitRate).ToList();
                break;

            default:
                reportLotterys = reportLotterys.OrderByDescending(o => o.BetMoney).ToList();
                break;
            }
            reportLotterys = reportLotterys.Skip((afterParameters.PageNum - 1) * afterParameters.PageSize).Take(afterParameters.PageSize).ToList();

            DataSet ds = new DataSet();

            ds.Tables.Add(totalDataTable);
            ds.Tables.Add(reportLotterys.ToDataTable <ReportLottery>());

            return(ds);
        }
        /// <summary>
        /// Gets workers to departments project
        /// </summary>
        /// <param name="idDepartment">idDepartment</param>
        /// <param name="idProject">idProject</param>
        /// <returns></returns>
        private static List <ReportProject> GetWorkersByDepartmentAndProject(int idDepartment, int idProject)
        {
            string query = $"SELECT * FROM managertasks.sumhoursforuserproject WHERE projectId={idProject} and departmentUserId={idDepartment}";
            Func <MySqlDataReader, List <ReportProject> > func = (reader) =>
            {
                List <ReportProject> workersReport = new List <ReportProject>();
                while (reader.Read())
                {
                    workersReport.Add(ConvertReport.ConvertDBtoWorkerInReport(reader));
                }
                return(workersReport);
            };

            return(DBAccess.RunReader(query, func));
        }
        public static List <ReportWorker> CreateReportsWorker(string viewName)
        {
            Func <MySqlDataReader, List <ReportWorker> > func = (reader) =>
            {
                List <ReportWorker> reportWorker = new List <ReportWorker>();
                while (reader.Read())
                {
                    reportWorker.Add(ConvertReport.ConvertDBtoReportWorker(reader));
                }
                return(reportWorker);
            };

            return(DBAccess.RunReader(func, "report", new List <string>()
            {
                viewName
            }, new List <string>()
            {
                "viewName"
            }));
        }
        public static List <ReportProject> CreateReports(List <string> param)
        {
            Func <MySqlDataReader, List <ReportProject> > func = (reader) =>
            {
                List <ReportProject> reportProject = new List <ReportProject>();
                while (reader.Read())
                {
                    reportProject.Add(ConvertReport.ConvertDBtoReport(reader));
                }
                return(reportProject);
            };

            return(DBAccess.RunReader(func, "CreateReport", new List <string>()
            {
                param[0]
            }, new List <string>()
            {
                param[1]
            }));
        }
        /// <summary>
        /// Gets report worker details- create report with self reference
        /// </summary>
        /// <param name="idWorker">idUser</param>
        /// <returns>List<ReportWorker>-</returns>
        public static List <ReportWorker> GetReportWorkerDetailsById(int idWorker)
        {
            Func <MySqlDataReader, List <ReportWorker> > func = (reader) =>
            {
                List <ReportWorker> reportWorker = new List <ReportWorker>();
                while (reader.Read())
                {
                    ReportWorker reportWorker1 = ConvertReport.ConvertDBtoWorkersReport(reader);
                    reportWorker1.Id       = index++;
                    reportWorker1.ParentId = idWorker;
                    reportWorker.Add(reportWorker1);
                }
                return(reportWorker);
            };

            return(DBAccess.RunReader(func, "reportWorker", new List <string>()
            {
                idWorker.ToString()
            }, new List <string>()
            {
                "idWorker"
            }));
        }
Пример #14
0
        /// <summary>
        /// 會員報表-會員報表歷史
        /// </summary>
        /// <param name="afterParameters"></param>
        /// <returns></returns>
        public DataSet GetUsersHistory(AfterParameters afterParameters)
        {
            var response = GetReportAsync(afterParameters, "GetUsersHistory");
            var dataStr  = response.Result.Content.ReadAsStringAsync().Result;
            var backData = JsonConvert.DeserializeObject <List <UsersHistoryReport> >(dataStr);
            //轉換前端Model
            List <ReportHistory> reportMembers = ConvertReport.ConvertReportHistoryMemberModel(backData);

            DataTable totalDataTable = new DataTable();

            totalDataTable.Columns.Add(new DataColumn("totalCount", typeof(Int32)));
            var row = totalDataTable.NewRow();

            row["totalCount"] = backData.Count;
            totalDataTable.Rows.Add(row);

            DataSet ds = new DataSet();

            ds.Tables.Add(totalDataTable);
            ds.Tables.Add(reportMembers.ToDataTable <ReportHistory>());

            return(ds);
        }