コード例 #1
0
        /// <summary>
        /// 列表
        /// </summary>
        /// <param name="setting"></param>
        /// <returns></returns>
        public static IPageOfList <ResumeInfo> List(SearchSetting setting)
        {
            FastPaging fp = new FastPaging();

            fp.PageIndex   = setting.PageIndex;
            fp.PageSize    = setting.PageSize;
            fp.Ascending   = false;
            fp.TableName   = "Resumes";
            fp.TableReName = "p";
            fp.PrimaryKey  = "ID";
            fp.QueryFields = "p.*";
            fp.OverOrderBy = " CreateDateTime DESC";
            fp.WithOptions = " WITH(NOLOCK)";
            fp.Condition   = " IsDeleted = 0";


            IList <ResumeInfo> list  = new List <ResumeInfo>();
            ResumeInfo         model = null;
            DataTable          dt    = SQLPlus.ExecuteDataTable(CommandType.Text, fp.Build2005());

            if (dt != null && dt.Rows.Count > 0)
            {
                foreach (DataRow dr in dt.Rows)
                {
                    model = GetByRow(dr);
                    if (model != null)
                    {
                        list.Add(model);
                    }
                }
            }
            int count = Convert.ToInt32(SQLPlus.ExecuteScalar(CommandType.Text, fp.BuildCountSQL()));

            return(new PageOfList <ResumeInfo>(list, setting.PageIndex, setting.PageSize, count));
        }
コード例 #2
0
        private List <ResumeInfo> listResumeNodes(TreeNode rootNode, int depth)
        {
            List <ResumeInfo> nodeList = new List <ResumeInfo>();

            if (rootNode.Nodes.Count == 1 &&
                rootNode.Nodes[0].Text == notBrowsedText)
            {
                ResumeInfo info = new ResumeInfo(rootNode, depth);
                nodeList.Add(info);
            }
            else if (rootNode.Nodes.Count > 0)
            {
                if (unlimitedDepthCheck.Checked || depth < searchDepthValue.Value)
                {
                    foreach (TreeNode subNode in rootNode.Nodes)
                    {
                        if (subNode.Nodes.Count > 0)
                        {
                            nodeList.AddRange(listResumeNodes(subNode, depth + 1));
                        }
                    }
                }
            }

            return(nodeList);
        }
コード例 #3
0
        private void resumeBrowse(List <ResumeInfo> infos)
        {
            Task[] resumeTasks = new Task[infos.Count];
            for (int i = 0; i < infos.Count; i++)
            {
                ResumeInfo info = infos[i];
                resumeTasks[i] = Task.Run(() =>
                {
                    TreeNodeCollection subNodes = createNodeFor(
                        getNodeFilePath(info.Node),
                        info.Depth).Nodes;

                    BeginInvoke(new Action(() =>
                    {
                        info.Node.Nodes.Clear();
                        foreach (TreeNode subNode in subNodes)
                        {
                            info.Node.Nodes.Add(subNode);
                        }
                    }));
                });
            }

            foreach (Task resumeTask in resumeTasks)
            {
                resumeTask.Wait();
            }
        }
コード例 #4
0
ファイル: ResumeDB.cs プロジェクト: oveldman/Showcase
        public async Task <ResumeInfo> GetInfoAsync()
        {
            ResumeInfo resume = await _context.ResumeInfos
                                .OrderBy(ri => ri.Created)
                                .LastOrDefaultAsync();

            return(resume != null ? resume : new());
        }
コード例 #5
0
ファイル: ResumeDB.cs プロジェクト: oveldman/Showcase
        public bool AddInfoAsync(ResumeInfo info)
        {
            info.Created = DateTime.Now;

            _context.ResumeInfos.Add(info);
            _context.SaveChanges();

            return(true);
        }
コード例 #6
0
ファイル: ResumeController.cs プロジェクト: oveldman/Showcase
        public async Task <ResumeViewModel> GetInfoAsync()
        {
            ResumeInfo resumeInfo = await _resumeManager.GetInfoAsync();

            return(new() {
                LivingPlace = resumeInfo.LivingPlace,
                Nationality = resumeInfo.Nationality,
                ProfileName = resumeInfo.Name
            });
        }
コード例 #7
0
        public void MattElandSnapshotTest()
        {
            // Arrange
            var resume = new ResumeInfo("Matt Eland");

            // Act
            var result = Analyze(resume);

            // Assert
            result.ShouldMatchSnapshot();
        }
