예제 #1
0
        public ActionResult Details(int id)
        {
            if (User != null)
            {
                user = _usersRepo.GetById(User.Identity.GetUserId());
            }

            if (id == 0)
            {
                Redirect("/Home/Index");
            }
            Url url = _repo.GetById(id);

            return(View(url));
        }
예제 #2
0
        public ActionResult Edit(int id)
        {
            try
            {
                var url = urlRepository.GetById(id);

                var urlModel = new UrlViewModel()
                {
                    Id                = url.Id,
                    Name              = url.Name,
                    Address           = url.Address,
                    Amount            = url.InactivityTimeout.Amount,
                    Unit              = Logic.Common.Unit.Seconds,
                    MonitorInactivity = url.MonitorInactivity,
                    Hits              = url.Hits,
                    ShowInStatistics  = url.ShowInStatistics,
                    ServiceId         = url.Service.Id
                };

                ViewBag.Services = serviceRepository.List();

                return(View(urlModel));
            }
            catch (Exception)
            {
                throw;
            }
        }
예제 #3
0
        public IHttpActionResult Edit(FormDataCollection data)
        {
            try
            {
                var url = urlRepository.GetById(Convert.ToInt32(data["Id"]));

                var monitorInactivity = false;
                if (data["MonitorInactivity"] == "true,false")
                {
                    monitorInactivity = true;
                }
                var showInStatistics = false;
                if (data["ShowInStatistics"] == "true,false")
                {
                    showInStatistics = true;
                }

                url.Name    = data["Name"];
                url.Address = data["Address"];
                var inactivityTimeout = new Interval(Convert.ToInt32(data["Amount"]), (Unit)Enum.Parse(typeof(Unit), data["Unit"]));
                url.InactivityTimeout = inactivityTimeout;
                url.MonitorInactivity = monitorInactivity;
                url.ShowInStatistics  = showInStatistics;
                url.Service           = serviceRepository.GetById(Convert.ToInt32(data["ServiceId"]));

                urlRepository.Update(url);

                return(Ok());
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }
예제 #4
0
        public ActionResult Details(int id, Period period = Period.month)
        {
            var url = urlRepository.GetById(id);

            var visitors = new List <UserViewModel>();

            var users = userRepository.List();

            foreach (var user in users)
            {
                var logs    = logRepository.ListByUserAndUrl(user.Id, url.Name, period);
                var history = histRepository.ListByUserAndUrl(user.Id, url.Id, period);
                if (logs.Count() > 0 || history.Count() > 0)
                {
                    double duration = 0;
                    foreach (var log in logs)
                    {
                        duration += log.Duration;
                    }
                    var visitor = new UserViewModel()
                    {
                        Id                     = user.Id,
                        UserName               = user.UserName,
                        QuantityVisitedUrls    = logs.Count(),
                        QuantityVisitedUrlsOld = history.Count(),
                        LatestVisitDate        = logs.Count() > 0 ? logs.Last().TimeStamp.ToString() : "",
                        LatestVisitDateOld     = history.Count() > 0 ? history.Last().HistoryIdentifier.Date.ToString() : "",
                        Duration               = duration / logs.Count()
                    };
                    visitors.Add(visitor);
                }
            }

            var viewModel = new UrlStatisticsViewModel()
            {
                Id       = url.Id,
                Urls     = urlRepository.List(),
                Period   = period,
                Visitors = visitors
            };

            return(View(viewModel));
        }
예제 #5
0
        public ActionResult alterar(int id)
        {
            Sessao.verificaSessao();
            var url = urlRepository.GetById(id);

            if (url == null)
            {
                return(HttpNotFound());
            }
            return(View(url));
        }
예제 #6
0
        public ActionResult UrlVisits(int userId, int urlId, Period period = Period.month)
        {
            var urlRep = new UrlRepository();
            var url    = urlRep.GetById(urlId);

            var logRep = new LogRepository();
            var logs   = logRep.ListByUserAndUrl(userId, url.Name, period).OrderByDescending(x => x.TimeStamp);

            var histRep = new HistoryRepository();
            var history = histRep.ListByUserAndUrl(userId, url.Id, period);

            var viewModel = new LogViewModel()
            {
                Users     = userRepository.List(),
                Visits    = logs,
                VisitsOld = history,
                Urls      = urlRep.List(),
                UrlId     = urlId,
                UserId    = userId,
                Period    = period,
            };

            return(View(viewModel));
        }