Пример #1
0
        private async Task InsertOrUpdateAttachments(List <string> attachments, long candidateId)
        {
            if (attachments != null && attachments.Count > 0)
            {
                var typeAccept = Enum.GetValues(typeof(AttachmentTypeEnum))
                                 .Cast <AttachmentTypeEnum>()
                                 .Select(v => v.ToString())
                                 .ToList();

                List <long> attachmentInserts = new List <long>();

                foreach (var item in attachments)
                {
                    var fileExtension = Path.GetExtension(item);

                    if (fileExtension.ToLower() != ".png" && fileExtension.ToLower() != ".jpg")
                    {
                        throw new UserFriendlyException(ErrorCodes.NotAcceptable.FileNameExtensions);
                    }

                    attachmentInserts.Add(await WorkScope.InsertOrUpdateAndGetIdAsync(new CVAttachments
                    {
                        Path          = item,
                        Type          = (AttachmentTypeEnum)Enum.Parse(typeof(AttachmentTypeEnum), fileExtension.Replace(".", "").ToUpper()),
                        CvcandidateId = candidateId
                    }));
                }

                await WorkScope.DeleteAsync <CVAttachments>(at => at.CvcandidateId == candidateId && !attachmentInserts.Contains(at.Id));
            }
        }
Пример #2
0
        public async Task InsertOrUpdateCandidate(CandidateDto input)
        {
            var currentUser = await GetCurrentUserAsync();

            if (!(await UserManager.IsInRoleAsync(currentUser, StaticRoleNames.Host.HR) || await UserManager.IsInRoleAsync(currentUser, StaticRoleNames.Host.Admin)))
            {
                throw new UserFriendlyException(ErrorCodes.Forbidden.AddOrEditCandidate);
            }

            if (input.Id != 0)
            {
                var interviewers = WorkScope.GetAll <InterviewCandidates>().Where(c => c.CvcandidateId == input.Id.Value);
                foreach (var inter in interviewers)
                {
                    await WorkScope.GetRepo <InterviewCandidates, long>().DeleteAsync(inter);
                }

                var skills = WorkScope.GetAll <CVSkills>().Where(c => c.CvcandidateId == input.Id.Value);
                foreach (var skill in skills)
                {
                    await WorkScope.GetRepo <CVSkills, long>().DeleteAsync(skill);
                }
            }

            var candidateId = await WorkScope.InsertOrUpdateAndGetIdAsync(ObjectMapper.Map <CVCandidates>(input));

            if (input.Attachments != null && input.Attachments.Count > 0)
            {
                await InsertOrUpdateAttachments(input.Attachments, candidateId);
            }
        }
Пример #3
0
        public async Task UpdateWorkingExperience(WorkingExperienceDto input)
        {
            if (AbpSession.UserId != input.UserId)
            {
                throw new UserFriendlyException(ErrorCodes.Forbidden.EditOtherProfile);
            }

            await WorkScope.InsertOrUpdateAndGetIdAsync(ObjectMapper.Map <EmployeeWorkingExperiences>(input));
        }