//[HttpGet("GetRequestAdoProjectAccess/{id}")] public async Task <ActionResult <AdoProjectAccessDto> > GetRequestAdoProjectAccess(int id) { if (id < 1) { return(BadRequest()); } try { _logger.LogInformation(ApiLogEvents.GetItem, $"{nameof(GetRequestAdoProjectAccess)} with {id} Started"); var repoObj = await _repository.GetId(id).ConfigureAwait(false); if (repoObj == null) { return(NotFound()); } //_mapper.Map(repoObj, result); var result = _mapper.Map <AdoProjectAccessDto>(repoObj); return(result); } catch (Exception ex) { _logger.LogError(ex, nameof(GetRequestAdoProjectAccess), id); return(StatusCode(StatusCodes.Status500InternalServerError, ex?.Message)); } }
public async Task <List <AdoProjectAccess> > Handle(ApproveRejectAdoProjectAccessIdsCommand request, CancellationToken cancellationToken) { try { _adoProjectAccessRepository.DatabaseContext.ChangeTracker.Clear(); List <AdoProjectAccess> created = new(); StringBuilder warnings = new(); if (request.IdsList.IsNullOrEmptyCollection()) { return(null); } AdoProjectAccess origEntity = null; foreach (var id in request.IdsList) { try { origEntity = null; origEntity = await _adoProjectAccessRepository.GetId(id); if (request.Reject) { //2. Update Db origEntity.Status = Status.Rejected; created.Add(origEntity); } else { //1. create Proj //var mapped = _mapper.Map<AdoModels.ProjectAdo>(origEntity); var sec = await _projectAdoServices.AddUser(origEntity.Organization, origEntity.Name, origEntity.CreatedBy); //2. Update Db origEntity.Status = Status.Completed; created.Add(origEntity); } _adoProjectAccessRepository.Update(origEntity, _userId); if (await _adoProjectAccessRepository.SaveChangesAsync() && origEntity.Status == Status.Completed) { //3. create record in history DB //await _adoProjectHistoryRepository.Create(origEntity.Id, IAdoProjectHistoryRepository.Operation_Request_Completed, request.UserId); //4. Send email } } catch (Exception ex) { warnings.Append($"Error approving Id: {origEntity?.Id}, {nameof(origEntity.Name)}: {origEntity?.Name}, {ex.Message}"); } } if (warnings.Length > 0) { _logger.LogWarning($"{nameof(CreateApprovedAdoProjectIdsCommandHandler)} warnings to report: {warnings}"); } return(created); } catch (Exception ex) { //this shouldn't stop the API from doing else so this can be logged _logger.LogError($"{nameof(CreateApprovedAdoProjectIdsCommandHandler)} failed due to: {ex.Message}"); } return(null); }