Пример #1
0
        /// <summary>
        /// Inserts the CompanyJob if it doesnt already exist
        /// </summary>
        /// <param name="companyId"></param>
        /// <param name="jobUuid"></param>
        public void InsertCompanyJob(string companyId, string jobUuid)
        {
            CompanyJob cj = new CompanyJob();

            cj.CompanyId = companyId;
            cj.JobUuid   = jobUuid;

            lock (DbContext.locker)
            {
                //System.Diagnostics.Debug.WriteLine("DeserializeOneJobs: query: " + query);
                var rowsAffected = Db.Query <CompanyJob>("Select * FROM CompanyJob WHERE CompanyJob.CompanyId = ?" +
                                                         " AND CompanyJob.JobUuid = ?", cj.CompanyId, cj.JobUuid).Count;
                System.Diagnostics.Debug.WriteLine("DeserializeOneJobs: CompanyJobs rowsAffected: " +
                                                   rowsAffected);
                if (rowsAffected == 0)
                {
                    // The item does not exists in the database so safe to insert
                    Db.Insert(cj);
                }
            }
        }
Пример #2
0
        /// <summary>
        /// Inserts the job and its respective children (only Company and CompanyJob)
        /// into the database.
        /// </summary>
        /// <param name="job"></param>
        /// <returns>Returns true if the job was inserted, returns false if a job with the same
        ///  uuid (primary key) already exists in the table.</returns>
        public bool InsertJob(Job job)
        {
            System.Diagnostics.Debug.WriteLine("DbJob InsertJob(Job job): initiated");
            if (CheckIfJobExist(job.uuid))
            {
                return(false);
            }

            //Job did not exist, safe to insert.
            DbCompany dbCompany = new DbCompany();

            foreach (Company c in job.companies)
            {
                dbCompany.InsertCompany(c);
            }

            lock (DbContext.locker)
            {
                Db.Insert(job);
                // Db.InsertOrReplaceWithChildren(job, recursive: true);
            }

            // This could perhaps be done in the above foreach loop,
            // but because of lack of concurrency control in SQLite its done in its own loop.
            foreach (Company c in job.companies)
            {
                CompanyJob cp = new CompanyJob();
                cp.JobUuid   = job.uuid;
                cp.CompanyId = c.id;
                lock (DbContext.locker)
                {
                    Db.Insert(cp);
                    // Db.InsertOrReplaceWithChildren(job, recursive: true);
                }
            }
            // Job was successfully inserted
            return(true);
        }
