Exemplo n.º 1
0
        public void GetChart_VotesDetailsByTimeSelection_NotNullCampaignPieChart()
        {
            CampaignDetailsViewModel item = new CampaignDetailsViewModel
            {
                CampaignId   = 42,
                CampaignName = "BadBoy!",
                Selection    = ChartSelection.VotesDetailsByTime
            };
            Company comp = new Company
            {
                Name = "GoodBoy",
                Type = CompanyType.SendAndRecieve
            };
            string userId = "WhoIsGoodBoy?";

            mockUnitOfWork.Setup(m => m.Charts.Get(It.IsAny <Expression <Func <Company, bool> > >(), It.IsAny <Func <IQueryable <Company>,
                                                                                                                     IOrderedQueryable <Company> > >(), It.IsAny <string>()))
            .Returns(new List <Company> {
                comp
            });
            mockMapper.Setup(m => m.Map <Company, StackedChart>(It.Is <Company>(x => x == comp))).Returns(new StackedChart());

            var result = manager.GetChart(item, userId);

            Assert.That(result.StackedChart, Is.Not.Null);
        }
Exemplo n.º 2
0
        public void GetChart_IncorrectSelection_UnmodifiedViewModel()
        {
            CampaignDetailsViewModel item = new CampaignDetailsViewModel
            {
                CampaignId   = 42,
                CampaignName = "BadBoy!",
                Selection    = (ChartSelection)10
            };
            Company comp = new Company
            {
                Name = "GoodBoy",
                Type = CompanyType.SendAndRecieve
            };
            string userId = "WhoIsGoodBoy?";

            mockUnitOfWork.Setup(m => m.Charts.Get(It.IsAny <Expression <Func <Company, bool> > >(), It.IsAny <Func <IQueryable <Company>,
                                                                                                                     IOrderedQueryable <Company> > >(), It.IsAny <string>()))
            .Returns(new List <Company> {
                comp
            });
            mockMapper.Setup(m => m.Map <Company, CompaingPieChart>(It.Is <Company>(x => x == comp))).Returns(new CompaingPieChart());

            var result = manager.GetChart(item, userId);

            Assert.That(item, Is.SameAs(result));
        }
Exemplo n.º 3
0
        public void GetChart_CompanyWithVoting_CorrectType()
        {
            CampaignDetailsViewModel item = new CampaignDetailsViewModel
            {
                CampaignId   = 42,
                CampaignName = "BadBoy!",
                Selection    = ChartSelection.VotesDetails
            };
            Company comp = new Company
            {
                Name = "GoodBoy",
                Type = CompanyType.SendAndRecieve
            };
            string userId = "WhoIsGoodBoy?";

            mockUnitOfWork.Setup(m => m.Charts.Get(It.IsAny <Expression <Func <Company, bool> > >(), It.IsAny <Func <IQueryable <Company>,
                                                                                                                     IOrderedQueryable <Company> > >(), It.IsAny <string>()))
            .Returns(new List <Company> {
                comp
            });

            var result = manager.GetChart(item, userId);

            Assert.That(result.HaveVoting, Is.True);
        }
        public void GetCampaignDetailsByIdIsNullTest()
        {
            var campaignService   = new CampaignMockService();
            var campaignViewModel = new CampaignDetailsViewModel(campaignService);

            Assert.Null(campaignViewModel.Campaign);
        }
