예제 #1
0
        private void workerLoad_DoWork(object sender, DoWorkEventArgs e)
        {
            xmlLineCheckIns = new List <XmlLineCheckInModel>();
            XDocument xmlDocument = XDocument.Load(xml);

            foreach (XElement xmlElement in xmlDocument.Element("LineCheckIns").Elements("LineCheckIn"))
            {
                XmlLineCheckInModel xmlLineCheckIn = new XmlLineCheckInModel();
                xmlLineCheckIn.CardId   = xmlElement.Element("CardId").Value;
                xmlLineCheckIn.WorkAt   = xmlElement.Element("WorkAt").Value;
                xmlLineCheckIn.LineTime = xmlElement.Element("LineTime").Value;
                xmlLineCheckIns.Add(xmlLineCheckIn);
            }

            foreach (string line in lines)
            {
                string lineNumber = Regex.Match(line, @"\d+").Value;
                //if (String.IsNullOrEmpty(lineNumber) == false)
                //{
                //    lineAfters.Add("SEWING LINE " + lineNumber + "A");
                //    lineAfters.Add("SEWING LINE " + lineNumber + "B");
                //}
                //else
                //{
                //    lineAfters.Add(line);
                //}
                sources.AddRange(SourceController.Get(line, date));
            }
            //lineAfters = lineAfters.Distinct().ToList();
            lineAfters = lines.Distinct().ToList();
        }
예제 #2
0
        protected void Insert_Click(object sender, EventArgs e)
        {
            SourceController sc = new SourceController();

            sc.Insert(SourceTitle.Text, Source_Url.Text, IsPublished.Checked, int.Parse(ddlLanguageId.SelectedValue));
            Response.Redirect("ListSources.aspx");
        }
예제 #3
0
        private static void CreateController(out ISourceRepository fakeService, out SourceController controller)
        {
            var fakeContext = new FakeContext("SourceControllerTests");

            fakeService = fakeContext.FakeSourceRepository().Object;
            controller  = new SourceController();
        }
예제 #4
0
        protected void Page_Load(object sender, EventArgs e)
        {
            SourceController sc = new SourceController();
            Uri    myUri        = new Uri(Request.Url.ToString());
            string SourceId     = HttpUtility.ParseQueryString(myUri.Query).Get("ID");

            if (SourceId == null)
            {
                Response.Redirect("ListColors.aspx");
            }
            sc.GetSource(int.Parse(SourceId));
            SourceTitle.Text = sc.SourceTitle;
            Source_Url.Text  = sc.Source_Url;
            if (sc.IsPublished == false)
            {
                IsPublished.Checked = false;
            }
            else
            {
                IsPublished.Checked = true;
            }
            LanguageController lc = new LanguageController();

            ddlLanguageId.DataSource     = lc.GetLanguages();
            ddlLanguageId.DataTextField  = "LanguageTitle";
            ddlLanguageId.DataValueField = "LanguageID";
            ddlLanguageId.DataBind();
            ddlLanguageId.SelectedValue = sc.LanguageID.ToString();
        }
예제 #5
0
 public Background(string backGroundImageName, int x, int y, int width, int height)
 {
     image       = SourceController.getImage(backGroundImageName);
     this.x      = x;
     this.y      = y;
     this.width  = width;
     this.height = height;
 }
예제 #6
0
        protected void Edit_Click(object sender, EventArgs e)
        {
            Uri              myUri    = new Uri(Request.Url.ToString());
            string           SourceId = HttpUtility.ParseQueryString(myUri.Query).Get("ID");
            SourceController cc       = new SourceController();

            cc.Update(int.Parse(SourceId), SourceTitle.Text, Source_Url.Text, IsPublished.Checked, int.Parse(ddlLanguageId.SelectedValue));
            Response.Redirect("ListSources.aspx");
        }
