Esempio n. 1
0
        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.")));
            }
        }
Esempio n. 3
0
        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
            });
        }
    }
}