Exemplo n.º 5
0
        public static string GetMatchedAccountUrl(this IUrlHelper urlHelper, CampaignDetailsViewModel model, int type)
        {
            var queryParams = new Dictionary <string, string>();

            var parameters = new RouteValueDictionary();

            var accountTypes = type == 1 ? new List <AccountType>()
            {
                AccountType.Regular
            } : model.AccountTypes.Where(m => m != AccountType.Regular).ToList();

            for (int i = 0; i < accountTypes.Count; ++i)
            {
                parameters.Add("accountTypes[" + i + "]", accountTypes[i]);
            }
            if (model.CategoryIds.Count > 0)
            {
                for (int i = 0; i < model.CategoryIds.Count; ++i)
                {
                    parameters.Add("categoryid[" + i + "]", model.CategoryIds[i]);
                }
            }

            if (model.Gender.HasValue)
            {
                parameters.Add("gender", model.Gender.Value);
            }

            if (model.CityId.Count > 0)
            {
                for (int i = 0; i < model.CityId.Count; ++i)
                {
                    parameters.Add("cityid[" + i + "]", model.CityId[i]);
                }
            }
            if (model.AgeStart.HasValue && model.AgeEnd.HasValue)
            {
                parameters.Add("agestart", model.AgeStart.Value);
                parameters.Add("ageend", model.AgeEnd.Value);
            }

            if (model.CampaignAccounts.Count > 0)
            {
                for (int i = 0; i < model.CampaignAccounts.Count; ++i)
                {
                    parameters.Add("ignoreIds[" + i + "]", model.CampaignAccounts[i].Account.Id);
                }
            }

            parameters.Add("campaignid", model.Id);
            parameters.Add("campaignType", model.Type);

            /*
             * IEnumerable<AccountType> accountTypes, IEnumerable<int> categoryid, Gender? gender, int? cityid, int? agestart, int? ageend,
             *
             * string order, int page, int pagesize, IEnumerable<int> ignoreIds
             */

            return(urlHelper.Action("MatchedAccount", "AgencyCampaign", parameters));
        }
Exemplo n.º 6
0
        public void GetCampaignDetailsByIdIsNullTest()
        {
            Xamarin.Forms.DependencyService.RegisterSingleton <ISettingsService>(new MockSettingsService());
            Xamarin.Forms.DependencyService.RegisterSingleton <ICampaignService>(new CampaignMockService());
            var campaignViewModel = new CampaignDetailsViewModel();

            Assert.Null(campaignViewModel.Campaign);
        }
Exemplo n.º 7
0
        // GET: Campaigns/Campaigns/Details/5
        public ActionResult Details(int id)
        {
            Campaign campaign           = _db.Campaigns.Find(id);
            var      model              = new CampaignDetailsViewModel();
            var      campaignBasesStats = new EmailBasesCampaignStatsViewModel();
            var      campaignSalesStats = new SalesCampaignStatsViewModel();

            if (campaign == null)
            {
                return(HttpNotFound());
            }

            var list = _db.CampaignMembers.Where(cm => cm.CampaignId == id);

            switch (campaign.CampaignType)
            {
            case Campaign.CampaignTypeEnum.EmailBases:
                model = new CampaignDetailsViewModel
                {
                    Campaign                   = campaign,
                    EmailBasesStats            = campaignBasesStats.GetModel(id),
                    SalesStats                 = null,
                    NumberOfUnassignedEntities = model.GetUnassignedEntities(id),
                    NumberOfUnassignedEntitiesWithoutTelephone = model.GetUnassignedEntitiesWithoutTelephone(id),
                    AssignedMembers = list,
                    AssignedAgents  = model.GetAssignedAgentsInfo(id),
                    EmailsBasesEntityStatusStats              = model.GetEmailBasesEntityStats(id),
                    SalesOpportunitiesStatusStats             = null,
                    SalesLeadsStatusStats                     = null,
                    SalesGeneralStatus                        = null,
                    CampaignLeadsAgentEfficiencies            = null,
                    CampaignAttributes                        = campaign.CampaignAttributes,
                    NumberOfNewlyAcquiredReceivingInformation = _db.AcquireEmails.Count(ae => ae.RelatedCampaignId == id && ae.IsNewlyAcquired == true)
                };
                return(View(model));

            case Campaign.CampaignTypeEnum.Sales:
                model = new CampaignDetailsViewModel
                {
                    Campaign                   = campaign,
                    EmailBasesStats            = null,
                    SalesStats                 = campaignSalesStats.GetModel(id),
                    NumberOfUnassignedEntities = model.GetUnassignedEntities(id),
                    NumberOfUnassignedEntitiesWithoutTelephone = model.GetUnassignedEntitiesWithoutTelephone(id),
                    AssignedMembers = list,
                    AssignedAgents  = model.GetAssignedAgentsInfo(id),
                    EmailsBasesEntityStatusStats              = null,
                    SalesOpportunitiesStatusStats             = model.GetOpportunitiesSalesStatusStats(id),
                    SalesLeadsStatusStats                     = model.GetLeadsSalesStatusStats(id),
                    SalesGeneralStatus                        = model.GetSalesGeneralStatus(id),
                    CampaignLeadsAgentEfficiencies            = model.GetCampaignLeadsAgentEfficiencies(id),
                    CampaignAttributes                        = campaign.CampaignAttributes,
                    NumberOfNewlyAcquiredReceivingInformation = null
                };
                return(View(model));
            }
            return(View(model));
        }
