コード例 #1
0
ファイル: RequestHelper.cs プロジェクト: katnolan/WebsiteAPI
        public static PersonnelFilters GetPersonnelFilters(HttpRequest request)
        {
            PersonnelFilters _personnelFilters = new PersonnelFilters
            {
                conceptid     = null,
                personnelid   = null,
                personneltype = null
            };

            Dictionary <string, string> valuePairs = ParseUri(request);

            if (valuePairs.Count > 0)
            {
                if (valuePairs.TryGetValue("conceptid", out string s))
                {
                    _personnelFilters.conceptid = Convert.ToInt32(valuePairs["conceptid"]);
                }
                if (valuePairs.TryGetValue("personnelid", out string p))
                {
                    _personnelFilters.personnelid = Convert.ToInt32(valuePairs["personnelid"]);
                }
                if (valuePairs.TryGetValue("personneltype", out string f))
                {
                    _personnelFilters.personneltype = Convert.ToString(valuePairs["personneltype"]);
                }

                return(_personnelFilters);
            }
            else
            {
                return(null);
            }
        }
コード例 #2
0
        public PersonnelService(int clubid, PersonnelFilters pf)
        {
            string query = BuildQuery(clubid, pf);


            var bqq    = new BigQueryQuery();
            var client = bqq.CreateClient();
            var job    = bqq.CreateQueryJob(client, query);

            Results.Add(bqq.GetBigQueryResults(client, job));
        }
コード例 #3
0
        public ActionResult GetEmployees(int clubid, string personneltype, int?conceptid = null, int?personnelid = null)
        {
            _logger.LogInformation("Logging Info");

            PersonnelFilters filters = RequestHelper.GetPersonnelFilters(this.Request);

            List <Personnel> employees = new PersonnelService(clubid, filters).GetPersonnel();

            var emp = employees.Where((e) => e.clubId == clubid);

            return(Ok(emp));
        }
コード例 #4
0
        public static string ConceptCheck(PersonnelFilters pf)
        {
            string queryConcept = " and " + pf.conceptid.ToString() + " IN UNNEST(a.Concepts)";

            if (pf.conceptid == null)
            {
                return("");
            }
            else
            {
                return(queryConcept);
            }
        }
コード例 #5
0
        public static string TypeCheck(PersonnelFilters pf)
        {
            string queryJob = " and RTRIM(a.EnglishName) = " + pf.personneltype;

            if (pf.personneltype == null)
            {
                return("");
            }
            else
            {
                return(queryJob);
            }
        }
コード例 #6
0
        public static string PersonnelCheck(PersonnelFilters pf)
        {
            string queryEmployee = " and a.EmployeeId = " + pf.personnelid.ToString();

            if (pf.personnelid == null)
            {
                return("");
            }
            else
            {
                return(queryEmployee);
            }
        }
コード例 #7
0
        public static string BuildQuery(int clubid, PersonnelFilters pf)
        {
            string query = @"SELECT employeeid,
                                    employeename,
                                    clubid,
                                    Concepts,
                                    jobtitleid,
                                    jobtitle
                            FROM
                            (
                                SELECT
                                        Employees.EmployeeId employeeid,
                                        CONCAT(FirstName,' ',LastName) employeename,
                                        Employees.ClubId clubid,
                                        ARRAY_CONCAT(
                                        ARRAY(
                                         SELECT DISTINCT COALESCE(ClassTypes.ConceptId,0) as Studios
                                         FROM
                                         Data_Layer_Test.Events
                                         INNER JOIN Data_Layer_Test.Resources
                                         ON Resources.ResourceId = Events.ResourceId
                                         INNER JOIN Data_Layer_Test.ClassSchedules 
                                         ON ClassSchedules.ClassScheduleId = Events.ClassScheduleId
                                         INNER JOIN Data_Layer_Test.ClassCategories
                                         ON ClassCategories.ClassCategoryId = ClassSchedules.ClassCategoryId
                                         INNER JOIN Data_Layer_Test.ClassTypes
                                         ON ClassTypes.ClassTypeId = ClassCategories.ClassTypeId
                                         WHERE Events.Date = CURRENT_DATE()
                                           and Events.EmployeeId = Employees.CSIEmployeeId),
                                        ARRAY(
                                         SELECT DISTINCT COALESCE(ClassTypes.ConceptId,0) as Studios
                                         FROM
                                         Data_Layer_Test.Classes
                                         INNER JOIN Data_Layer_Test.Resources
                                         ON Resources.ResourceId = Classes.ResourceId
                                         INNER JOIN Data_Layer_Test.ClassSchedules 
                                         ON ClassSchedules.ClassScheduleId = Classes.ClassScheduleId
                                         INNER JOIN Data_Layer_Test.ClassCategories
                                         ON ClassCategories.ClassCategoryId = ClassSchedules.ClassCategoryId
                                         INNER JOIN Data_Layer_Test.ClassTypes
                                         ON ClassTypes.ClassTypeId = ClassCategories.ClassTypeId
                                         WHERE Classes.Date = CURRENT_DATE()
                                           and Classes.EmployeeId = Employees.CSIEmployeeId)
                                        ) Concepts,
                                        Employees.JobTitleId jobtitleid,
                                        CASE WHEN Employees.ClubID = 30 THEN RTRIM(JobTitles.FrenchName)
                                             ELSE RTRIM(JobTitles.EnglishName)
                                        END jobtitle,
                                        JobTitles.EnglishName             
                                      FROM
                                      Data_Layer_Test.Employees
                                        INNER JOIN Data_Layer_Test.JobTitles
                                        ON JobTitles.JobTitleId = Employees.JobTitleId
                        ) a
                        WHERE a.ClubId =  " + clubid.ToString();

            if (pf == null)
            {
                return(query);
            }
            else
            {
                string c = ConceptCheck(pf);
                string p = PersonnelCheck(pf);
                string t = TypeCheck(pf);

                return(query + c + p + t);
            }
        }