コード例 #8
0
        static void Main(string[] args)
        {
            ResumeInfo resume = GetResumeFromArgs(args);

            IResumeAnalyzer analyzer = GetResumeAnalyzer();

            IContainer container = BuildContainer();

            var result = analyzer.Analyze(resume, container);

            Console.WriteLine($"{resume.FullName}'s resume score is {result.Score}");
        }
コード例 #9
0
ファイル: JobController.cs プロジェクト: xbf321/Elco
        public ActionResult Apply(ResumeInfo model, FormCollection fc)
        {
            /*
             * 设置_CommmonLayout.cshtml中的变量
             */

            ViewBag.RootCategoryInfo = ViewBag.CurrentCategoryInfo = CategoryService.Get(GeneralConfig.JobRootId);

            int jobId = CECRequest.GetQueryInt("jobId", 0);

            var jobInfo = JobService.Get(jobId);

            if (jobInfo.Id <= 0)
            {
                return(Redirect("/job"));
            }

            if (Request.HttpMethod.ToUpper() == "POST")
            {
                //生日
                model.Birthday = string.Format("{0}-{1}", fc["Year"], fc["Month"]);

                //籍贯
                string birthplace = string.Empty;
                string province = fc["Province"], city = fc["City"], town = fc["Town"];
                if (!string.IsNullOrEmpty(province))
                {
                    birthplace = province;
                    if (!string.IsNullOrEmpty(city))
                    {
                        birthplace += "-" + city;
                        if (!string.IsNullOrEmpty(town))
                        {
                            birthplace += "-" + town;
                        }
                    }
                }
                model.BirthPlace = birthplace;

                int  id     = ResumeService.Create(model).Id;
                bool status = false;
                if (id > 0)
                {
                    status = true;
                }
                //POST
                ViewBag.Status = status;
            }

            ViewBag.JobInfo = jobInfo;
            return(View(model));
        }
コード例 #10
0
        // [UpdateSnapshots] // This should only be active the first run or if snapshot needs updating
        public void SamplePinningTest()
        {
            // Arrange
            var resume = new ResumeInfo("Some Body");

            resume.Jobs.Add(new JobInfo("Test Engineer", "Universal Exports", 42));

            // Act
            var result = Analyze(resume);

            // Assert
            result.ShouldMatchSnapshot();
        }
コード例 #11
0
        public void ShouldScoreJobsBasedOnKeywords(string title, int expectedScore)
        {
            // Arrange
            var resume = new ResumeInfo("Someone Awesome");

            resume.Jobs.Add(new JobInfo(title, "Universal Exports", 1));

            // Act
            var result = Analyze(resume);

            // Assert
            Assert.Equal(expectedScore, result.Score);
        }
コード例 #12
0
        public void SingleJobShouldScoreForNumberOfMonthsInJob(int numMonths, int expectedScore)
        {
            // Arrange
            var resume = new ResumeInfo("John Doe");

            resume.Jobs.Add(new JobInfo("Organ Donor", "State of Ohio", numMonths));

            // Act
            var result = Analyze(resume);

            // Assert
            Assert.Equal(expectedScore, result.Score);
        }
コード例 #13
0
 /// <summary>
 /// 添加或编辑
 /// </summary>
 /// <param name="model"></param>
 /// <returns></returns>
 public static ResumeInfo Create(ResumeInfo model)
 {
     if (model.Id == 0)
     {
         int id = ResumeManage.Insert(model);
         model.Id = id;
     }
     else
     {
         //Update
     }
     return(model);
 }
コード例 #14
0
        public void SingleJobScoreShouldMatchExpectedUsingBogus()
        {
            // Arrange
            var resume = new ResumeInfo(_bogus.Name.FullName());
            var job    = BuildJobEntry();

            resume.Jobs.Add(job);

            // Act
            var result = Analyze(resume);

            // Assert
            result.Score.ShouldBe(job.MonthsInJob);
        }
コード例 #15
0
        public void MattElandShouldAlwaysScoreWell()
        {
            // Arrange
            var resume = new ResumeInfo("Matt Eland");

            // Act
            var result = Analyze(resume);

            // Assert
            result.Score.Should().Be(int.MaxValue);
            result.Resume.Should().NotBeNull();
            result.Resume.Should().Be(resume);
            result.Resume.Jobs.Count.Should().BeLessThan(1);
        }
