예제 #1
0
        public IDictionary <string, string> Build(DtoResume resume)
        {
            var dict = new Dictionary <string, string>();

            if (resume.Applicant != null)
            {
                var applicantDict = CreateApplicantDictionary(resume.Applicant);
                foreach (var attr in applicantDict)
                {
                    dict.TryAdd(attr.Key, attr.Value);
                }
            }

            //TODO образование и опыт
            dict.Add("Должность", resume.Title);
            dict.Add("Город", resume.Area?.Name);
            dict.Add("Специализация", string.Join("; ", resume.Specializations?.Select(x => x.Name)));
            dict.Add("Дополнительная информация", resume.AdditionalInfo);
            dict.Add("Готовность к командировкам", resume.BusinessTripReadiness?.Name);
            dict.Add("Гражданство", string.Join("; ", resume.Citizenship?.Select(x => x.Name)));
            dict.Add("Категории водительских прав", string.Join("; ", resume.DrivingLicenseTypes?.Select(x => x.Name)));
            dict.Add("Наличие транспорта", resume.HasVehicle ? "+" : "-");
            dict.Add("Владение языками", string.Join("; ", resume.Languages?.Select(x => $"{x.Language.Name}: {x.Level.Name}")));
            dict.Add("Тип занятости", string.Join("; ", resume.Employments?.Select(x => x.Name)));
            dict.Add("Возможность переезда", string.Join("; ", resume.RelocationPossibility?.Select(x => $"{x.Area.Name}: {x.RelocationType.Name}")));
            dict.Add("Заработная плата", resume.Salary == null ? string.Empty : $"{resume.Salary.From} - {resume.Salary.To}");
            dict.Add("Валюта", resume.Salary?.Currency?.Name);
            dict.Add("Расписание", string.Join("; ", resume.Schedules?.Select(x => x.Name)));
            dict.Add("Навыки", string.Join("; ", resume.Skills?.Select(x => x.Name)));
            dict.Add("Разрешение на работу", string.Join("; ", resume.WorkTicket?.Select(x => x.Name)));
            dict.Add("Время проезда до работы", resume.TravelTime?.Name);

            return(dict);
        }
예제 #2
0
        public IDictionary <string, string> Build(DtoResume resume)
        {
            var dict = new Dictionary <string, string>();

            dict.Add("Должность", "Должность");
            dict.Add("Город", "Город");
            dict.Add("Специализация", "Специализация");
            dict.Add("ФИО", "ФИО");
            dict.Add("Дата рождения", "Дата рождения");
            dict.Add("Пол", "Пол");
            dict.Add("Email", "Email");

            return(dict);
        }
예제 #3
0
        public async Task <IActionResult> Post([FromBody] DtoResume dto)
        {
            var entity = Mapper.Map <Resume>(dto);

            entity.CreatedAt = DateTime.UtcNow;
            entity.IsPremium = false;

            _context.Resumes.Add(entity);

            await _context
            .SaveChangesAsync()
            .ConfigureAwait(false);

            return(Ok(entity.Id));
        }
예제 #4
0
        public async Task <IActionResult> Update([FromBody] DtoResume dto, [FromRoute] long id)
        {
            var template = Mapper.Map <Resume>(dto);

            template.UpdatedAt = DateTime.UtcNow;
            template.CreatedAt = DateTime.UtcNow;
            template.IsPremium = false;

            template.Id = id;

            await _context.Resumes
            .Where(x => x.Id == id)
            .UpdateFromQueryAsync(_ => template)
            .ConfigureAwait(false);

            return(Ok(id));
        }
예제 #5
0
        public async Task <Stream> ExportAsync(DtoResume resume)
        {
            var dict = _modelBuilder.Build(resume);

            var result = await _engine.CompileRenderAsync(_viewPath, dict);

            var report = await _reportMVCService.RenderAsync(new RenderRequest()
            {
                Template = new Template
                {
                    Content = result,
                    Engine  = Engine.None,
                    Recipe  = Recipe.ChromePdf
                }
            });

            return(report.Content);
        }