public async Task <ApiResponse> Handle(AddJobHiringDetailCommand request, CancellationToken cancellationToken)
        {
            ApiResponse response = new ApiResponse();

            try
            {
                var jobhiringinfo = await _dbContext.JobHiringDetails.FirstOrDefaultAsync(x => x.JobCode == request.JobCode);

                if (jobhiringinfo == null)
                {
                    JobHiringDetails obj = _mapper.Map <JobHiringDetails>(request);
                    obj.IsDeleted   = false;
                    obj.CreatedById = request.CreatedById;
                    obj.CreatedDate = request.CreatedDate;
                    await _dbContext.JobHiringDetails.AddAsync(obj);

                    response.StatusCode = StaticResource.successStatusCode;
                    response.Message    = "Success";
                }
                else
                {
                    response.StatusCode = StaticResource.MandateNameAlreadyExistCode;
                    response.Message    = StaticResource.MandateNameAlreadyExist;
                }
            }
            catch (Exception ex)
            {
                response.StatusCode = StaticResource.failStatusCode;
                response.Message    = StaticResource.SomethingWrong + ex.Message;
            }
            return(response);
        }
        public async Task <ApiResponse> Handle(GetJobCodeQuery request, CancellationToken cancellationToken)
        {
            ApiResponse response = new ApiResponse();

            try
            {
                JobHiringDetails jobHiringDetails = await _dbContext.JobHiringDetails.OrderByDescending(x => x.CreatedDate).FirstOrDefaultAsync(x => x.OfficeId == request.OfficeId);

                if (jobHiringDetails != null && jobHiringDetails.JobCode != null)
                {
                    //getting the latest Job Code and finding the max number from it
                    int count = Convert.ToInt32(jobHiringDetails.JobCode.Substring(2));

                    response.data.JobCode = "JC" + String.Format("{0:D4}", ++count);
                }
                else
                {
                    response.data.JobCode = "JC" + String.Format("{0:D4}", 1);
                }

                response.StatusCode = StaticResource.successStatusCode;
                response.Message    = "Success";
            }
            catch (Exception ex)
            {
                response.StatusCode = StaticResource.failStatusCode;
                response.Message    = ex.Message;
            }

            return(response);
        }
Пример #3
0
        public async Task <ApiResponse> Handle(AddProjectHiringRequestCommand request, CancellationToken cancellationToken)
        {
            ApiResponse response = new ApiResponse();

            try
            {
                ProjectHiringRequestDetail hiringRequestDeatil = new ProjectHiringRequestDetail()
                {
                    BasicPay        = request.BasicPay,
                    BudgetLineId    = request.BudgetLineId,
                    CreatedById     = request.CreatedById,
                    CreatedDate     = DateTime.UtcNow,
                    CurrencyId      = request.CurrencyId,
                    Description     = request.Description,
                    EmployeeID      = request.EmployeeID,
                    FilledVacancies = request.FilledVacancies,
                    GradeId         = request.GradeId,
                    IsCompleted     = request.IsCompleted,
                    IsDeleted       = false,
                    OfficeId        = request.OfficeId,
                    Position        = request.Position,
                    ProfessionId    = request.ProfessionId,
                    ProjectId       = request.ProjectId,
                    TotalVacancies  = request.TotalVacancies
                };
                await _dbContext.ProjectHiringRequestDetail.AddAsync(hiringRequestDeatil);

                await _dbContext.SaveChangesAsync();

                if (hiringRequestDeatil.HiringRequestId != 0)
                {
                    string           description = string.Empty;
                    JobHiringDetails jobDetail   = new JobHiringDetails();
                    if (!string.IsNullOrEmpty(request.Description))
                    {
                        description = request.Description.ToLower().Trim();
                        jobDetail   = await _dbContext.JobHiringDetails.FirstOrDefaultAsync(x => x.IsDeleted == false &&
                                                                                            x.JobDescription.ToLower().Trim() == description);
                    }
                    if (jobDetail == null)
                    {
                        jobDetail = new JobHiringDetails()
                        {
                            JobDescription  = request.Description,
                            ProfessionId    = request.ProfessionId,
                            OfficeId        = request.OfficeId,
                            IsActive        = true,
                            GradeId         = request.GradeId,
                            HiringRequestId = hiringRequestDeatil.HiringRequestId,
                            IsDeleted       = false,
                            CreatedById     = request.CreatedById,
                            CreatedDate     = DateTime.UtcNow,
                            Unit            = request.TotalVacancies.Value
                        };
                        await _dbContext.JobHiringDetails.AddAsync(jobDetail);

                        await _dbContext.SaveChangesAsync();

                        if (jobDetail.JobId != 0)
                        {
                            jobDetail.JobCode = "JC" + String.Format("{0:D4}", jobDetail.JobId);
                            await _dbContext.SaveChangesAsync();
                        }
                    }
                    else
                    {
                        throw new Exception("Job is already exist");
                    }
                }
                response.StatusCode = StaticResource.successStatusCode;
                response.Message    = "Success";
            }
            catch (Exception ex)
            {
                response.StatusCode = StaticResource.failStatusCode;
                response.Message    = ex.Message;
            }
            return(response);
        }