예제 #7
0
 private void cmbSourceTable_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (cmbSourceTable.SelectedIndex != -1)
     {
         dgvSource.DataSource = null;
         SourceFields         = SourceController.GetFields(cmbSourceTable.SelectedItem.ToString());
         dgvSource.DataSource = GetFieldsDataTable(SourceFields);
     }
 }
예제 #8
0
        void threadShow_DoWork(object sender, DoWorkEventArgs e)
        {
            object[] arguments = e.Argument as object[];
            string   line      = arguments[0] as String;

            workerLeaveList = WorkerLeaveController.Select(year, month);
            holidayList     = HolidayController.Select(year, month);
            e.Result        = SourceController.Select(line, year, month);
        }
예제 #9
0
 // 從GameController裡面給出來的position存進各個GameObject
 public GameObject(string ImageName, int position)
 {
     this.position     = position;
     this.objectY      = 440;
     this.objectWidth  = 96;
     this.objectHeight = 96;
     this.canJumpOrNot = false;
     image_GameObject  = SourceController.getImage(ImageName);
 }
예제 #10
0
 protected void Page_Load(object sender, EventArgs e)
 {
     if (!IsPostBack)
     {
         SourceController sc = new SourceController();
         rptSource.DataSource = sc.GetSources();
         rptSource.DataBind();
     }
 }
예제 #11
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                AuthorController ac = new AuthorController();
                ddlAuthorId.DataSource     = ac.GetAuthors();
                ddlAuthorId.DataTextField  = "AuthorName";
                ddlAuthorId.DataValueField = "AuthorID";
                ddlAuthorId.DataBind();


                LanguageController lc = new LanguageController();
                ddlLanguageId.DataSource     = lc.GetLanguages();
                ddlLanguageId.DataTextField  = "LanguageTitle";
                ddlLanguageId.DataValueField = "LanguageID";
                ddlLanguageId.DataBind();


                SourceController sc = new SourceController();
                ddlSourceId.DataSource     = sc.GetSources();
                ddlSourceId.DataTextField  = "SourceTitle";
                ddlSourceId.DataValueField = "SourceId";

                NewsController nc = new NewsController();
                ddlAuthorId.SelectedValue   = nc.Author_Id.ToString();
                ddlLanguageId.SelectedValue = nc.LanguageID.ToString();
                ddlSourceId.SelectedValue   = nc.Source.ToString();

                Uri    myUri  = new Uri(Request.Url.ToString());
                string NewsId = HttpUtility.ParseQueryString(myUri.Query).Get("ID");
                if (NewsId == null)
                {
                    Response.Redirect("ListNews.aspx");
                }
                nc.GetNew(int.Parse(NewsId));
                NewsTitle.Text        = nc.NewsTitle;
                NewsSubtitle.Text     = nc.NewsSubtitle;
                NewsDescription.Value = nc.NewsDescription;
                PublishedDate.Text    = nc.Published_Date;
                First_AD.Text         = nc.First_AD;
                Second_AD.Text        = nc.Second_AD;
                Third_AD.Text         = nc.Third_AD;
                Fourth_AD.Text        = nc.Fourth_AD;
                Fifth_AD.Text         = nc.Fifth_AD;
                Sixth_AD.Text         = nc.Sixth_AD;
                if (nc.Break_News == false)
                {
                    Break_News.Checked = false;
                }
                else
                {
                    Break_News.Checked = true;
                }
                Youtube_Url.Text = nc.Youtube_Url;
            }
        }
예제 #12
0
        /// <summary>
        /// Stores a set of measurements in the database.
        /// </summary>
        /// <param name="measurements">The set of measurements.</param>
        private void Persist(MeasurementSet measurements)
        {
            var houseController  = new HouseController(_dataService);
            var pipeController   = new PipeController(_dataService);
            var sourceController = new SourceController(_dataService);

            measurements.Houses.ForEach((House house) => houseController.Create(house));
            measurements.Pipes.ForEach((Pipe pipe) => pipeController.Create(pipe));
            measurements.Sources.ForEach((Source source) => sourceController.Create(source));
        }