Exemplo n.º 8
0
        public void GetChart_EmptyCampaignDetails_null()
        {
            CampaignDetailsViewModel item = null;
            string userId = "NotNull";

            var result = manager.GetChart(item, userId);

            Assert.That(result, Is.Null);
        }
        public async Task GetCampaignDetailsByIdIsNotNullTest()
        {
            var campaignService          = new CampaignMockService();
            var campaignDetailsViewModel = new CampaignDetailsViewModel(campaignService);

            await campaignDetailsViewModel.InitializeAsync(1);

            Assert.NotNull(campaignDetailsViewModel.Campaign);
        }
 /// <summary>
 /// Changes ChartSelection and redirects for ShowChart()
 /// </summary>
 /// <param name="campaignDetails"></param>
 /// <returns></returns>
 public IActionResult VotingByTime(CampaignDetailsViewModel campaignDetails)
 {
     if (ModelState.IsValid)
     {
         campaignDetails.Selection = ChartSelection.VotesDetailsByTime;
         return(RedirectToAction("ShowChart", "CampaignReporting", campaignDetails));
     }
     return(RedirectToAction("Index", "Company"));
 }
        public IActionResult GetChart(int campaignId)
        {
            var result = new CampaignDetailsViewModel()
            {
                Selection  = ChartSelection.MailingDetails,
                CampaignId = campaignId
            };

            return(RedirectToAction("ShowChart", result));
        }
Exemplo n.º 12
0
        public async Task GetCampaignDetailsByIdIsNotNullTest()
        {
            Xamarin.Forms.DependencyService.RegisterSingleton <ISettingsService>(new MockSettingsService());
            Xamarin.Forms.DependencyService.RegisterSingleton <ICampaignService>(new CampaignMockService());
            var campaignDetailsViewModel = new CampaignDetailsViewModel();

            await campaignDetailsViewModel.InitializeAsync(new Dictionary <string, string> {
                { nameof(Campaign.Id), "1" }
            });

            Assert.NotNull(campaignDetailsViewModel.Campaign);
        }
 /// <summary>
 /// Return view with chart
 /// </summary>
 /// <param name="campaignDetails"> Should contain CampaignId </param>
 public IActionResult ShowChart(CampaignDetailsViewModel campaignDetails)
 {
     if (ModelState.IsValid)
     {
         var userId = this.User.FindFirstValue(ClaimTypes.NameIdentifier);
         var result = chartsManager.GetChart(campaignDetails, userId);
         if (result == null)
         {
             return(NotFound());
         }
         return(View(result));
     }
     return(RedirectToAction("Index", "Company"));
 }
Exemplo n.º 14
0
        public void GetChart_EmptyUserId_null()
        {
            CampaignDetailsViewModel item = new CampaignDetailsViewModel
            {
                CampaignId   = 1,
                CampaignName = "name",
                Selection    = ChartSelection.MailingDetails
            };
            string userId = "";

            var result = manager.GetChart(item, userId);

            Assert.That(result, Is.Null);
        }
Exemplo n.º 15
0
        /// <summary>
        /// Get chart of specified type
        /// </summary>
        /// <param name="campaignDetails">Should contain campaignId and chart type</param>
        /// <param name="userId">Should not be null</param>
        /// <returns>Model correct chart selection, chart data, campaign name</returns>
        public CampaignDetailsViewModel GetChart(CampaignDetailsViewModel campaignDetails, string userId)
        {
            if (campaignDetails == null || string.IsNullOrEmpty(userId))
            {
                return(null);
            }

            var campaign = unitOfWork.Charts.Get(pcc => pcc.Id == campaignDetails.CampaignId &&
                                                 pcc.ApplicationGroup.ApplicationUsers.Any(au => au.Id == userId)).FirstOrDefault();

            if (campaign == null)
            {
                return(null);
            }

            campaignDetails.CampaignName = campaign.Name;
            if (campaign.Type == CompanyType.Send)
            {
                campaignDetails.HaveVoting = false;
                campaignDetails.Selection  = ChartSelection.MailingDetails;
            }
            else
            {
                campaignDetails.HaveVoting = true;
            }


            switch (campaignDetails.Selection)
            {
            case ChartSelection.VotesDetails:
                campaignDetails.PieChart = mapper.Map <Company, PieChart>(campaign);
                break;

            case ChartSelection.VotesDetailsByTime:
                campaignDetails.StackedChart = mapper.Map <Company, StackedChart>(campaign);
                break;

            case ChartSelection.MailingDetails:
                campaignDetails.CompaingPieChart = mapper.Map <Company, CompaingPieChart>(campaign);
                break;

            default:
                return(campaignDetails);
            }
            return(campaignDetails);
        }
