public async Task <IActionResult> editResumeData(int id, ResumeData resumeData) { _context.Entry(resumeData).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ResumeDataExists(id)) { return(NotFound()); } else { throw; } } //var updatedResume = await _context.ResumeData // .Where(r => r.ResumeId == id) // .Include(s => s.Links) // .Include(w => w.WorkData) // .Include(w => w.Education) // .Include(w => w.Language) // .Include(w => w.Projects) // .Include(w => w.Recommends) // .Include(w => w.Skills) // .FirstOrDefaultAsync(); return(NoContent()); }
public IEnumerable <IResumeElement> ProduceElements(ResumeData data) { yield return(new ResumeParagraph(data.DocumentTitle) .SetSectionHeaderStyle() .SetHorisontalAlignment(ElementAlignmnet.Center)); var relativeColumnWidths = new float[] { 25, 25, 25, 25 }; yield return(new ResumeTable(relativeColumnWidths) { new ResumeTableRow() { new ResumeTableCell("Telephone"), new ResumeTableCell(data.Telephone), new ResumeTableCell("Email"), new ResumeTableCell(data.Email), }, new ResumeTableRow() { new ResumeTableCell("Experience"), new ResumeTableCell(data.ExperienceYears + " year(s)"), new ResumeTableCell("Country of Residence"), new ResumeTableCell(data.ResidenceCountry), } }); }
public IEnumerable <IResumeElement> ProduceElements(ResumeData data) { if (!data.EmploymentHistories.Any()) { yield break; } yield return(new ResumeParagraph("Employment History").SetSectionHeaderStyle()); var table = new ResumeTable(new float[] { 15, 15, 15, 60 }) { new ResumeTableRow() { new ResumeTableCell("Period"), new ResumeTableCell("Company"), new ResumeTableCell("Position"), new ResumeTableCell("Description"), } }; foreach (var record in data.EmploymentHistories) { var row = new ResumeTableRow() { new ResumeTableCell(String.Format("{0:y} - {1:y}", record.StartDate, record.EndDate)), new ResumeTableCell(record.EmployerName), new ResumeTableCell(record.Position), new ResumeTableCell(record.Description), }; table.Add(row); } yield return(table); }
public IEnumerable <IResumeElement> ProduceElements(ResumeData resumeData) { if (SectionSpecification.IsSatisfiedBy(resumeData)) { return(TruthSection.ProduceElements(resumeData)); } return(Enumerable.Empty <IResumeElement>()); }
public IEnumerable <IResumeElement> ProduceElements(ResumeData resumeData) { yield return(new ResumeParagraph("Citizen Secrets").SetSectionHeaderStyle()); foreach (var secret in resumeData.CitizenSecrets) { yield return(new ResumeParagraph(secret.SecretInformation)); } }
public ActionResult <ResumeData> SaveToMongoDB([FromBody] ResumeData request) { var req = request; var utcTime = DateTime.UtcNow; req.Name = string.Format("{0} {1}", request.PersonalInfo.CurrentOccupation, "Resume"); req.CreatedTime = utcTime; req.UpdatedTime = utcTime; return(Ok(_resumeStoreService.Create(request))); }
public ActionResult Index(HomeModel model) { ViewBag.Title = "Home Page"; model.Skills = ResumeData.GetSkills(); model.WorkHistroy = ResumeData.GetJobs(); model.Education = ResumeData.GetDegrees(); model.Interests = ResumeData.GetInterests(); model.FAQ = ResumeData.GetFAQ(); model.LinkedInUrl = WebConfigurationManager.AppSettings["LinkedInUrl"]; model.GithubUrl = WebConfigurationManager.AppSettings["GitHubUrl"]; return(View(model)); }
public IEnumerable <IResumeElement> ProduceElements(ResumeData resumeData) { var result = new List <IResumeElement>(); foreach (var section in Sections) { var sectionElements = section.ProduceElements(resumeData); result.AddRange(sectionElements); } return(result); }
public async Task <ActionResult <ResumeData> > CreateResume(ResumeData resumeData) { int userId = resumeData.UserId; _context.ResumeData.Add(resumeData); await _context.SaveChangesAsync(); var userData = await _context.ResumeData .Where(u => u.UserId == userId).Select(p => new { p.ResumeId, p.ResumeName, p.Layout }) .ToListAsync(); return(Ok(userData)); }
public IEnumerable <IResumeElement> ProduceElements(ResumeData resumeData) { yield return(new ResumeParagraph("Sample text for demonstration")); yield return(new ResumeBulletedList() { Paragraphs = new List <ResumeParagraph>() { new ResumeParagraph("Bullet Point One"), new ResumeParagraph("Bullet Point Two"), } }); }
public IEnumerable <IResumeElement> ProduceElements(ResumeData data) { yield return(new ResumeParagraph("Membership").SetSectionHeaderStyle()); var bulletedList = new ResumeBulletedList(); foreach (var membership in data.OrganisationsMemberships) { bulletedList.AddParagraph(String.Format("{0} - {1}", membership.OrganisationName, membership.MembershipName)); } yield return(bulletedList); }
public IEnumerable <IResumeElement> ProduceElements(ResumeData resumeData) { yield return(new ResumeParagraph("Certifications").SetSectionHeaderStyle()); var bulletedList = new ResumeBulletedList(); foreach (var certification in resumeData.Certifications) { var text = String.Format("{0} {1:y} - {2:y}", certification.CertificationName, certification.StartDate, certification.ExpiryDate); bulletedList.AddParagraph(text); } yield return(bulletedList); }
protected override void _Save(FileActivity activity, ResumeResult data) { if (activity.IsChanged) { _conn.ExecuteScalar(string.Format("delete from resumelist where guid='{0}';delete from resumedetaillist where guid='{0}';", activity.HashCode)); } DateTime dateTime = DateTime.Now; ResumeData resumeData = data.ResumeInfo; //记录简历信息 _conn.ExecuteNonQuery(string.Format(InsertResumeSql, activity.HashCode, resumeData.Name, resumeData.Age, resumeData.Gender, resumeData.Phone, resumeData.Email, resumeData.JobTarget == null ? string.Empty : resumeData.JobTarget.JobCareer, resumeData.LatestDegree, resumeData.JobTarget == null ? string.Empty : resumeData.JobTarget.JobCareer, resumeData.Residence, activity.FilePath, "本地计算机", resumeData.WorkYears, dateTime.ToString(DateFormat), dateTime.ToUniversalTime(), Dorado.SystemInfo.SystemInfo.GetMacAddress(), data.Text)); }
public IEnumerable <IResumeElement> ProduceElements(ResumeData resumeData) { yield return(new ResumeParagraph("Education").SetSectionHeaderStyle()); foreach (var education in resumeData.Educations) { var header = String.Format("{0:y} - {1:y} {2}", education.StartDate, education.EndDate, education.Establishment); yield return(new ResumeParagraph(header).SetFont(new ResumeFont() .SetSize(12) .SetFontWeight(ResumeFontWeight.Bold))); var details = String.Format("{0} {1} {2}", education.DegreeLevel, education.CourseName, education.AcheivementLevel); yield return(new ResumeParagraph(details)); } }
protected void RenderElements(IEnumerable <IResumeSection> resumeSections, ResumeData data) { var elementRenderers = GetElementRenderers(); foreach (var section in resumeSections) { var elements = section.ProduceElements(data); // do the rendering foreach (var element in elements) { var elementRenderer = elementRenderers[element.GetType()]; elementRenderer.Invoke(element); } } }
public IActionResult Update(string id, [FromBody] ResumeData resume) { var res = _resumeStoreService.Get(id); if (res == null) { return(NotFound()); } var utcTime = DateTime.UtcNow; resume.Name = string.Format("{0} {1}", resume.PersonalInfo.CurrentOccupation, "Resume"); resume.UpdatedTime = utcTime; _resumeStoreService.Update(id, resume); return(NoContent()); }
public OperateResult <ResumeResult> ParseText(string text) { try { //先判别文件是否是有效简历 OperateResult <ResumePredictResult> predictResult = PredictText(text); if (predictResult.Status == OperateStatus.Failure) { return(new OperateResult <ResumeResult>(OperateStatus.Failure, predictResult.Description)); } ResumeResult resumeResult = new ResumeResult { Text = predictResult.Data.Text, Score = predictResult.Data.Score }; if (!predictResult.Data.IsResume) { return(new OperateResult <ResumeResult>(OperateStatus.Failure, string.Format("不是有效的简历格式,得分[{0}]", predictResult.Data.Score), resumeResult)); } //文本简历解析 TextCVParser parser = new TextCVParser(predictResult.Data.Text); ResumeData resumeData = parser.Parse(); if (!resumeData.IsValid()) { return(new OperateResult <ResumeResult>(OperateStatus.Failure, "不是有效的简历格式,缺少简历必要信息", resumeResult)); } resumeResult.IsResume = true; resumeResult.ResumeInfo = resumeData; return(new OperateResult <ResumeResult>(OperateStatus.Success, "操作成功", resumeResult)); } catch (Exception ex) { LoggerWrapper.Logger.Error("简历解析错误", ex); return(new OperateResult <ResumeResult>(OperateStatus.Failure, ex.Message)); } }
public async Task <IActionResult> UpdtadeResumeData(int id, ResumeData resumeData) { int userId = resumeData.UserId; var resume = _context.ResumeData.First(r => r.ResumeId == id); if (resumeData.Layout != null) { resume.Layout = resumeData.Layout; } if (resumeData.ResumeName != null) { resume.ResumeName = resumeData.ResumeName; } try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ResumeDataExists(id)) { return(NotFound()); } else { throw; } } var userData = await _context.ResumeData .Where(u => u.UserId == userId).Select(p => new { p.ResumeId, p.ResumeName, p.Layout }) .ToListAsync(); return(Ok(userData)); }
public async Task <ActionResult <IEnumerable <ResumeData> > > Duplicate(int id, ResumeData resumeData) { int ResumeId = resumeData.ResumeId; var newResume = await _context.ResumeData.Where(s => s.ResumeId == ResumeId) .Include(s => s.Links) .Include(w => w.WorkData) .Include(w => w.Education) .Include(w => w.Language) .Include(w => w.Projects) .Include(w => w.Recommends) .Include(w => w.Skills) .FirstOrDefaultAsync(); if (newResume == null) { return(NotFound()); } newResume.ResumeId = 0; newResume.ResumeName = resumeData.ResumeName; int UserId = newResume.UserId; _context.ResumeData.Add(newResume); await _context.SaveChangesAsync(); var userData = await _context.ResumeData .Where(u => u.UserId == id).Select(p => new { p.ResumeId, p.ResumeName, p.Layout }) .ToListAsync(); if (userData == null) { return(NotFound()); } return(Ok(userData)); }
private static void CreateWord(IEnumerable <IResumeSection> basicResumeComposer, ResumeData resumeData) { var wordRenderer = new WordRenderer(); var wordStream = wordRenderer.CreateDocument(basicResumeComposer, resumeData); File.WriteAllBytes("wordResume.docx", wordStream.ToArray()); }
private static void CreatePdf(IEnumerable <IResumeSection> basicResumeComposer, ResumeData resumeData) { var pdfRenderer = new PdfRenderer(new StubServerPathMapper()); var pdfStream = pdfRenderer.CreateDocument(basicResumeComposer, resumeData); File.WriteAllBytes("pdfResume.pdf", pdfStream.ToArray()); }
public BasicInfoAnalyzer(List <string> resumeContentList, ResumeData resumedata) { this.resumeContentList = resumeContentList; this.resumedata = resumedata; }
public bool IsSatisfiedBy(ResumeData data) { return(data.ReaderClearanceLevel == ClearanceLevel.LoyalCitizen || data.ReaderClearanceLevel == ClearanceLevel.TopSecret); }
public override MemoryStream CreateDocument(IEnumerable <IResumeSection> resumeSections, ResumeData data) { byte[] resultBytes; FontFactory.RegisterDirectories(); var fontPath = mapperPathMapper.MapPath(InconsolataTtf); FontFactory.Register(fontPath, PdfConverter.Verdana); var pdfOutputStream = new MemoryStream(); document = new Document(PageSize.A4); document.SetMargins(20, 20, 20, 20); PdfWriter.GetInstance(document, pdfOutputStream); document.AddTitle(data.DocumentTitle); document.Open(); base.RenderElements(resumeSections, data); document.Close(); resultBytes = pdfOutputStream.ToArray(); pdfOutputStream.Close(); pdfOutputStream.Dispose(); return(new MemoryStream(resultBytes)); }
public ResumedSession(ResumeData resumeData, Action <string, JsonElement> eventDispatchCallback, ILogger logger) : base(eventDispatchCallback, logger) { _logger = logger; _resumeData = resumeData; }
public ActionResult <ResumeData> Index() { var rd = new ResumeData() { main = new Main() { address = new Address() { city = "Tehran", state = "Tehran, Iran", street = "Khoshi St., Saeedi Hwy", zip = "1371683776" }, bio = "A software developer with a passionate enthusiasm for Blockchain Technology and cryptography who loves to code. I also love studying and understanding Programming Languages and how they work under the hood. I also have a keen interest in Machine learning and artificial intelligence stuff. I recently got a chance to lead a team of young and passionate software developers.", contactmessage = "Contact me", email = "*****@*****.**", image = "profilepic.jpg", name = "Hamed Mohammadi", occupation = "Software Developer", phone = "(+98)939-172-7951", resumedownload = "HMohammadi.pdf", social = new List <Social>() { new Social() { name = "github", className = "fa fa-github", url = "https://github.com/fivil" }, new Social() { name = "twitter", url = "https://twitter.com/F_IVI_L", className = "fa fa-twitter" }, new Social() { url = "https://www.linkedin.com/in/HammedMohamadi", name = "linkedin", className = "fa fa-linkedin" }, new Social() { url = "callto://+989391727951", name = "Skype", className = "fa fa-skype" }, new Social() { url = "mailto:[email protected]", className = "fa fa-envelope", name = "envelope" } }, website = "http://qmak.ir/" }, portfolio = new Portfolio() { projects = new List <Project>() { new Project() { category = "Fully Iranian cryptocurrency teller machine which facilitates the process of buying and selling several different cryptocurrencies", image = "btm.jpg", title = "EXFA- BTM", url = "http://exfa.io/" }, new Project() { category = "Simple new cryptocurrency based on directed acyclic graph which uses it's very own blockchain, part of my Bachelor's degree project", image = "ParsiCoin.JPG", title = "Parsi Coin", url = "https://github.com/FIVIL/ParsiCoin" }, new Project() { category = "Minimum Edit Distance Implementation for my Introduction to Natural Languages processing course.", image = "MED.JPG", title = "Minimum Edit Distance", url = "https://github.com/FIVIL/MED" }, new Project() { category = "Fourier Series Visualizer for Engineering Calculus Course", image = "Furier1.JPG", title = "Fourier", url = "https://github.com/FIVIL/Fourier-series" }, new Project() { category = "Heart Diseases Diagnosis Expert System for introduction to artificial Intelligence course.", image = "AI1.JPG", title = "HDES", url = "https://github.com/FIVIL/ID3-and-decision-tree" }, new Project() { category = "Simple Compiler Lexical Analyser", image = "lexem.JPG", title = "Lexem", url = "https://github.com/FIVIL/Lexeme" }, new Project() { category = "Dining Philosopher Problem", image = "NPhilosopher.JPG", title = "Dining Philosopher Problem's answer with p2p network", url = "https://github.com/FIVIL/N-Philasopher" }, new Project() { category = "Simple Ball Game", image = "BallGame.JPG", title = "Ball Game", url = "https://github.com/FIVIL/NetWorkProject" }, new Project() { category = "Ethereum Based Token which Helps Tracking Ownership of Irainian Authentic Carpets and Provides a Digital Market for Purchesing These Extrovagant ArtPieces.", image = "viracoin.JPG", title = "ViraCoin", url = "http://viracoin2.qmak.ir/" }, new Project() { category = "Monitoring and Management Software for High Voltage Switches for Bakhtar Regional Electric Co.", image = "bakhtar.jpg", title = "Switch Manager", url = "http://brec.ir/en" }, new Project() { category = "a simple implementation of generic smart pointers for C++ programming language based on reference counting. This library can simply address memory leak issues for C++ language.", image = "smartpointer.JPG", title = "C++ Smart Pointers", url = "https://github.com/FIVIL/smart-pointer" } } }, resume = new Resume() { education = new List <Education>() { new Education() { degree = "BSc, Software Engineering", school = "K. N. Toosi University of Technology", graduated = "2014–2019", description = "BSc Project Title: Design and Implementation of a New Cryptocurrency(ParsiCoin) Using Directed acyclic graph(DAG) and blockchain technology. Supervisor: Saeed Sedighian Kashi", gpa = "Cumulative GPA:15.16/20 (75.8 %)", courses = @"Java (20/20), Circuit Design Using VHDL (20/20), Operation Systems (19.2/20) Programming Languages Design (19.1/20), Understanding Assembly Language (18.5/20) Data Structures (17.5/20), Artificial Intelligence & Expert Systems (17.4/20)" } }, work = new List <Work>() { new Work() { company = "Raya Exchange", description = "Rayex Exchange is a Uniqueu Trading Market for Different Cryptocurrencies, Which Facilitates Leverage Trading.", title = "CTO and Core developer", years = "September 2019–present", duties = "Monitoring Project Progress, Assigning Tasks to Other Project MembersDesigning System Architecture, Developing Back-End Services." } }, skillmessage = "", skills = new List <Skill>() { new Skill() { level = "90%", name = "C#" }, new Skill() { level = "80%", name = "F#" }, new Skill() { level = "80%", name = "Git" }, new Skill() { level = "75%", name = "Java" }, new Skill() { level = "75%", name = "Solidity" }, new Skill() { level = "75%", name = "C++" }, new Skill() { level = "60%", name = "JavaScript" }, new Skill() { level = "60%", name = "Python" }, new Skill() { level = "50%", name = "Go Lang" } }, consepts = @"Microservices, Object Oriented Programming, OOP Design Patterns, Functional Programming, Concurrency and Parallelism, Asynchronous programming, Version Control Systems (Git), Inversion of Control & Dependency Injection, TCP / IP Socket Programming, SOLID Principles, REST and SOAP Web Services, Event - Driven Programming, Test Driven Development, Continuous Integration & Continuous Delivery, Remote Procedure Call, MVC and MVVM Patterns.", databases = "Microsoft SQL Server, MongoDB, Redis, RavenDB, Elasticsearch.", designLang = "LaTex, HTML5, CSS3, XAML, Markdown.", frameworks = "Anular2+, Blazor, ASP.NET Core, WPF, ML.NET.", libraries = "ReactJS, SignalR, Ef Core, Serilog, XUnit, MOQ, SciPy, NumPy.", tools = "Visual Studio, Docker, Docker Compose, Kubernetes" }, teachingExpreiences = new TeachingExpreiences() { expreiences = new List <TeachingExpreience>() { new TeachingExpreience() { course = "Compilers", institue = "KNTU", instructor = "Seyed Hossein Khasteh", title = "Teaching assistant", year = "Spring 2018" }, new TeachingExpreience() { course = "Data Structure", institue = "KNTU", instructor = "Saeed Farzi", title = "Teaching assistant", year = "Spring 2017" }, new TeachingExpreience() { course = "Understanding Databases", institue = "KNTU", instructor = "Saeed Farzi", title = "Teaching assistant", year = "Fall 2017" }, new TeachingExpreience() { course = "Understanding Assembly Language", institue = "KNTU", instructor = "Hoda Roodaki", title = "Teaching assistant", year = "Spring 2016 -Fall2017" }, new TeachingExpreience() { course = "Programming with C", institue = "KNTU", instructor = "Hoda Roodaki", title = "Teaching assistant", year = "Fall 2015" } }, talks = new List <Talk>() { new Talk() { description = "Introduction to blockchain for new software students at K. N. Toosi University of Technology.", image = "Blockchain.JPG", link = "https://www.slideshare.net/HamedMohamadi4/blockchain-101-177784620", subject = "Blockchain 101" } } } }; return(Ok(rd)); }
public abstract MemoryStream CreateDocument(IEnumerable <IResumeSection> resumeSections, ResumeData data);
public override MemoryStream CreateDocument(IEnumerable <IResumeSection> resumeSections, ResumeData data) { var memoryStream = new MemoryStream(); using (var wordDocument = WordprocessingDocument.Create(memoryStream, WordprocessingDocumentType.Document)) { mainDocumentPart = wordDocument.AddMainDocumentPart(); // set document settings var documentSettingsPart = mainDocumentPart.AddNewPart <DocumentSettingsPart>(); documentSettingsPart.Settings = new Settings(new EvenAndOddHeaders()); // set headers and footers var wordBrandingHelper = new WordBranding(mainDocumentPart); wordBrandingHelper.AddHeadersAndFooters(); styleDefinitionsPart = mainDocumentPart.AddNewPart <StyleDefinitionsPart>(); GenerateStyleDefinitions(styleDefinitionsPart); numberingDefinitionsPart = mainDocumentPart.AddNewPart <NumberingDefinitionsPart>(); numberingDefinitionsPart.Numbering = new Numbering(); mainDocumentPart.Document = new Document(); body = mainDocumentPart.Document.AppendChild(new Body()); base.RenderElements(resumeSections, data); // apply sections to the document - sections must describe what headers and footers are present body.AppendChild(wordBrandingHelper.CreateSections()); // add numbering instances to the numbering sections. Must be all abstract first, followed by all numbering instances. // hence it is moved out up here. numberingDefinitionsPart.Numbering.Append(abstractNumberingInstances); numberingDefinitionsPart.Numbering.Append(numberingInstances); } memoryStream.Position = 0; return(memoryStream); }
public void Update(string id, ResumeData resume) { _resumes.ReplaceOne(res => res.Id == id, resume); }
public ResumeData Create(ResumeData resume) { _resumes.InsertOne(resume); return(resume); }