コード例 #1
0
        //--------------- METHODS -----------------
        /// <summary>
        /// Creates a new <see cref="JobPosition"/> using the <see cref="CreateJobPositionServiceModel"/>.
        /// If such <see cref="JobPosition"/> already exists in the database, fetches it's (int)<c>Id</c> and returns it.
        /// If such <see cref="JobPosition"/> doesn't exist in the database, adds it and return it's (int)<c>Id</c>.
        /// </summary>
        /// <param name="model">Service model with <c>Name</c> and a collection of <c>Qualifications</c></param>
        /// <returns>Job Position ID</returns>
        public async Task <int> CreateAsync(CreateJobPositionServiceModel model)
        {
            int jobPositionId = this.dbContext.JobPositions.Where(x => x.Name == model.Name)
                                .Select(x => x.Id)
                                .FirstOrDefault();

            if (jobPositionId != 0)   // If jobPositionId is different than 0 (int default value), jobPosition with such name already exists, so return it's id.
            {
                return(jobPositionId);
            }

            JobPosition jobPosition = new JobPosition
            {
                Name = model.Name,
            };

            foreach (var qualification in model.Qualifications)
            {
                await this.dbContext.JobPositionQualifications.AddAsync(new JobPositionQualification
                {
                    JobPosition     = jobPosition,
                    QualificationId = qualification.Id,
                });
            }

            // Adds job position without any qualifications
            if (model.Qualifications.Count() == 0)
            {
                await this.dbContext.JobPositions.AddAsync(jobPosition);
            }

            await this.dbContext.SaveChangesAsync();

            return(jobPosition.Id);
        }
コード例 #2
0
        public async Task <IActionResult> CreateJobPosition(JobPositionInputModel model)
        {
            this.InitializeAndFillUnifiedModel();

            if (!this.ModelState.IsValid)
            {
                return(this.View("Create", this.unifiedModel));
            }

            var qualifications = new List <QualificationsDropdownServiceModel>();

            if (model.QualificationIds != null)
            {
                foreach (int qualificationId in model.QualificationIds)
                {
                    qualifications.Add(new QualificationsDropdownServiceModel
                    {
                        Id = qualificationId,
                    });
                }
            }

            var jobPosition = new CreateJobPositionServiceModel
            {
                Name           = model.JobPositionName,
                Qualifications = qualifications,
            };

            await this.jobPositionsService.CreateAsync(jobPosition);

            return(this.RedirectToAction("Create"));
        }