コード例 #16
0
ファイル: IMenu3.cs プロジェクト: sonny6310/csharpGit
        public void setting()
        {
            Resume_Name.Text  = user.NAME;
            Resume_Phone.Text = user.PHONE;
            Resume_Addr.Text  = user.ADDR;
            Resume_Email.Text = user.EMAIL;
            ResumeInfo info = new ResumeInfo();

            info.readRESUMEInfo(user.ID);
            Subject_text.Text   = ResumeInfo.getSubject();
            Location_text.Text  = ResumeInfo.getLocation();
            Exp_text.Text       = ResumeInfo.getExp();
            License_text.Text   = ResumeInfo.getLicense();
            Introduce_text.Text = ResumeInfo.getContent();
        }
コード例 #17
0
        public void EntityFrameworkKeywordTestsShouldFunction()
        {
            // Arrange
            var resume = new ResumeInfo("Someone Awesome");

            resume.Jobs.Add(new JobInfo("XUnit Tester", "Universal Exports", 1));

            var provider = BuildEntityKeywordBonusProvider();

            // Act
            var result = Analyze(resume, provider);

            // Assert
            result.Score.ShouldBe(6);
        }
コード例 #18
0
    IEnumerator QueryResumeInfoCoroutine(ResumeOptionHandler handler)
    {
        if (PlayerPrefs.HasKey(NetworkingController.LastJoinedRoomPrefKey) &&
            !PlayerPrefs.GetString(NetworkingController.LastJoinedRoomPrefKey).IsNullOrEmpty())
        {
            handler.HandleJoinCode(PlayerPrefs.GetString(NetworkingController.LastJoinedRoomPrefKey));
            yield break;
        }

        if (!PlayerPrefs.HasKey(ResumeInfoPlayerPrefKey))
        {
            yield break;
        }

        // Hmm ideally this is done in GetWorkShopItem, but I need to make that a MonoBehaviour.
#if USE_STEAMWORKS
        while (!SteamManager.Initialized)
        {
            yield return(null);
        }
#endif

        ResumeInfo info = JsonUtility.FromJson <ResumeInfo>(PlayerPrefs.GetString(ResumeInfoPlayerPrefKey));
#if USE_STEAMWORKS
        if (info.steamWorkshopFileId != 0)
        {
            SteamUtil.GetWorkShopItem(info.steamWorkshopFileId, item =>
            {
                if (!item.IsEmpty())
                {
                    handler.HandleWorkshopItem(item.Value);
                }
            });
            yield break;
        }
        else
#endif
        if (info.bundleId != null)
        {
            handler.HandleBundleId(info.bundleId);
            yield break;
        }
        else
        {
            Util.LogError($"resume pref key exists, but it didn't have valid info. Json: {PlayerPrefs.GetString(ResumeInfoPlayerPrefKey)}");
        }
    }
コード例 #19
0
        /// <summary>
        /// Search all xml files in directory and returns info for them.
        /// </summary>
        /// <returns></returns>
        public IEnumerable <ResumeInfo> AllResumesInfo()
        {
            var directory = new DirectoryInfo(this.resumeDirectory);
            var files     = directory.GetFiles(this.resumeNamePattern, SearchOption.AllDirectories);

            var result = new List <ResumeInfo>();

            foreach (var file in files)
            {
                var resumeInfo = new ResumeInfo()
                {
                    Name     = file.Name.Replace(".xml", ""),
                    ResumeId = file.Name.Replace(".xml", "")
                };

                result.Add(resumeInfo);
            }

            return(result);
        }
コード例 #20
0
        protected AnalysisResult Analyze(ResumeInfo resume,
                                         IKeywordBonusProvider?bonusProvider = null,
                                         [CallerMemberName] string caller    = "")
        {
            InitializeResultPublisherAsNeeded();


            var legacyAnalyzer = new ResumeAnalyzer();
            var newAnalyzer    = new RewrittenAnalyzer();

            bonusProvider ??= BuildBonusProvider();

            IContainer container = BuildTestContainer(bonusProvider);

            try
            {
                return(Scientist.Science <AnalysisResult>(caller,
                                                          experiment =>
                {
                    experiment.Use(() => legacyAnalyzer.Analyze(resume, container));
                    // experiment.Try(() => newAnalyzer.Analyze(resume, container));
                    experiment.Compare((x, y) => x.Score == y.Score);
                }));
            }
            catch (AggregateException agEx)     // Scientist wraps exceptions into an aggregate
            {
                var opEx = agEx.InnerException; // Scientist wraps exceptions into an OperationException
                if (opEx?.InnerException != null)
                {
                    throw opEx.InnerException; // This is the actual exception that we threw on comparing assertions
                }
                else if (opEx != null)
                {
                    throw opEx;
                }
                else
                {
                    throw;
                }
            }
        }
