Ejemplo n.º 1
0
        public async Task <ApplicationCreateMessage> CreateWebsite(Common.Models.Account account, Website website)
        {
            Common.Models.Applications.Application application =
                _unitOfWorkApplicationSearch.Application.GetByAddress(account, website.Address);

            if (application == null)
            {
                account = _unitOfWorkAccountSearch.Account.GetWithApplications(account);

                account.CreateWebsite(website);

                _unitOfWorkApplicationSearch.Save();

                return(new ApplicationCreateMessage()
                {
                    Success = true,
                    Message = ""
                });
            }

            return(new ApplicationCreateMessage()
            {
                Success = false,
                Message = "You already have an application with this address"
            });
        }
Ejemplo n.º 2
0
        public async Task <SimpleWebsiteDetails> GetWebsite(TrackingCode trackingCode)
        {
            Common.Models.Applications.Application web =
                _unitOfWorkApplicationDetails.Application.GetWithStatistics(trackingCode.trackingCode);

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

            return(web.GetWebsite());
        }
Ejemplo n.º 3
0
        public async Task <bool> Delete(Common.Models.Account account, ApplicationRemove website)
        {
            Common.Models.Applications.Application web = _unitOfWorkApplicationSearch.Application.GetByOwnerAndTrackingCode(account, website.TrackingCode);

            if (web == null)
            {
                return(false);
            }

            _unitOfWorkApplication.Application.Remove(web);

            _unitOfWorkApplication.Save();

            return(true);
        }
Ejemplo n.º 4
0
        public async Task New(Common.Models.Applications.Application site, StatisticRequest request, IBrowser browserDetector, HttpRequest httpRequest)
        {
            ApplicationStatistic     thisHour     = site.Statistic.FirstOrDefault(stat => stat.Timestamp == Utility.RoundTimeHour(request.Sent));
            ApplicationStatisticPath thisHourPage = site.PathStatistic.FirstOrDefault(stat => stat.Timestamp == Utility.RoundTimeHour(request.Sent) && stat.Path == request.Path);

            if (thisHour == null)
            {
                thisHour = new ApplicationStatistic()
                {
                    PageViews = 0,
                    Visits    = 0,
                    Timestamp = Utility.RoundTimeHour(request.Sent)
                };

                site.Statistic.Add(thisHour);
            }

            thisHour.PageViews++;

            if (request.Unique)
            {
                thisHour.Visits++;
            }

            if (thisHourPage == null)
            {
                thisHourPage = new ApplicationStatisticPath()
                {
                    PageViews = 0,
                    Visits    = 0,
                    Timestamp = Utility.RoundTimeHour(request.Sent),
                    Path      = request.Path
                };

                site.PathStatistic.Add(thisHourPage);
            }

            thisHourPage.PageViews++;

            if (request.Unique)
            {
                thisHourPage.Visits++;
            }

            if (httpRequest.Headers.ContainsKey("User-Agent"))
            {
                ApplicationStatisticBrowser thisHourBrowser = site.BrowserStatistic.FirstOrDefault(stat =>
                                                                                                   stat.Timestamp == Utility.RoundTimeHour(request.Sent) && stat.Browser == browserDetector.Name);

                if (thisHourBrowser == null)
                {
                    thisHourBrowser = new ApplicationStatisticBrowser()
                    {
                        PageViews = 0,
                        Visits    = 0,
                        Timestamp = Utility.RoundTimeHour(request.Sent),
                        Browser   = browserDetector.Name
                    };

                    site.BrowserStatistic.Add(thisHourBrowser);
                }

                thisHourBrowser.PageViews++;

                if (request.Unique)
                {
                    thisHourBrowser.Visits++;
                }
            }
        }
Ejemplo n.º 5
0
        public WebsiteDetails GetWebsiteDetails(long[] curRange, string trackingCode)
        {
            Common.Models.Applications.Application web = _unitOfWorkApplicationDetails.Application.GetDetails(trackingCode);

            return(web.GetDetails(curRange));
        }