public async Task ChangeStatus(ChangeCampaignSdrStatusInputDto request) { var specs = new GetExistingCampaignAssignmentSpecification(request.CampaignId, request.UserProfileId); var campaignAssignment = await _unitOfWork.Repository <CampaignAssignment>().GetEntityWithSpec(specs); campaignAssignment.StatusId = request.StatusId; //Update _unitOfWork.Repository <CampaignAssignment>().Update(campaignAssignment); await _unitOfWork.Complete(); }
public async Task <IActionResult> ChangeAssignedSdrStatus([FromBody] ChangeCampaignSdrStatusInputDto request) { try { var validationResponse = await _campaignAssignmentService.ValidateChangeStatusInput(request); if (!validationResponse.IsSuccess) { return(BadRequest(new ApiResponse(validationResponse.StatusCode, validationResponse.Message))); } await _campaignAssignmentService.ChangeStatus(request); return(Ok(new ApiResponse(200, "Success"))); } catch { return(BadRequest(new ApiResponse(400, "Something went wrong."))); } }
public async Task <ValidationOutputDto> ValidateChangeStatusInput(ChangeCampaignSdrStatusInputDto request) { var campaign = await _unitOfWork.Repository <Campaign>().GetByIdAsync(request.CampaignId); if (campaign == null) { return new ValidationOutputDto { IsSuccess = false, Message = "Campaign is not existing.", StatusCode = 400 } } ; var userProfile = await _unitOfWork.Repository <UserProfile>().GetByIdAsync(request.UserProfileId); if (userProfile == null) { return new ValidationOutputDto { IsSuccess = false, Message = "User is not existing.", StatusCode = 400 } } ; //Check if status is valid var exists = Enum.IsDefined(typeof(AssignedSdrStatus), request.StatusId); if (!exists) { return new ValidationOutputDto { IsSuccess = false, Message = "StatusId is not valid.", StatusCode = 400 } } ; var specs = new GetExistingCampaignAssignmentSpecification(request.CampaignId, request.UserProfileId); var campaignAssignment = await _unitOfWork.Repository <CampaignAssignment>().GetEntityWithSpec(specs); if (campaignAssignment == null) { return new ValidationOutputDto { IsSuccess = false, Message = "User is not assigned to this campaign.", StatusCode = 400 } } ; return(new ValidationOutputDto { IsSuccess = true, Message = string.Empty, StatusCode = 200 }); } } }