예제 #13
0
        protected void Delete_Click(object sender, EventArgs e)
        {
            LinkButton       b       = (LinkButton)sender;
            int              ColorId = int.Parse(b.CommandArgument);
            SourceController cc      = new SourceController();

            cc.Delete(ColorId);
            rptSource.DataSource = cc.GetSources();
            rptSource.DataBind();
        }
        void threadShow_DoWork(object sender, DoWorkEventArgs e)
        {
            List <PersonalModel>    personalList_D1 = personalList.Where(p => p.Department == line).OrderBy(p => p.WorkerId).ToList();
            List <SourceModel>      sourceList      = SourceController.Select(line, year, month);
            List <WorkerLeaveModel> workerLeaveList = WorkerLeaveController.Select(year, month);

            performanceDetailList = LinePerformanceDetailController.SelectByPersonal(line, year, month);
            List <HolidayModel> holidayList = HolidayController.Select(year, month);

            object[] results = { personalList_D1, sourceList, workerLeaveList, performanceDetailList, holidayList };
            e.Result = results;
        }
예제 #15
0
 public void CanCreate()
 {
     var clientRepositoryMoq    = new Mock <IRepository <Client> >();
     var contactProductService  = new Mock <IProductService>();
     var userManager            = new Mock <IIdentityMembershipProvider>();
     var gaService              = new Mock <IGoogleAnalyticsApi>();
     var contactIndexCalculator = new Mock <IContactIndexCalculator>();
     var controller             = new SourceController(clientRepositoryMoq.Object,
                                                       contactProductService.Object,
                                                       userManager.Object,
                                                       gaService.Object,
                                                       contactIndexCalculator.Object);
 }
예제 #16
0
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            _questionManager = new QuestionManager();
            // _settings           = SettingsController.Load();
            _sourceController = new SourceController(this);

            _goodComment = new Comment();
            _badComment  = new Swear();
            //---
            // Point renderedLocation = StartGrid.TranslatePoint(new Point(0, 0), MainWindow1);
            StartGrid.TranslatePoint(new Point(0, 0), MainWindow1);
            StartButton.Content = Const.LoadSourceFile;
            _settings           = SettingsController.Load();
            SwearLabel.Content  = _settings.ShowSwearing ? Const.SwearsEnabled : Const.SwearsDisabled;
            LimitLabel.Content  = _settings.EnableLimit ? Const.LimitEnabled : Const.LimitDisabled;
        }
예제 #17
0
 protected void Page_Load(object sender, EventArgs e)
 {
     if (!IsPostBack)
     {
         AuthorController ac = new AuthorController();
         ddlAuthorId.DataSource     = ac.GetAuthors();
         ddlAuthorId.DataTextField  = "AuthorName";
         ddlAuthorId.DataValueField = "AuthorID";
         ddlAuthorId.DataBind();
         ddlAuthorId.Items.Insert(0, new ListItem("Root Author", "0"));
         LanguageController lc = new LanguageController();
         ddlLanguageId.DataSource     = lc.GetLanguages();
         ddlLanguageId.DataTextField  = "LanguageTitle";
         ddlLanguageId.DataValueField = "LanguageID";
         ddlLanguageId.DataBind();
         ddlLanguageId.Items.Insert(0, new ListItem("Root Language", "0"));
         SourceController sc = new SourceController();
         ddlSourceId.DataSource     = sc.GetSources();
         ddlSourceId.DataTextField  = "SourceTitle";
         ddlSourceId.DataValueField = "SourceId";
         ddlSourceId.Items.Insert(0, new ListItem("Root Source", "0"));
         Break_News.Checked = true;
     }
 }
예제 #18
0
 public GameObject(GameController controller, string imageName, int x)
 {
     this.controller = controller;
     this.x          = x;                                    // 從GameController得到的位置存入
     image           = SourceController.getImage(imageName); // 圖片要讀入的位置,圖片位置回從各自的class中給
 }