Пример #3
0
        /// <summary>
        /// This test method require that you have not logged in and got no authorization
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void TestDeleteExpiredJobs(object sender, EventArgs e)
        {
            DbJob jc = new DbJob();

            DbContext        DbContext = DbContext.GetDbContext;
            SQLiteConnection Db        = DbContext.Db;

            DateTime yesterday = DateTime.Now.AddDays(-1);
            long     n         = long.Parse(yesterday.ToString("yyyyMMddHHmmss"));

            string testUuid = "colemak";
            Job    job      = new Job()
            {
                uuid       = testUuid,
                expiryDate = n
            };

            string  companyId = "Ikea";
            Company comp      = new Company()
            {
                id = companyId
            };

            string   locationId = "sverige";
            Location loc        = new Location()
            {
                id = locationId
            };

            string     sgId = "dykking";
            StudyGroup sg   = new StudyGroup()
            {
                id = sgId
            };

            StudyGroupJob sgj = new StudyGroupJob()
            {
                StudyGroupId = sgId,
                JobUuid      = testUuid
            };

            LocationJob lj = new LocationJob()
            {
                LocationId = locationId,
                JobUuid    = testUuid
            };

            CompanyJob cj = new CompanyJob()
            {
                CompanyId = companyId,
                JobUuid   = testUuid
            };

            string  jtId = "10aarErfaringEcma6";
            JobType jt   = new JobType()
            {
                id = jtId
            };

            JobTypeJob jtj = new JobTypeJob()
            {
                JobUuid   = testUuid,
                JobTypeId = jtId
            };

            Db.Insert(comp);
            Db.Insert(job);
            Db.Insert(loc);
            Db.Insert(sg);
            Db.Insert(sgj);
            Db.Insert(lj);
            Db.Insert(cj);
            Db.Insert(jt);
            Db.Insert(jtj);

            Job j = Db.Get <Job>(testUuid);

            System.Diagnostics.Debug.WriteLine("j.expiryDate: " + j.expiryDate);
            System.Diagnostics.Debug.WriteLine("StudyGroup.Count: " +
                                               Db.Query <StudyGroup>("Select * from StudyGroup").Count());
            System.Diagnostics.Debug.WriteLine("Job.Count: " +
                                               Db.Query <Job>("Select * from Job").Count());
            System.Diagnostics.Debug.WriteLine("JobType.Count: " +
                                               Db.Query <JobType>("Select * from JobType").Count());
            System.Diagnostics.Debug.WriteLine("Location.Count: " +
                                               Db.Query <Location>("Select * from Location").Count());
            System.Diagnostics.Debug.WriteLine("Company.Count: " +
                                               Db.Query <Company>("Select * from Company").Count());

            System.Diagnostics.Debug.WriteLine("CompanyJob.Count: " +
                                               Db.Query <CompanyJob>("Select * from CompanyJob").Count());
            System.Diagnostics.Debug.WriteLine("JobTypeJob.Count: " +
                                               Db.Query <JobTypeJob>("Select * from JobTypeJob").Count());
            System.Diagnostics.Debug.WriteLine("LocationJob.Count: " +
                                               Db.Query <LocationJob>("Select * from LocationJob").Count());
            System.Diagnostics.Debug.WriteLine("StudyGroupJob.Count: " +
                                               Db.Query <StudyGroupJob>("Select * from StudyGroupJob").Count());

            System.Diagnostics.Debug.WriteLine("Time for delete");
            jc.DeleteAllExpiredJobs();
            System.Diagnostics.Debug.WriteLine("Job.Count: " +
                                               Db.Query <Job>("Select * from Job").Count());
            System.Diagnostics.Debug.WriteLine("CompanyJob.Count: " +
                                               Db.Query <CompanyJob>("Select * from CompanyJob").Count());
            System.Diagnostics.Debug.WriteLine("JobTypeJob.Count: " +
                                               Db.Query <JobTypeJob>("Select * from JobTypeJob").Count());
            System.Diagnostics.Debug.WriteLine("LocationJob.Count: " +
                                               Db.Query <LocationJob>("Select * from LocationJob").Count());
            System.Diagnostics.Debug.WriteLine("StudyGroupJob.Count: " +
                                               Db.Query <StudyGroupJob>("Select * from StudyGroupJob").Count());
            //CompanyJobs, StudyGroupJob, LocationJob og JobTypeJob.
        }
Пример #4
0
        private async void TestInsertJob(object sender, EventArgs e)
        {
            DbContext        DbContext = DbContext.GetDbContext;
            SQLiteConnection Db        = DbContext.Db;

            System.Diagnostics.Debug.WriteLine("Before insert Job.Count: " +
                                               Db.Query <Job>("Select * from Job").Count());

            JobsController jc        = new JobsController();
            DateTime       yesterday = DateTime.Now.AddDays(-1);
            long           n         = long.Parse(yesterday.ToString("yyyyMMddHHmmss"));

            string testUuid = "colemak";
            Job    job      = new Job()
            {
                uuid       = testUuid,
                expiryDate = n
            };

            string  companyId = "Ikea";
            Company comp      = new Company()
            {
                id = companyId
            };

            string   locationId = "sverige";
            Location loc        = new Location()
            {
                id = locationId
            };

            string     sgId = "dykking";
            StudyGroup sg   = new StudyGroup()
            {
                id = sgId
            };

            StudyGroupJob sgj = new StudyGroupJob()
            {
                StudyGroupId = sgId,
                JobUuid      = testUuid
            };

            LocationJob lj = new LocationJob()
            {
                LocationId = locationId,
                JobUuid    = testUuid
            };

            CompanyJob cj = new CompanyJob()
            {
                CompanyId = companyId,
                JobUuid   = testUuid
            };

            string  jtId = "10aarErfaringEcma6";
            JobType jt   = new JobType()
            {
                id = jtId
            };

            JobTypeJob jtj = new JobTypeJob()
            {
                JobUuid   = testUuid,
                JobTypeId = jtId
            };

            // try catch on tables that will not be affected by a job delete
            try
            {
                Db.Insert(comp);
            }
            catch
            {
            }
            Db.Insert(job);
            try
            {
                Db.Insert(loc);
            }
            catch
            {
            }
            try
            {
                Db.Insert(sg);
            }
            catch
            {
            }
            Db.Insert(sgj);
            Db.Insert(lj);
            Db.Insert(cj);
            try
            {
                Db.Insert(jt);
            }
            catch
            {
            }
            Db.Insert(jtj);

            System.Diagnostics.Debug.WriteLine("After insert: Job.Count: " +
                                               Db.Query <Job>("Select * from Job").Count());
        }
