public async Task <ApiResponse> AddEditProjectProgram(ProjectProgramModel model, string UserId) { ApiResponse response = new ApiResponse(); try { if (model != null) { var existRecord = await _dbContext.ProjectProgram.FirstOrDefaultAsync(x => x.IsDeleted == false && x.ProjectId == model.ProjectId); if (existRecord == null) { ProjectProgram obj = new ProjectProgram(); obj.ProjectId = model.ProjectId; obj.ProgramId = model.ProgramId; obj.IsDeleted = false; obj.CreatedById = UserId; obj.CreatedDate = DateTime.UtcNow; await _dbContext.ProjectProgram.AddAsync(obj); await _dbContext.SaveChangesAsync(); } else { if (existRecord != null) { existRecord.ProjectId = model.ProjectId; existRecord.ProgramId = model.ProgramId; existRecord.IsDeleted = false; existRecord.ModifiedById = UserId; existRecord.ModifiedDate = DateTime.UtcNow; await _dbContext.SaveChangesAsync(); } } response.StatusCode = 200; response.Message = "Success"; } else { throw new Exception("Project Program Not Selected"); } } catch (Exception ex) { response.StatusCode = StaticResource.failStatusCode; response.Message = StaticResource.SomethingWrong + ex.Message; } return(response); }
public async Task <ApiResponse> Handle(AddProgramDetailCommand request, CancellationToken cancellationToken) { ApiResponse response = new ApiResponse(); if (request != null && !string.IsNullOrWhiteSpace(request.ProgramName)) { long LatestCodeId = 0; var code = string.Empty; try { ProgramDetail obj = _mapper.Map <AddProgramDetailCommand, ProgramDetail>(request); var data = await _dbContext.ProgramDetail.FirstOrDefaultAsync(x => x.IsDeleted == false && x.ProgramName.Trim().ToLower() == request.ProgramName.Trim().ToLower()); // Contains(model.ProgramName); if (data == null) { var ProgramDetail = await _dbContext.ProgramDetail .OrderByDescending(x => x.ProgramId) .FirstOrDefaultAsync(x => x.IsDeleted == false); if (ProgramDetail == null) { LatestCodeId = 1; code = ProjectUtility.GenerateCode(LatestCodeId); } else { LatestCodeId = ProgramDetail.ProgramId + 1; code = ProjectUtility.GenerateCode(LatestCodeId); } obj.ProgramName = request.ProgramName; obj.IsDeleted = false; obj.ProgramCode = code; obj.CreatedById = request.CreatedById; obj.CreatedDate = DateTime.UtcNow; await _dbContext.ProgramDetail.AddAsync(obj); await _dbContext.SaveChangesAsync(); if (obj.ProgramId != 0) { ProjectProgramModel projectProgramModel = new ProjectProgramModel { ProgramId = obj.ProgramId, ProjectId = request.ProjectId.Value, ProjectProgramId = 0 }; var addEditProjectProgram = await _iProjectServices.AddEditProjectProgram(projectProgramModel, request.CreatedById); if (addEditProjectProgram.StatusCode == 200) { response.data.ProgramDetail = obj; response.StatusCode = StaticResource.successStatusCode; response.Message = "Success"; } else { throw new Exception("Project Program could not be saved"); } } } else { response.StatusCode = StaticResource.NameAlreadyExist; response.Message = StaticResource.ListNameAlreadyExist; } } catch (Exception ex) { response.StatusCode = StaticResource.failStatusCode; response.Message = StaticResource.SomethingWrong + ex.Message; } } else if (request != null && string.IsNullOrWhiteSpace(request.ProgramName)) {//check for emptystring response.StatusCode = StaticResource.notValid; response.Message = StaticResource.validData; } else if (request == null) { response.StatusCode = StaticResource.NameAlreadyExist; } return(response); }