예제 #19
0
        public void CanGetVisitorsYearly()
        {
            var clientRepository = RepositoryHelper.RepositoryLocalWithOneClient;
            var gaService        = new Mock <IGoogleAnalyticsApi>();

            var userManager           = new Mock <IIdentityMembershipProvider>();
            var contactProductService = new Mock <IProductService>();

            var contactIndexCalculator = new Mock <IContactIndexCalculator>();
            var controller             = new SourceController(clientRepository,
                                                              contactProductService.Object,
                                                              userManager.Object,
                                                              gaService.Object,
                                                              contactIndexCalculator.Object);

            var startDate = new DateTime(2012, 1, 1);
            var endDate   = new DateTime(2014, 1, 1);

            var mapRowResponse = new List <VisitorsOverTimeGaData>();
            var row1           = new VisitorsOverTimeGaData
            {
                Date     = "2014",
                Visitors = 100
            };

            var row2 = new VisitorsOverTimeGaData
            {
                Date     = "2013",
                Visitors = 170
            };

            var row3 = new VisitorsOverTimeGaData
            {
                Date     = "2012",
                Visitors = 70
            };

            mapRowResponse.Add(row1);
            mapRowResponse.Add(row2);
            mapRowResponse.Add(row3);

            var analyticQuery = new AnalyticQuery();

            analyticQuery.Dimenssions.AddMany("ga:year");
            analyticQuery.TabelId   = clientRepository.All().First().AnalyticsTableId;
            analyticQuery.StartDate = startDate;
            analyticQuery.EndDate   = endDate;
            analyticQuery.Metrics.Add("ga:visitors");

            gaService.Setup(
                ga =>
                ga.Get <VisitorsOverTimeGaData>(It.Is <AnalyticQuery>(
                                                    aq =>
                                                    !aq.Dimenssions.Except(analyticQuery.Dimenssions).Any() &&
                                                    !aq.Metrics.Except(analyticQuery.Metrics).Any() &&
                                                    !aq.Filters.Except(analyticQuery.Filters).Any() &&
                                                    aq.StartDate == analyticQuery.StartDate &&
                                                    aq.EndDate == analyticQuery.EndDate &&
                                                    aq.TabelId == analyticQuery.TabelId))).Returns(mapRowResponse);

            var result =
                controller.GetVisitorsOverTime(1, startDate, endDate, "Yearly")
                as OkNegotiatedContentResult <List <VisitorStats> >;

            Assert.AreEqual(3, result.Content.Count());

            Assert.AreEqual(70, result.Content.Single(r => r.date == startDate).visitors);

            Assert.AreEqual(170, result.Content.Single(r => r.date == startDate.AddYears(1)).visitors);

            Assert.AreEqual(100, result.Content.Single(r => r.date == endDate).visitors);
        }
