public async Task <CampaignAssignment> GetExistingCampaignAssignment(int campaignId, int userProfileId) { var specs = new GetExistingCampaignAssignmentSpecification(campaignId, userProfileId); var campaignAssignment = (await _unitOfWork.Repository <CampaignAssignment>().ListAsync(specs)).FirstOrDefault(); return(campaignAssignment); }
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 <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 }); } } }