public async Task <ProjectJobDetail> AddProjectJob(long projectId, string projectJobName, string userId)
        {
            ProjectJobDetail projectJobObj = new ProjectJobDetail()
            {
                ProjectId      = projectId,
                ProjectJobName = projectJobName,
                CreatedDate    = DateTime.UtcNow,
                IsDeleted      = false,
                CreatedById    = userId
            };

            await _dbContext.ProjectJobDetail.AddAsync(projectJobObj);

            await _dbContext.SaveChangesAsync();

            if (projectJobObj.ProjectJobId != 0)
            {
                // update project job code
                projectJobObj.ProjectJobCode = await GetProjectJobCode(projectJobObj);

                _dbContext.ProjectJobDetail.Update(projectJobObj);
                await _dbContext.SaveChangesAsync();
            }
            else
            {
                throw new Exception("Project Job can not be created");
            }

            return(projectJobObj);
        }
        public async Task <ProjectJobDetail> IfExistProjectJob(string item)
        {
            ProjectJobDetail ifJobExist = await _dbContext.ProjectJobDetail
                                          .FirstOrDefaultAsync(x =>
                                                               x.ProjectJobName == item &&
                                                               x.IsDeleted == false);

            return(ifJobExist);
        }
Ejemplo n.º 3
0
        public async Task <string> GetProjectJobCode(ProjectJobDetail model)
        {
            ProjectDetail projectDetail = await _dbContext.ProjectDetail.FirstOrDefaultAsync(x => x.ProjectId == model.ProjectId &&
                                                                                             x.IsDeleted == false);

            long projectjobCount = await _dbContext.ProjectJobDetail.LongCountAsync(x => x.ProjectId == model.ProjectId &&
                                                                                    x.IsDeleted == false);

            return(ProjectUtility.GenerateProjectJobCode(projectDetail.ProjectCode, projectjobCount++));
        }
Ejemplo n.º 4
0
        public async Task <ApiResponse> Handle(AddEditProjectJobDetailCommand request, CancellationToken cancellationToken)
        {
            ApiResponse response = new ApiResponse();

            try
            {
                if (request.ProjectId != 0)
                {
                    ProjectJobDetail obj = _mapper.Map <AddEditProjectJobDetailCommand, ProjectJobDetail>(request);

                    if (request.ProjectJobId == 0)
                    {
                        obj.CreatedDate = request.CreatedDate;
                        obj.IsDeleted   = false;
                        obj.CreatedById = request.CreatedById;

                        await _dbContext.ProjectJobDetail.AddAsync(obj);

                        await _dbContext.SaveChangesAsync();

                        if (obj.ProjectJobId != 0)
                        {
                            // update project job code
                            obj.ProjectJobCode = await _iProjectServices.GetProjectJobCode(obj);

                            await _dbContext.SaveChangesAsync();
                        }
                    }
                    else
                    {
                        ProjectJobDetail projectJobDetail = await _dbContext.ProjectJobDetail.FirstOrDefaultAsync(x => x.IsDeleted == false &&
                                                                                                                  x.ProjectJobId == request.ProjectJobId);

                        if (projectJobDetail != null)
                        {
                            projectJobDetail.ProjectJobCode = obj.ProjectJobCode;
                            projectJobDetail.ProjectJobName = obj.ProjectJobName;
                            projectJobDetail.ProjectJobId   = obj.ProjectJobId;
                            projectJobDetail.ProjectId      = obj.ProjectId;
                            obj.ModifiedById = request.ModifiedById;
                            obj.ModifiedDate = request.ModifiedDate;
                            obj.IsDeleted    = false;
                            await _dbContext.SaveChangesAsync();
                        }
                    }

                    response.StatusCode = StaticResource.successStatusCode;
                    response.Message    = "Success";
                }
                else
                {
                    response.StatusCode = StaticResource.projectNotFound;
                }
            }
            catch (Exception ex)
            {
                response.StatusCode = StaticResource.failStatusCode;
                response.Message    = StaticResource.SomethingWrong + ex.Message;
            }
            return(response);
        }