예제 #20
0
        public void CanGetKeywordsForSearch()
        {
            var gaService              = new Mock <IGoogleAnalyticsApi>();
            var clientRepository       = RepositoryHelper.RepositoryLocalWithOneClient;
            var clientInRepository     = clientRepository.All().First();
            var contactProductService  = new Mock <IProductService>();
            var userManager            = new Mock <IIdentityMembershipProvider>();
            var contactIndexCalculator = new Mock <IContactIndexCalculator>();

            var startDate = new DateTime(2013, 1, 1);
            var endDate   = new DateTime(2013, 1, 3);

            var mapRowResponse = new List <SearchDetailsRow>();

            var row1 = new SearchDetailsRow
            {
                Keyword     = "Keyword1",
                AdClicks    = 10,
                AdCost      = 20,
                NumVisitors = 40,
            };

            var row2 = new SearchDetailsRow
            {
                Keyword           = "Keyword2",
                AdClicks          = 11,
                AdCost            = 21,
                Impressions       = 31,
                ContactCollection = new ContactCollection("Keyword2", 21, 31, new List <Contact>())
                {
                    IndexValue = 0.5m
                }
            };

            var contact1 = new Contact()
            {
                Date         = startDate.AddDays(1),
                SearchPhrase = "Keyword1"
            };
            var contact2 = new Contact()
            {
                Date         = startDate.AddDays(1),
                SearchPhrase = "Keyword2"
            };
            var contactNotInRange = new Contact()
            {
                Date         = endDate.AddDays(1),
                SearchPhrase = "Keyword1"
            };

            clientRepository.All().First().Leads.Add(contact1);
            clientRepository.All().First().Leads.Add(contact2);
            clientRepository.All().First().Leads.Add(contactNotInRange);

            mapRowResponse.Add(row1);
            mapRowResponse.Add(row2);

            var analyticQuery = new AnalyticQuery();

            analyticQuery.Dimenssions.Add("ga:keyword");
            analyticQuery.TabelId   = clientRepository.All().First().AnalyticsTableId;
            analyticQuery.StartDate = startDate;
            analyticQuery.EndDate   = endDate;
            analyticQuery.Metrics.AddMany("ga:adClicks", "ga:adCost", "ga:impressions");
            analyticQuery.Filters.AddMany("ga:campaign!~(display)|(retargeting)|(Display)|(Retargeting)|(remarketing)|(Remarketing)", "ga:medium==cpc");

            gaService.Setup(
                ga =>
                ga.Get <SearchDetailsRow>(It.Is <AnalyticQuery>(
                                              aq =>
                                              !aq.Dimenssions.Except(analyticQuery.Dimenssions).Any() &&
                                              !aq.Metrics.Except(analyticQuery.Metrics).Any() &&
                                              !aq.Filters.Except(analyticQuery.Filters).Any() &&
                                              aq.StartDate == analyticQuery.StartDate &&
                                              aq.EndDate == analyticQuery.EndDate &&
                                              aq.TabelId == analyticQuery.TabelId))).Returns(mapRowResponse);


            var controller = new SourceController(clientRepository,
                                                  contactProductService.Object,
                                                  userManager.Object,
                                                  gaService.Object,
                                                  contactIndexCalculator.Object);

            contactIndexCalculator.Setup(ic => ic.SetIndexValues(It.IsAny <IEnumerable <ContactCollection> >())).Callback(
                (IEnumerable <ContactCollection> contactColletions) =>
            {
                foreach (var contactCollection in contactColletions)
                {
                    if (contactCollection.Id == "Keyword1")
                    {
                        contactCollection.IndexValue = 1.0m;
                    }
                    else
                    {
                        contactCollection.IndexValue = 0.5m;
                    }
                }
            });

            var result = controller.GetSearchKeywords(clientInRepository.Id, startDate,
                                                      endDate) as OkNegotiatedContentResult <IOrderedEnumerable <SearchDetailsRow> >;


            Assert.AreEqual(2, result.Content.Count());

            Assert.AreEqual(10, result.Content.Single(kw => kw.Name == "Keyword1").AdClicks);
            Assert.AreEqual(20, result.Content.Single(kw => kw.Name == "Keyword1").AdCost);
            Assert.AreEqual(null, result.Content.Single(kw => kw.Name == "Keyword1").Impressions);
            Assert.AreEqual(40, result.Content.Single(kw => kw.Name == "Keyword1").NumVisitors);
            Assert.AreEqual(1, result.Content.Single(kw => kw.Name == "Keyword1").NumContacts);

            Assert.AreEqual(11, result.Content.Single(kw => kw.Name == "Keyword2").AdClicks);
            Assert.AreEqual(21, result.Content.Single(kw => kw.Name == "Keyword2").AdCost);
            Assert.AreEqual(31, result.Content.Single(kw => kw.Name == "Keyword2").Impressions);
            Assert.AreEqual(1, result.Content.Single(kw => kw.Name == "Keyword2").NumContacts);
        }
