public void GetCampaigns_SUCCESS() { //Arrange var targetResponse = new CampaignsResponse { Campaigns = new List <CampaignResponseWrapper> { new CampaignResponseWrapper { CampaignId = 123 } } }; _campaignsMockDbService.Setup(service => service.GetAllCampaigns()) .Returns(targetResponse); //Act var actionResult = _campaignsController.GetCampaigns(); //Assert var okObjectResult = actionResult as OkObjectResult; Assert.NotNull(okObjectResult); var resultResponse = okObjectResult.Value as CampaignsResponse; Assert.Equal(targetResponse, resultResponse); _campaignsMockDbService.Verify(service => service.GetAllCampaigns(), Times.Once); }
/// <summary> /// Zwraca listę kampanii /// </summary> /// <param name="request"></param> public CampaignsResponse Campaigns([FromBody] CampaignsRequest request) { var response = new CampaignsResponse(); try { var adminRole = User.IsInRole("Admin"); var id = adminRole && request.Id != 0 ? (int)objectRepository.MultimediaObjects.FirstOrDefault(it => it.Id == request.Id).UserId : User.GetUserIDInt(); var allCampaigns = campaignRepository.Campaigns .Where(it => it.UserId == id || (adminRole && request.Id == 0)) .Select(it => new CampToMM { Id = it.Id, ClickValue = it.ClickValue, EndDate = it.EndDate, IsActive = it.IsActive, Name = it.Name, ViewValue = it.ViewValue, StartDate = it.StartDate }); if (adminRole) { allCampaigns = campaignRepository.Campaigns.Select(it => new CampToMM { Id = it.Id, ClickValue = it.ClickValue, EndDate = it.EndDate, IsActive = it.IsActive, Name = it.Name, ViewValue = it.ViewValue, StartDate = it.StartDate }); } var connectedCampaigns = new List <int>(); if (request.Id > 0) { var campaignsToObject = campaignRepository.CampaignsToObject(request.Id); if (campaignsToObject.Any()) { connectedCampaigns.AddRange(campaignsToObject); } } response.AvailableCampaigns = new List <CampToMM>(); response.ConnectedCampaigns = new List <CampToMM>(); foreach (var item in allCampaigns) { if (connectedCampaigns.Contains(item.Id)) { response.ConnectedCampaigns.Add(item); } else { response.AvailableCampaigns.Add(item); } } } catch (Exception ex) { response.Errors.Add(new ApiValidationErrorItem { Message = ex.Message }); } response.Accepted = response.Errors.Count == 0; return(response); }
/// <summary> /// Pobranie listy kampanii dla zadanej kategorii /// </summary> /// <param name="request"></param> public CampaignsResponse Campaigns([FromBody] CampaignsRequest request) { var response = new CampaignsResponse(); try { var allCampaigns = campaignRepository.Campaigns.Select(it => new CampToCat { Id = it.Id, ClickValue = it.ClickValue, EndDate = it.EndDate, IsActive = it.IsActive, Name = it.Name, ViewValue = it.ViewValue, StartDate = it.StartDate }); var connectedCampaigns = new List <int>(); if (request.ObjectId > 0) { var campaignsToCategory = categoryRepository.Categories .Single(it => it.Id == request.ObjectId) .Campaigns.Select(it => it.Id); if (campaignsToCategory.Any()) { connectedCampaigns.AddRange(campaignsToCategory); } } response.AvailableCampaigns = new List <CampToCat>(); response.ConnectedCampaigns = new List <CampToCat>(); foreach (var item in allCampaigns) { if (connectedCampaigns.Contains(item.Id)) { response.ConnectedCampaigns.Add(item); } else { response.AvailableCampaigns.Add(item); } } } catch (Exception ex) { response.Errors.Add(new ApiValidationErrorItem { Message = ex.Message }); } response.Accepted = response.Errors.Count == 0; return(response); }
/// <summary> /// Loads the campaign with the specified id. /// </summary> /// <param name="campaignId">The campaign id.</param> /// <returns>Returns the campaign.</returns> private Campaign LoadCampaign(Guid?campaignId = null) { // Build up the request. CampaignsRequest campaignRequest = new CampaignsRequest() { SecurityContext = this.securityContext, Type = CampaignType.InWork, Language = "EN" }; if (campaignId.HasValue) // If there is a campaign id given, then load the campaign by its id. { campaignRequest.Id = campaignId.Value; CampaignsResponse response = this.serviceAgent.GetCampaigns(campaignRequest); if (response == null) { return(null); } else { return(response.Campaigns.FirstOrDefault()); } } else // If there is no campaign id given, then load the campaign by its name. { Campaign[] loadedCampaigns = this.serviceAgent.GetCampaigns(campaignRequest).Campaigns; Campaign existingCampaign = loadedCampaigns.FirstOrDefault(c => c.Name.Equals("My first campaign", StringComparison.OrdinalIgnoreCase)); if (existingCampaign == null) { return(loadedCampaigns.FirstOrDefault(c => c.Name.Equals(CAMPAIGN_NAME, StringComparison.OrdinalIgnoreCase))); } else { return(existingCampaign); } } }
/// <summary> /// Pobranie listy kampanii dla zadanej kategorii /// </summary> /// <param name="request"></param> public CampaignsResponse Campaigns([FromBody] BaseRequest request) { var response = new CampaignsResponse(); try { var allCampaigns = _campaignRepository.Campaigns.ToList(); var UserId = User.GetUserIDInt(); if (User.GetRole() != "Admin") { allCampaigns = _campaignRepository.Campaigns.Where(m => m.UserId == UserId).ToList(); } var device = _repository.Devices.FirstOrDefault(it => it.Id == request.Id); response.ConnectedCampaigns = device == null ? new List <CampaignItem>() : from dc in device.Campaigns select new CampaignItem { Id = dc.Id, Name = dc.Name, IsActive = dc.IsActive, StartDate = dc.StartDate, EndDate = dc.EndDate, ViewValue = dc.ViewValue, ClickValue = dc.ClickValue }; response.AvailableCampaigns = device == null ? from c in allCampaigns select new CampaignItem { Id = c.Id, Name = c.Name, IsActive = c.IsActive, StartDate = c.StartDate, EndDate = c.EndDate, ViewValue = c.ViewValue, ClickValue = c.ClickValue, IsBlocked = (request.Id != 0 && c.DeletedDevices.Any(it => it.Id == request.Id)) } : allCampaigns .Where(it => response.ConnectedCampaigns.All(c => c.Id != it.Id)) .Select(c => new CampaignItem { Id = c.Id, Name = c.Name, IsActive = c.IsActive, StartDate = c.StartDate, EndDate = c.EndDate, ViewValue = c.ViewValue, ClickValue = c.ClickValue, IsBlocked = (request.Id != 0 && c.DeletedDevices.Any(it => it.Id == request.Id)) }); } catch (Exception ex) { response.Errors.Add(new ApiValidationErrorItem { Message = ex.Message }); } response.Accepted = response.Errors.Count == 0; return(response); }