Пример #1
0
        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);
        }
Пример #4
0
        /// <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);
                }
            }
        }
Пример #5
0
        /// <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);
        }