예제 #21
0
        public void CanGetCampaignDetailsWithServeralCampaignsIgnoreInvalidData()
        {
            var clientRepository = RepositoryHelper.RepositoryLocalWithOneClient;
            var gaService        = new Mock <IGoogleAnalyticsApi>();

            var userManager           = new Mock <IIdentityMembershipProvider>();
            var contactProductService = new Mock <IProductService>();

            var contactIndexCalculator = new Mock <IContactIndexCalculator>();
            var controller             = new SourceController(clientRepository,
                                                              contactProductService.Object,
                                                              userManager.Object,
                                                              gaService.Object,
                                                              contactIndexCalculator.Object);

            var startDate = new DateTime(2014, 1, 1);
            var endDate   = new DateTime(2014, 2, 1);

            var mapRowResponse = new List <CampaignDetails>();
            var row1           = new CampaignDetails
            {
                Campaign     = "Campaign1",
                SourceMedium = "google/cpc",
                AdCost       = 20,
                Sessions     = 10
            };

            var row2 = new CampaignDetails
            {
                Campaign       = "Campaign2",
                SourceMedium   = "Adroll/cpc",
                AdCost         = 30,
                AdClicksMetric = 20,
                Sessions       = 0
            };
            var invalidRow = new CampaignDetails
            {
                Campaign     = "Campaign1",
                SourceMedium = "google/direct",
                AdCost       = 20,
                Sessions     = 0
            };

            mapRowResponse.Add(row1);
            mapRowResponse.Add(row2);
            mapRowResponse.Add(invalidRow);

            var contact1 = new Contact()
            {
                Date     = startDate.AddDays(1),
                Campaign = "Campaign1"
            };
            var contact2 = new Contact()
            {
                Date     = startDate.AddDays(1),
                Campaign = "Campaign2"
            };
            var contactNotInRange = new Contact()
            {
                Date     = endDate.AddDays(1),
                Campaign = "Campaign1"
            };

            clientRepository.All().First().Leads.Add(contact1);
            clientRepository.All().First().Leads.Add(contact2);
            clientRepository.All().First().Leads.Add(contactNotInRange);

            var analyticQuery = new AnalyticQuery();

            analyticQuery.Dimenssions.AddMany("ga:sourceMedium", "ga:campaign");
            analyticQuery.TabelId   = clientRepository.All().First().AnalyticsTableId;
            analyticQuery.StartDate = startDate;
            analyticQuery.EndDate   = endDate;
            analyticQuery.Metrics.AddMany("ga:adClicks", "ga:adCost", "ga:impressions", "ga:sessions");
            analyticQuery.Filters.Add("ga:campaign!=(not set)");

            gaService.Setup(
                ga =>
                ga.Get <CampaignDetails>(It.Is <AnalyticQuery>(
                                             aq =>
                                             !aq.Dimenssions.Except(analyticQuery.Dimenssions).Any() &&
                                             !aq.Metrics.Except(analyticQuery.Metrics).Any() &&
                                             !aq.Filters.Except(analyticQuery.Filters).Any() &&
                                             aq.StartDate == analyticQuery.StartDate &&
                                             aq.EndDate == analyticQuery.EndDate &&
                                             aq.TabelId == analyticQuery.TabelId))).Returns(mapRowResponse);

            contactProductService.Setup(cp => cp.IsValidProduct(It.IsAny <string>(), "cpc")).Returns(true);
            contactProductService.Setup(cp => cp.GetProduct(It.IsAny <string>(), "cpc")).Returns("Display");

            var result =
                controller.GetCampaignsDetail(1, startDate, endDate)
                as OkNegotiatedContentResult <IEnumerable <CampaignDetails> >;

            Assert.AreEqual(2, result.Content.Count());

            Assert.AreEqual(10, result.Content.Single(c => c.Campaign == "Campaign1").AdClicks);
            Assert.AreEqual(10, result.Content.Single(c => c.Campaign == "Campaign1").Sessions);
            Assert.AreEqual(false, result.Content.Single(c => c.Campaign == "Campaign1").AdClicksMetric.HasValue);
            Assert.AreEqual(20, result.Content.Single(c => c.Campaign == "Campaign1").AdCost);
            Assert.AreEqual("Adwords", result.Content.Single(c => c.Campaign == "Campaign1").AdProvider);
            Assert.AreEqual("google", result.Content.Single(c => c.Campaign == "Campaign1").Source);
            Assert.AreEqual("cpc", result.Content.Single(c => c.Campaign == "Campaign1").Medium);
            Assert.AreEqual("Display", result.Content.Single(c => c.Campaign == "Campaign1").Product);
            Assert.AreEqual(1, result.Content.Single(c => c.Campaign == "Campaign1").NumContacts);

            Assert.AreEqual(20, result.Content.Single(c => c.Campaign == "Campaign2").AdClicks);
            Assert.AreEqual(0, result.Content.Single(c => c.Campaign == "Campaign2").Sessions);
            Assert.AreEqual(true, result.Content.Single(c => c.Campaign == "Campaign2").AdClicksMetric.HasValue);
            Assert.AreEqual(20, result.Content.Single(c => c.Campaign == "Campaign2").AdClicksMetric);
            Assert.AreEqual(30, result.Content.Single(c => c.Campaign == "Campaign2").AdCost);
            Assert.AreEqual("Adroll", result.Content.Single(c => c.Campaign == "Campaign2").AdProvider);
            Assert.AreEqual("Adroll", result.Content.Single(c => c.Campaign == "Campaign2").Source);
            Assert.AreEqual("cpc", result.Content.Single(c => c.Campaign == "Campaign2").Medium);
            Assert.AreEqual("Display", result.Content.Single(c => c.Campaign == "Campaign2").Product);
            Assert.AreEqual(1, result.Content.Single(c => c.Campaign == "Campaign2").NumContacts);
        }
