public async Task <ValidationOutputDto> ValidateSaveInput(SaveContentInputDto request) { var campaign = await _unitOfWork.Repository <Campaign>().GetByIdAsync(request.CampaignId); if (campaign == null) { return new ValidationOutputDto { IsSuccess = false, StatusCode = 400, Message = "Campaign is not existing." } } ; return(new ValidationOutputDto { Message = string.Empty, StatusCode = 200, IsSuccess = true }); } }
public async Task <IActionResult> SaveOrUpdate([FromBody] SaveContentInputDto request) { try { var user = await _userManager.FindByEmailFromClaimsPrinciple(HttpContext.User); var validationResponse = await _contentService.ValidateSaveInput(request); if (!validationResponse.IsSuccess) { return(BadRequest(new ApiResponse(validationResponse.StatusCode, validationResponse.Message))); } await _contentService.SaveContent(request, user.Id.ToString()); return(Ok(new ApiResponse(200, "Success"))); } catch { return(BadRequest(new ApiResponse(400, "Something went wrong"))); } }
public async Task SaveContent(SaveContentInputDto request, string userId) { var getContentSpecs = new GetContentByCampaignIdSpecification(request.CampaignId); var content = await _unitOfWork.Repository <Content>().GetEntityWithSpec(getContentSpecs); if (content == null) { var contentRequest = new Content { InviteMessage = request.InviteMessage, Message1 = request.Message1, Message2 = request.Message2, Message3 = request.Message3, Message4 = request.Message4, Message5 = request.Message5, CampaignId = request.CampaignId, CreatedBy = userId, CreatedDate = DateTime.UtcNow }; _unitOfWork.Repository <Content>().Add(contentRequest); await _unitOfWork.Complete(); } else { content.InviteMessage = request.InviteMessage; content.Message1 = request.Message1; content.Message2 = request.Message2; content.Message3 = request.Message3; content.Message4 = request.Message4; content.Message5 = request.Message5; content.UpdatedBy = userId; content.UpdatedDate = DateTime.UtcNow; _unitOfWork.Repository <Content>().Update(content); await _unitOfWork.Complete(); } }