Пример #4
0
        public async Task <ApiResponse> Handle(EditHiringRequestDetailCommand request, CancellationToken cancellationToken)
        {
            ApiResponse response = new ApiResponse();

            try
            {
                string description = request.Description.ToLower().Trim();

                bool recordExists = await _dbContext.ProjectHiringRequestDetail.AnyAsync(x => x.IsDeleted == false &&
                                                                                         x.Description.ToLower().Trim() == description && x.HiringRequestId != request.HiringRequestId);

                if (!recordExists)
                {
                    ProjectHiringRequestDetail projectHiringRequest = await _dbContext.ProjectHiringRequestDetail
                                                                      .FirstOrDefaultAsync(x => x.HiringRequestId == request.HiringRequestId &&
                                                                                           x.IsDeleted == false);

                    projectHiringRequest.BasicPay        = request.BasicPay;
                    projectHiringRequest.BudgetLineId    = request.BudgetLineId;
                    projectHiringRequest.ModifiedById    = request.ModifiedById;
                    projectHiringRequest.ModifiedDate    = DateTime.UtcNow;
                    projectHiringRequest.CurrencyId      = request.CurrencyId;
                    projectHiringRequest.Description     = request.Description;
                    projectHiringRequest.EmployeeID      = request.EmployeeID;
                    projectHiringRequest.FilledVacancies = request.FilledVacancies;
                    projectHiringRequest.GradeId         = request.GradeId;
                    projectHiringRequest.IsCompleted     = request.IsCompleted;
                    projectHiringRequest.OfficeId        = request.OfficeId;
                    projectHiringRequest.Position        = request.Position;
                    projectHiringRequest.ProfessionId    = request.ProfessionId;
                    projectHiringRequest.ProjectId       = request.ProjectId;
                    projectHiringRequest.TotalVacancies  = request.TotalVacancies;
                    await _dbContext.SaveChangesAsync();

                    // Note : edit ProjectJob in old Ui
                    if (projectHiringRequest.HiringRequestId != 0)
                    {
                        JobHiringDetails jobDetail = await _dbContext.JobHiringDetails.FirstOrDefaultAsync(x => x.HiringRequestId == request.HiringRequestId &&
                                                                                                           x.IsDeleted == false);

                        if (jobDetail != null)
                        {
                            jobDetail.JobDescription  = request.Description;
                            jobDetail.ProfessionId    = request.ProfessionId;
                            jobDetail.OfficeId        = request.OfficeId;
                            jobDetail.IsActive        = true;
                            jobDetail.GradeId         = request.GradeId;
                            jobDetail.HiringRequestId = projectHiringRequest.HiringRequestId;
                            jobDetail.IsDeleted       = false;
                            jobDetail.ModifiedById    = request.ModifiedById;
                            jobDetail.ModifiedDate    = DateTime.UtcNow;
                            jobDetail.Unit            = request.TotalVacancies.Value;
                            await _dbContext.SaveChangesAsync();
                        }
                    }
                }
                else
                {
                    throw new Exception("Hiring Request is already exist");
                }
                response.StatusCode = StaticResource.successStatusCode;
                response.Message    = "Success";
            }
            catch (Exception ex)
            {
                response.StatusCode = StaticResource.failStatusCode;
                response.Message    = ex.Message;
            }
            return(response);
        }