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" }); }
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()); }
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); }
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++; } } }
public WebsiteDetails GetWebsiteDetails(long[] curRange, string trackingCode) { Common.Models.Applications.Application web = _unitOfWorkApplicationDetails.Application.GetDetails(trackingCode); return(web.GetDetails(curRange)); }