예제 #22
0
        public void CanGetCampaignDetailsReturnsNoCampaignForNoProductAndNoAdClick()
        {
            var clientRepository = RepositoryHelper.RepositoryLocalWithOneClient;
            var gaService        = new Mock <IGoogleAnalyticsApi>();

            var userManager           = new Mock <IIdentityMembershipProvider>();
            var contactProductService = new Mock <IProductService>();

            var contactIndexCalculator = new Mock <IContactIndexCalculator>();
            var controller             = new SourceController(clientRepository,
                                                              contactProductService.Object,
                                                              userManager.Object,
                                                              gaService.Object,
                                                              contactIndexCalculator.Object);

            var startDate = new DateTime(2014, 1, 1);
            var endDate   = new DateTime(2014, 2, 1);

            var mapRowResponse = new List <CampaignDetails>();
            var row1           = new CampaignDetails
            {
                Campaign     = "Campaign1",
                SourceMedium = "google/cpc",
                AdCost       = 20,
                Sessions     = 0
            };

            var row2 = new CampaignDetails
            {
                Campaign       = "Campaign2",
                SourceMedium   = "Adroll/cpc",
                AdCost         = 30,
                AdClicksMetric = 10
            };

            mapRowResponse.Add(row1);
            mapRowResponse.Add(row2);

            var analyticQuery = new AnalyticQuery();

            analyticQuery.Dimenssions.AddMany("ga:sourceMedium", "ga:campaign");
            analyticQuery.TabelId   = clientRepository.All().First().AnalyticsTableId;
            analyticQuery.StartDate = startDate;
            analyticQuery.EndDate   = endDate;
            analyticQuery.Metrics.AddMany("ga:adClicks", "ga:adCost", "ga:impressions", "ga:sessions");
            analyticQuery.Filters.Add("ga:campaign!=(not set)");

            gaService.Setup(
                ga =>
                ga.Get <CampaignDetails>(It.Is <AnalyticQuery>(
                                             aq =>
                                             !aq.Dimenssions.Except(analyticQuery.Dimenssions).Any() &&
                                             !aq.Metrics.Except(analyticQuery.Metrics).Any() &&
                                             !aq.Filters.Except(analyticQuery.Filters).Any() &&
                                             aq.StartDate == analyticQuery.StartDate &&
                                             aq.EndDate == analyticQuery.EndDate &&
                                             aq.TabelId == analyticQuery.TabelId))).Returns(mapRowResponse);

            contactProductService.Setup(cp => cp.IsValidProduct(It.IsAny <string>(), "cpc")).Returns(false);

            var result =
                controller.GetCampaignsDetail(1, startDate, endDate)
                as OkNegotiatedContentResult <IEnumerable <CampaignDetails> >;

            Assert.AreEqual(0, result.Content.Count());
        }