Exemplo n.º 16
0
        public void GetChart_NonExistingCampaignId_null()
        {
            CampaignDetailsViewModel item = new CampaignDetailsViewModel
            {
                CampaignId   = 42,
                CampaignName = "name",
                Selection    = ChartSelection.MailingDetails
            };
            string userId = "WhoIsGoodBoy?";

            mockUnitOfWork.Setup(m => m.Charts.Get(It.IsAny <Expression <Func <Company, bool> > >(), It.IsAny <Func <IQueryable <Company>,
                                                                                                                     IOrderedQueryable <Company> > >(), It.IsAny <string>()))
            .Returns(new List <Company>());

            var result = manager.GetChart(item, userId);

            Assert.That(result, Is.Null);
        }
Exemplo n.º 17
0
        public CampaignDetailsViewModel GetExtendedCampaign(Campaign campaign, bool showLootApplyButton = false, bool showLootEditControls = false)
        {
            var players = _dbContext.Player.Where(p => p.SyndicateId == campaign.SyndicateId).OrderBy(p => p.Name).AsEnumerable();
            var model   = new CampaignDetailsViewModel
            {
                Campaign         = campaign,
                Players          = players,
                DifficultyLevels = EnumExtensions.ToDictionary <int>(typeof(Campaign.CampaignDifficulty)),
                Statuses         = EnumExtensions.ToDictionary <int>(typeof(Campaign.CampaignStatus)),
                Loot             = campaign.Loot == null ? null : campaign.Loot.Select(l => new LootItemViewModel {
                    Loot             = l,
                    ShowApplyButton  = showLootApplyButton,
                    ShowEditControls = showLootEditControls,
                    LootStatuses     = EnumExtensions.ToDictionary <int>(typeof(CampaignLoot.CampaignLootStatus)),
                    Players          = players,
                }),
                KnownEpics = _dbContext.Item.Where(i => i.Rarity == Item.ItemRarity.Epic),
            };

            return(model);
        }
