public async Task <ApiResponse> Handle(DeleteProjectDetailCommand request, CancellationToken cancellationToken) { ApiResponse response = new ApiResponse(); DbContext db = _dbContext; using (IDbContextTransaction tran = db.Database.BeginTransaction()) { try { ProjectPhaseTime _ProjectPhase = new ProjectPhaseTime(); var ProjectInfo = await _dbContext.ProjectDetail.FirstOrDefaultAsync(c => c.ProjectId == request.ProjectId); ProjectInfo.IsDeleted = true; ProjectInfo.ModifiedById = request.ModifiedById; ProjectInfo.ModifiedDate = DateTime.UtcNow; _dbContext.ProjectDetail.Update(ProjectInfo); await _dbContext.SaveChangesAsync(); _ProjectPhase.IsDeleted = true; _ProjectPhase.ModifiedById = request.ModifiedById; _ProjectPhase.ModifiedDate = DateTime.UtcNow; _dbContext.ProjectPhaseTime.Update(_ProjectPhase); await _dbContext.SaveChangesAsync(); response.StatusCode = StaticResource.successStatusCode; response.Message = "Success"; tran.Commit(); } catch (Exception ex) { tran.Rollback(); response.StatusCode = StaticResource.failStatusCode; response.Message = StaticResource.SomethingWrong + ex.Message; } } return(response); }
public async Task <ApiResponse> Handle(AddEditProjectDetailCommand request, CancellationToken cancellationToken) { ApiResponse response = new ApiResponse(); ProjectPhaseTime _ProjectPhase = new ProjectPhaseTime(); ProjectDetail _ProjectDetail = new ProjectDetail(); DbContext db = _dbContext; long LatestprojectId = 0; var projectcode = string.Empty; using (IDbContextTransaction tran = db.Database.BeginTransaction()) { try { if (request.ProjectId == 0) { var ProjectDetail = _dbContext.ProjectDetail .OrderByDescending(x => x.ProjectId) .FirstOrDefault(x => x.IsDeleted == false); if (ProjectDetail == null) { LatestprojectId = 1; projectcode = ProjectUtility.GenerateProjectCode(LatestprojectId); } else { LatestprojectId = ProjectDetail.ProjectId + 1; projectcode = ProjectUtility.GenerateProjectCode(LatestprojectId); } ProjectDetail obj = _mapper.Map <AddEditProjectDetailCommand, ProjectDetail>(request); obj.ProjectCode = projectcode; // ProjectDetail != null ? getProjectCode(ProjectDetail.ProjectId.ToString()) : getProjectCode("1"); obj.ProjectName = request.ProjectName; obj.ProjectDescription = request.ProjectDescription; obj.StartDate = DateTime.UtcNow; obj.EndDate = request.EndDate; obj.IsProposalComplate = request.IsProposalComplate; obj.ReviewerId = request.ReviewerId; obj.DirectorId = request.DirectorId; obj.ProjectPhaseDetailsId = (int)ProjectPhaseType.Planning; obj.IsDeleted = false; obj.IsActive = true; obj.CreatedById = request.CreatedById; obj.CreatedDate = DateTime.UtcNow; _dbContext.ProjectDetail.Add(obj); _dbContext.SaveChanges(); _ProjectPhase.ProjectId = LatestprojectId = obj.ProjectId; _ProjectPhase.ProjectPhaseDetailsId = (int)ProjectPhaseType.Planning; _ProjectPhase.PhaseStartData = DateTime.UtcNow; _ProjectPhase.IsDeleted = false; _ProjectPhase.CreatedById = request.CreatedById; _ProjectPhase.CreatedDate = DateTime.UtcNow; _dbContext.ProjectPhaseTime.Add(_ProjectPhase); _dbContext.SaveChanges(); response.data.ProjectDetail = obj; //don't remove this } else { ProjectDetail existProjectRecord = _dbContext.ProjectDetail.FirstOrDefault(x => x.IsDeleted == false && x.ProjectId == request.ProjectId); ProjectPhaseTime exstingProjectTimePhase = _dbContext.ProjectPhaseTime.FirstOrDefault(y => y.IsDeleted == false && y.ProjectId == request.ProjectId); if (existProjectRecord != null) { existProjectRecord.ProjectName = request.ProjectName; existProjectRecord.ProjectDescription = request.ProjectDescription; existProjectRecord.IsProposalComplate = request.IsProposalComplate; existProjectRecord.ReviewerId = request.ReviewerId; existProjectRecord.DirectorId = request.DirectorId; existProjectRecord.IsDeleted = false; existProjectRecord.ModifiedById = request.ModifiedById; existProjectRecord.ModifiedDate = DateTime.UtcNow; _dbContext.SaveChanges(); if (exstingProjectTimePhase != null) { _ProjectPhase.ProjectPhaseDetailsId = (int)ProjectPhaseType.Planning; _ProjectPhase.PhaseStartData = DateTime.UtcNow; _ProjectPhase.IsDeleted = false; _ProjectPhase.ModifiedById = request.ModifiedById; _ProjectPhase.ModifiedDate = DateTime.UtcNow; _dbContext.SaveChanges(); } //_uow.GetDbContext().SaveChanges(); LatestprojectId = request.ProjectId; } } response.StatusCode = StaticResource.successStatusCode; response.CommonId.Id = Convert.ToInt32(LatestprojectId); response.Message = "Success"; tran.Commit(); } catch (Exception ex) { tran.Rollback(); response.StatusCode = StaticResource.failStatusCode; response.Message = StaticResource.SomethingWrong + ex.Message; } } return(response); }