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); }
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)); }
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); }
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)); }
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); }
// 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)); }
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)); }
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")); }
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); }
/// <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); }
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); }
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); }
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)); }