public CreateUrlViewModel(ShortUrlDTO shortUrl) { Check.Argument.IsNotNull(shortUrl, "shortUrl"); Title = shortUrl.Title; Url = shortUrl.Url; Alias = shortUrl.Alias; VisitUrl = shortUrl.VisitUrl; PreviewUrl = shortUrl.PreviewUrl; }
public ShortUrlDTOTests() { alias = new Alias { Name = "dtntshtt", ShortUrl = new ShortUrl { Title = "Daily .NET News", Url = "http://dotnetshoutout.com", SpamStatus = SpamStatus.Clean } }; alias.Visits.AddRange(new[] { new Visit(), new Visit(), new Visit() }); dto = new ShortUrlDTO(alias, 3, "http://shrinkr.com/1", "http://shrinkr.com/Preview/1"); }
public ShortUrlResultTests() { var alias = new Alias { Name = "dtntshtt", ShortUrl = new ShortUrl { Title = "Daily .NET News", Url = "http://dotnetshoutout.com" } }; dto = new ShortUrlDTO(alias, 3, "http://shrinkr.com/1", "http://shrinkr.com/Preview/1"); result = new ShortUrlResult(dto); }
public void ShortUrl_should_return_view_result_with_short_url_as_model() { var alias = new Alias { ShortUrl = new ShortUrl() }; var shortUrl = new ShortUrlDTO(alias, 3, "http://visiturl.com", "http://previewurl.com"); adminService.Setup(svc => svc.GetShortUrl(It.IsAny <string>())).Returns(shortUrl); var view = (ViewResult)controller.ShortUrl(It.IsAny <string>()); Assert.Same(shortUrl, view.ViewData.Model); }
public ActionResult GetStats(string code) { try { string host = ApplicationEnv.GetApiUrl(HttpContext); ShortUrl url = ShortUrlBusiness.Stats(code); var dto = new ShortUrlDTO(url, host, fullData: true); dto.countClick = ClickBusiness.CountClicksByCode(code); return(Ok(dto)); } catch (ShortUrlException e) { return(BadRequest(e.Message)); } }
public ShortUrlListResultTests() { var alias = new Alias { Name = "dtntshtt", ShortUrl = new ShortUrl { Title = "Daily .NET News", Url = "http://dotnetshoutout.com" } }; dto = new ShortUrlDTO(alias, 3, "http://shrinkr.com/1", "http://shrinkr.com/Preview/1"); var pagedResult = new PagedResult <ShortUrlDTO>(new List <ShortUrlDTO> { dto }, 1); result = new ShortUrlListResult(pagedResult); }
public void Create_should_return_api_result_with_create_url_view_model() { controller.MockHttpContext("/", "~/Create", "GET"); var shortUrl = new ShortUrl { Url = "http://shirnkr.com/someurl" }; var shortUrlDto = new ShortUrlDTO(new Alias { ShortUrl = shortUrl }, 3, "http://shirnkr.com/visit", "http://shirnkr.com/preview"); var result = new ShortUrlResult(shortUrlDto); shortUrlService.Setup(svc => svc.CreateWithApiKey(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>())).Returns(result); Assert.IsType <ApiResult>(controller.Create(new CreateShortUrlApiCommand())); Assert.Equal(shortUrl.Url, ((CreateUrlViewModel)controller.ViewData.Model).Url); }
public ActionResult Post([FromBody] SaveShortUrlRequestDTO payload) { try { ShortUrl shortUrl = ShortUrlBusiness.MakeShortUrl(payload.url, payload.userId); ShortUrlDTO dto = new ShortUrlDTO(shortUrl, ApplicationEnv.GetApiUrl(HttpContext)); return(Ok(dto)); } catch (InvalidUrlException e) { e.Ship(); return(StatusCode((int)HttpStatusCode.NotAcceptable)); } catch (ShortUrlException e) { return(BadRequest(e.Message)); } }
public void ExecuteResult_should_write_correct_content_to_response(ApiResponseFormat responseFormat, string content) { var alias = new Alias { Name = "MSDN", ShortUrl = new ShortUrl { Title = "MSDN", Url = "http://msdn.microsoft.com/" } }; var shortUrlDto = new ShortUrlDTO(alias, 3, "http://shrinkr.com/msdn", "http://shrinkr.com/Preview/msdn"); var viewModel = new CreateUrlViewModel(shortUrlDto); controllerContext.Controller.ViewData = new ViewDataDictionary(viewModel); var result = new ApiResult(responseFormat); result.ExecuteResult(controllerContext); httpContext.Verify(c => c.Response.Write(content)); }
public ActionResult Visit(ShortUrlVisitCommand command) { Check.Argument.IsNotNull(command, "command"); bool sameDomain = !string.IsNullOrWhiteSpace(command.Referrer) && command.Referrer.StartsWith(Url.ApplicationRoot(), StringComparison.OrdinalIgnoreCase); if (!sameDomain) { ShortUrlResult shortUrlResult = shortUrlService.GetByAlias(command.Alias); ShortUrlDTO shortUrl = shortUrlResult.ShortUrl; if (shortUrl == null) { return(new NotFoundResult()); } if (shortUrl.SpamStatus.IsSpam()) { return(RedirectToAction("Preview", new { alias = shortUrl.Alias })); } } if (sameDomain) { command.Referrer = null; } VisitResult visitResult = shortUrlService.Visit(command.Alias, command.IPAddress, command.Browser, command.Referrer); ModelState.Merge(visitResult.RuleViolations); if (visitResult.Visit == null) { return(new NotFoundResult()); } string url = visitResult.Visit.Url; return(settings.RedirectPermanently ? new PermanentRedirectResult(url) : Redirect(url)); }
public ActionResult ShortUrl(string alias) { ShortUrlDTO model = administrativeService.GetShortUrl(alias); return(View(model)); }
public ShortUrlResult(ShortUrlDTO shortUrl) : this() { Check.Argument.IsNotNull(shortUrl, "shortUrl"); ShortUrl = shortUrl; }