コード例 #21
0
        /// <summary>
        /// 插入
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public static int Insert(ResumeInfo model)
        {
            string strSQL = "INSERT INTO Resumes(Realname,Gender,Birthday,Email,[GUID],CreateDateTime,JobId,WorkExperience,Education,[Address],Phone,Family,Degree,Major,MaritalStatus,BirthPlace) VALUES(@RealName,@Gender,@Birthday,@Email,@GUID,GETDATE(),@JobId,@WorkExperience,@Education,@Address,@Phone,@Family,@Degree,@Major,@MaritalStatus,@BirthPlace);SELECT @@IDENTITY;";

            SqlParameter[] param =
            {
                new SqlParameter("Realname",       SqlDbType.NVarChar),
                new SqlParameter("Gender",         SqlDbType.NVarChar),
                new SqlParameter("Birthday",       SqlDbType.NVarChar),
                new SqlParameter("Email",          SqlDbType.NVarChar),
                new SqlParameter("GUID",           SqlDbType.NVarChar),
                new SqlParameter("JobId",          SqlDbType.Int),
                new SqlParameter("WorkExperience", SqlDbType.NVarChar),
                new SqlParameter("Education",      SqlDbType.NVarChar),
                new SqlParameter("Address",        SqlDbType.NVarChar),
                new SqlParameter("Phone",          SqlDbType.NVarChar),
                new SqlParameter("Family",         SqlDbType.NVarChar),
                new SqlParameter("Degree",         SqlDbType.NVarChar),
                new SqlParameter("Major",          SqlDbType.NVarChar),
                new SqlParameter("MaritalStatus",  SqlDbType.NVarChar),
                new SqlParameter("BirthPlace",     SqlDbType.NVarChar),
            };
            param[0].Value  = model.Realname ?? string.Empty;
            param[1].Value  = model.Gender ?? "男";
            param[2].Value  = model.Birthday ?? "1986-01-01";
            param[3].Value  = model.Email ?? string.Empty;
            param[4].Value  = model.GUID ?? Guid.NewGuid().ToString();
            param[5].Value  = model.JobId;
            param[6].Value  = model.WorkExperience ?? string.Empty;
            param[7].Value  = model.Education ?? string.Empty;
            param[8].Value  = model.Address ?? string.Empty;
            param[9].Value  = model.Phone ?? string.Empty;
            param[10].Value = model.Family ?? string.Empty;
            param[11].Value = model.Degree ?? string.Empty;
            param[12].Value = model.Major ?? string.Empty;
            param[13].Value = model.MaritalStatus ?? string.Empty;
            param[14].Value = model.BirthPlace ?? string.Empty;
            return(Convert.ToInt32(SQLPlus.ExecuteScalar(CommandType.Text, strSQL, param)));
        }
コード例 #22
0
        public void CustomKeywordBonusesShouldCalculateCorrectly()
        {
            // Arrange
            var resume = new ResumeInfo("Someone Awesome");

            resume.Jobs.Add(new JobInfo("Attendee", "CODNG", 1));

            var mock = new Mock <IKeywordBonusProvider>();

            mock.Setup(provider => provider.LoadKeywordBonuses())
            .Returns(new Dictionary <string, ResumeKeyword>
            {
                ["attendee"] = new ResumeKeyword("Attendee", 50)
            });

            // Act
            var result = Analyze(resume, mock.Object);

            // Assert
            result.Score.ShouldBe(51); // 50 bonus + 1 month in job

            mock.Verify(provider => provider.LoadKeywordBonuses(), Times.Exactly(1));
        }
コード例 #23
0
 public void GivenAResume()
 {
     _resume = new ResumeInfo(_bogus.Person.FullName);
 }