Exemplo n.º 18
0
        public void GetChart_IncorrectCampaignName_CorrectCampaignName()
        {
            CampaignDetailsViewModel item = new CampaignDetailsViewModel
            {
                CampaignId   = 42,
                CampaignName = "BadBoy!",
                Selection    = ChartSelection.MailingDetails
            };
            Company comp = new Company
            {
                Name = "GoodBoy"
            };
            string userId = "WhoIsGoodBoy?";

            mockUnitOfWork.Setup(m => m.Charts.Get(It.IsAny <Expression <Func <Company, bool> > >(), It.IsAny <Func <IQueryable <Company>,
                                                                                                                     IOrderedQueryable <Company> > >(), It.IsAny <string>()))
            .Returns(new List <Company> {
                comp
            });

            var result = manager.GetChart(item, userId);

            StringAssert.AreEqualIgnoringCase(comp.Name, result.CampaignName);
        }
        // GET: Campaigns/Campaigns/Details/5
        public ActionResult Details(int id)
        {
            _campaignHelper.UpdateCampaignMembers(id);

            Campaign campaign               = _db.Campaigns.Find(id);
            var      model                  = new CampaignDetailsViewModel();
            var      campaignBasesStats     = new EmailBasesCampaignStatsViewModel();
            var      campaignSalesStats     = new SalesCampaignStatsViewModel();
            var      campaignEducationStats = new EducationCampaignStatsViewModel();

            if (campaign == null)
            {
                return(HttpNotFound());
            }

            if (_contractHelper.GetContractDate(campaign.RelatedCompanyId) != null)
            {
                campaign.ContractStartDate = _contractHelper.GetContractDate(campaign.RelatedCompanyId);
            }
            _db.SaveChanges();

            var list = _db.CampaignMembers.Where(cm => cm.CampaignId == id);

            // Preparing DetailsView based on the CampaignType
            switch (campaign.CampaignType)
            {
            case Campaign.CampaignTypeEnum.EmailBases:
                model = new CampaignDetailsViewModel
                {
                    Campaign                   = campaign,
                    EmailBasesStats            = campaignBasesStats.GetModel(id),
                    SalesStats                 = null,
                    EducationStats             = null,
                    NumberOfUnassignedEntities = model.GetUnassignedEntities(id),
                    NumberOfUnassignedEntitiesWithoutTelephone = model.GetUnassignedEntitiesWithoutTelephone(id),
                    AssignedMembers = list,
                    AssignedAgents  = model.GetAssignedAgentsInfo(id, 1),
                    EmailsBasesEntityStatusStats              = model.GetEmailBasesEntityStats(id),
                    SalesOpportunitiesStatusStats             = null,
                    SalesLeadsStatusStats                     = null,
                    SalesGeneralStatus                        = null,
                    EducationStatusStats                      = null,
                    CampaignLeadsAgentEfficiencies            = null,
                    CampaignAttributes                        = campaign.CampaignAttributes,
                    NumberOfNewlyAcquiredReceivingInformation = _db.AcquireEmails.Count(ae => ae.RelatedCampaignId == id && ae.IsNewlyAcquired == true),
                    NumberOfEducationAtendees                 = null
                };
                return(View(model));

            case Campaign.CampaignTypeEnum.Sales:
                model = new CampaignDetailsViewModel
                {
                    Campaign                   = campaign,
                    EmailBasesStats            = null,
                    SalesStats                 = campaignSalesStats.GetModel(id),
                    EducationStats             = null,
                    NumberOfUnassignedEntities = model.GetUnassignedEntities(id),
                    NumberOfUnassignedEntitiesWithoutTelephone = model.GetUnassignedEntitiesWithoutTelephone(id),
                    AssignedMembers = list,
                    AssignedAgents  = model.GetAssignedAgentsInfo(id, 3),
                    EmailsBasesEntityStatusStats              = null,
                    SalesOpportunitiesStatusStats             = model.GetOpportunitiesSalesStatusStats(id),
                    SalesLeadsStatusStats                     = model.GetLeadsSalesStatusStats(id),
                    SalesGeneralStatus                        = model.GetSalesGeneralStatus(id),
                    EducationStatusStats                      = null,
                    CampaignLeadsAgentEfficiencies            = model.GetCampaignLeadsAgentEfficiencies(id),
                    CampaignAttributes                        = campaign.CampaignAttributes,
                    NumberOfNewlyAcquiredReceivingInformation = null,
                    NumberOfEducationAtendees                 = null
                };
                return(View(model));

            case Campaign.CampaignTypeEnum.Education:
                model = new CampaignDetailsViewModel
                {
                    Campaign                   = campaign,
                    EmailBasesStats            = null,
                    SalesStats                 = null,
                    EducationStats             = campaignEducationStats.GetModel(id),
                    NumberOfUnassignedEntities = 0,
                    NumberOfUnassignedEntitiesWithoutTelephone = 0,
                    AssignedMembers = list,
                    AssignedAgents  = model.GetAssignedAgentsInfo(id, 2),
                    EmailsBasesEntityStatusStats              = null,
                    SalesOpportunitiesStatusStats             = null,
                    SalesLeadsStatusStats                     = null,
                    SalesGeneralStatus                        = null,
                    EducationStatusStats                      = model.GetEducationStatusStats(id),
                    CampaignLeadsAgentEfficiencies            = null,
                    CampaignAttributes                        = campaign.CampaignAttributes,
                    NumberOfNewlyAcquiredReceivingInformation = null,
                    NumberOfEducationAtendees                 = _db.Educations.Where(e => e.RelatedCampaignId == id && e.AtendeesNumber != null).Sum(c => c.AtendeesNumber)
                };
                return(View(model));
            }
            return(View(model));
        }