Пример #5
0
        public List <CompanyJob> QueryCompanyJobInfo()
        {
            string cmdText = @"SELECT  *
                                    FROM    ( SELECT    ROW_NUMBER() OVER ( PARTITION BY j.JobNumber ORDER BY JobNumber ) AS sequece ,
                                                        j.JobNumber ,
                                                        LEFT(cbi.Id, 18) cid ,
                                                        j.JobName ,
                                                        LEFT(j.[Description], 300) require ,
                                                        LEFT(j.[Description], 300) Descrip ,
                                                        j.Amount ,
                                                        LEFT(j.[Address], 30) [Address] ,
                                                        WorkingMode = CASE WHEN j.WorkingMode = 2 THEN '1'
                                                                           WHEN j.WorkingMode = 1 THEN '2'
                                                                           ELSE '3'
                                                                      END ,
                                                        j.BeginAge ,
                                                        j.EndAge ,
                                                        WorkYears = CASE WHEN j.WorkYears < 1
                                                                              AND j.WorkYears > 0 THEN 1
                                                                         WHEN j.WorkYears < 3 THEN 2
                                                                         WHEN j.WorkYears >= 3
                                                                              AND j.WorkYears <= 5 THEN 3
                                                                         WHEN j.WorkYears > 5
                                                                              AND j.WorkYears <= 10 THEN 4
                                                                         WHEN j.WorkYears > 10 THEN 5
                                                                         ELSE 0
                                                                    END ,
                                                        cbi.ContactOne ,
                                                        cbi.ContactOneMobile ,
                                                        cbi.ContactOnePhone ,
                                                        CONVERT(VARCHAR(100), j.CreateTime, 20) CreateTime ,
                                                        CONVERT(VARCHAR(100), j.UpdateTime, 20) UpdateTime ,
                                                        CONVERT(VARCHAR(100), j.PublishDate, 20) PublishDate ,
                                                        CONVERT(VARCHAR(100), j.EndTime, 20) EndTime ,
                                                        j.[Status] ,
                                                        ipc.ID [sid] ,
                                                        ipc.ParentID spid ,
                                                        ipc.ItemName ,
                                                        ca.AgentName ,
                                                        j.JobID
                                              FROM      dbo.CompanyJobs j
                                                        JOIN dbo.CompanyBaseInfo cbi ON cbi.Id = j.CompanyID
                                                        JOIN ( SELECT   ca.CompanyID ,
                                                                        ca.AgentName
                                                               FROM     CompanyAgents ca
                                                               GROUP BY ca.CompanyID ,
                                                                        ca.AgentName
                                                             ) ca ON ca.CompanyID = cbi.Id
                                                        JOIN dbo.ItemProfessionalCategory ipc ON ipc.ID = j.ProfessionalCategoryID
                                              WHERE     j.[Status] = 2
                                                        AND cbi.ContactOne IS NOT NULL
                                            ) aaa
                                    WHERE   aaa.sequece = 1;";

            DataTable                   companyjobInfoTable   = PullToScxtpt_px.Helper.SqlHelper.ExecuteDataTable(cmdText, new SqlParameter("@IsAudit", 1));
            List <JobCodeMapper>        codeMappers           = SqlHelper.QueryJobCodeMapper();
            List <SpecialityCodeMapper> SpecialitycodeMappers = SqlHelper.QuerySpecialityCodeMapper();
            string               cmdText2 = "select * from PullInfoRecord where type='招聘信息'";
            DataTable            yetcompanyjobInfoTable = SqlHelper.ExecuteDataTable(cmdText2, new SqlParameter("@param", DBNull.Value));
            List <YetInsertInfo> YetInsertInfolist      = new List <YetInsertInfo>();
            List <CompanyJob>    companyjobInfolist     = new List <CompanyJob>();

            if (yetcompanyjobInfoTable.Rows.Count > 0)
            {
                foreach (DataRow item in yetcompanyjobInfoTable.Rows)
                {
                    YetInsertInfo yetInsertInfo = new YetInsertInfo()
                    {
                        number     = item["number"].ToString(),
                        type       = item["type"].ToString(),
                        updateTime = item["updateTime"].ToString()
                    };
                    YetInsertInfolist.Add(yetInsertInfo);
                }
            }

            if (companyjobInfoTable.Rows.Count > 0)
            {
                foreach (DataRow item in companyjobInfoTable.Rows)
                {
                    CompanyJob companyJob = new CompanyJob();
                    //招聘编号
                    companyJob.acb200 = item["JobNumber"].ToString();
                    //单位编号
                    companyJob.aab001 = item["cid"].ToString();
                    //岗位名称
                    companyJob.aca112 = item["JobName"].ToString();
                    //岗位描述
                    companyJob.acb22a = item["Descrip"].ToString();
                    //岗位要求



                    var aca111 = codeMappers.Where(c => item["JobID"].ToString().ToUpper()
                                                   .Equals(c.ID)).FirstOrDefault();
                    //try
                    //{
                    //    companyJob.aca111 = aca111.typeCode.ToString();
                    //}
                    //catch (Exception)
                    //{
                    //    System.Diagnostics.Debug.WriteLine(item["JobID"].ToString() + "----" + item["JobName"].ToString());

                    //}
                    if (aca111 == null || string.IsNullOrWhiteSpace(aca111.typeCode.ToString()))
                    {
                        continue;
                    }
                    else
                    {
                        companyJob.aca111 = aca111.typeCode.ToString();
                    }
                    //所学专业
                    var aac183 = SpecialitycodeMappers.Where(c => item["sid"].ToString().ToUpper()
                                                             .Equals(c.ID)).FirstOrDefault();
                    if (aac183 == null)
                    {
                        var _aac183 = SpecialitycodeMappers.Where(c => item["spid"].ToString().ToUpper()
                                                                  .Equals(c.ID)).FirstOrDefault();
                        if (_aac183 == null)
                        {
                            continue;
                        }
                        else
                        {
                            companyJob.aac183 = _aac183.typeCode.ToString();
                        }
                        //try
                        //{
                        //    companyJob.aac183 = _aac183.typeCode.ToString();
                        //}
                        //catch (Exception)
                        //{

                        //    System.Diagnostics.Debug.WriteLine(item["sid"].ToString() + "    "+ item["spid"].ToString() + "    " + item["ItemName"].ToString());

                        //}
                    }
                    else
                    {
                        companyJob.aac183 = aac183.typeCode.ToString();
                    }

                    //招聘人数
                    companyJob.acb240 = item["Amount"].ToString();
                    //工作地点
                    companyJob.acb202 = item["Address"].ToString();
                    //工作地点行政区划代码
                    companyJob.aab301 = "510400000000";
                    //工作性质
                    companyJob.acb239 = item["WorkingMode"].ToString();
                    //最低年龄
                    companyJob.acb221 = item["BeginAge"].ToString();
                    //最高年龄
                    companyJob.acb222 = item["EndAge"].ToString();
                    //从业年数
                    companyJob.acc217 = item["WorkYears"].ToString();
                    //联系人
                    companyJob.aae004 = item["ContactOne"].ToString();
                    if (string.IsNullOrWhiteSpace(companyJob.aae004))
                    {
                        continue;
                    }
                    //联系电话
                    companyJob.aae005 = item["ContactOneMobile"].ToString();
                    if (string.IsNullOrWhiteSpace(companyJob.aae005))
                    {
                        if (!string.IsNullOrWhiteSpace(item["ContactOnePhone"].ToString()))
                        {
                            companyJob.aae005 = item["ContactOnePhone"].ToString();
                        }
                        else
                        {
                            continue;
                        }
                    }
                    //创建日期
                    companyJob.aae395 = item["CreateTime"].ToString();
                    //更新日期
                    companyJob.aae396 = item["UpdateTime"].ToString();
                    //发布日期
                    companyJob.aae397 = item["PublishDate"].ToString();
                    //到期日期
                    companyJob.aae398 = item["EndTime"].ToString();
                    //审核状态
                    companyJob.ace751 = "1";
                    //发布状态
                    companyJob.ace752 = item["Status"].ToString();
                    //数据来源
                    //登记时间
                    companyJob.aae036 = item["PublishDate"].ToString();
                    //登记机构
                    companyJob.aae017 = "攀枝花市人才服务中心";
                    //登记人
                    companyJob.aae011 = "市场部";
                    //登记地行政区划代码
                    companyJob.aae022 = "510400000000";

                    companyjobInfolist.Add(companyJob);
                }
            }
            DateTimeFormatInfo dtFormat = new DateTimeFormatInfo();

            dtFormat.ShortDatePattern = "yyyy/MM/dd";
            //需要推送的信息 过滤:未插入,插入但更新时间大于推送时间

            List <CompanyJob> companyJobs1 = companyjobInfolist.Where(r => !YetInsertInfolist.Any(y => y.number == r.acb200)).ToList();

            //List<PersonResume> personResumes2 = resumeInfolist.Where(r => YetInsertInfolist.Any(y => y.number == r.acc200 && Convert.ToDateTime(y.updateTime, dtFormat)
            //< Convert.ToDateTime(r.aae043, dtFormat))).ToList();
            //List<PersonResume> personResumes = personResumes1.Union(personResumes2).ToList<PersonResume>();
            return(companyJobs1);
        }