예제 #23
0
        public MainView()
        {
            try
            {
                InitializeComponent();

                log4net.Config.XmlConfigurator.Configure();
                logger.Info("MainWindow.ctor: started");

                tagController      = new TagController();
                trackController    = new TrackController(oldTrackRepository, tagController);
                sourceController   = new SourceController(sourceRepository, trackController);
                playbackController = new PlaybackController(trackController);
                sourceView.Initialize(sourceController, trackController, tagController);
                searchView.Initialize(trackController, tagController);
                playbackView.Initialize(trackController, playbackController);
                mediaPropertyView.Initialize(trackController, tagController);
                mediaListView.Initialize(trackController, tagController, playbackView, mediaPropertyView);

                sourceView.SourceLoaded += sourceLoaded;
                playbackController.CurrentTrackPlayed  += currentTrackPlayed;
                playbackController.CurrentTrackPaused  += currentTrackPaused;
                playbackController.CurrentTrackStopped += currentTrackStopped;
                playbackController.CurrentTrackEnded   += currentTrackEnded;
                trackController.SourceLoadCompleted    += sourceLoadCompleted;

                context = new MultiThreadedContext(this.Dispatcher);

                feedRepository = new FeedRepository();
                feedRepository.Initialize();

                trackRepository = new TrackRepository();
                trackRepository.Initialize();

                //var track = new Models.Tracks.Track();
                //track.Initialize(new EntityInitialState(context, logger));
                //track.Location = new Uri(@"file:///C:/Users/Dan/Music/Tool/Undertow/01%20Intolerance.mp3");
                //var trackId = track.Id;
                //track.AddIdentifier(new Uri("http://allmusic.com"), "R   169347");
                //track.AddIdentifier(new Uri("http://musicbrainz.org/trackId"), "9afffc81-c4b9-46aa-baef-232a45817158");
                //trackRepository.Save(new List<Models.Tracks.ITrack> { track });
                //var x = trackRepository.Lookup(trackId);
                //var y = x;
                //var feeds = feedRepository.Search();
                //var x = feeds.Count();
                //var entityInfo = new EntityInfo(typeof(Models.Tracks.ITrack));
                //var y = entityInfo;

                /*
                 * var feed = new Models.Feeds.Feed();
                 * feed.Initialize(new EntityInitialState(context, logger));
                 * feed.Location = new Uri("http://example.com/feeds/exmaple.xml");
                 * feed.Authors = "Neal Stephenson; William Gibson";
                 * var x = feed.AuthorTags.Count();
                 * var firstIsNew = feed.AuthorTags.FirstOrDefault().IsNew();
                 * var lastIsNew = feed.AuthorTags.LastOrDefault().IsNew();
                 * feedRepository.Save(new List<Models.Feeds.IFeed> { feed });
                 * var lookup = feedRepository.Lookup(feed.Id);
                 * var y = lookup.AuthorTags.Count();
                 */
            }
            catch (Exception ex)
            {
                logger.Error("MainWindow.ctor", ex);
            }
        }
예제 #24
0
 private void bwPrint_DoWork(object sender, DoWorkEventArgs e)
 {
     workerLoginList = WorkerLoginController.Select(date);
     sourceList      = SourceController.Select(section.Keyword, date);
 }