Ejemplo n.º 1
0
        public int Add(MinifiedUrl url)
        {
            _context.MinifiedUrls.Add(url);
            _context.SaveChanges();

            return(url.Id);
        }
Ejemplo n.º 2
0
 public MinifiedUrlModel(MinifiedUrl minifiedUrl)
 {
     OriginalUrl = minifiedUrl.OriginalUrl;
     ShortUrl    = minifiedUrl.ShortUrl;
     ClickCount  = minifiedUrl.ClickCount;
     DateCreated = minifiedUrl.DateCreated.ToString("g");
 }
Ejemplo n.º 3
0
        private MinifiedUrl CreateShortUrl(string urlPrefix, MinifiedUrl minifiedUrl)
        {
            minifiedUrl.ShortUrl = $"{urlPrefix}/{BijectiveAlgorithm.Encode(minifiedUrl.Id)}";

            _urlRepository.Update(minifiedUrl);

            return(minifiedUrl);
        }
Ejemplo n.º 4
0
        public MinifiedUrl Execute(MinifiedUrl minifiedUrl)
        {
            if (!IsValid(minifiedUrl))
            {
                throw new ArgumentException();
            }
            minifiedUrl.Created = DateTime.UtcNow;

            return(minifiedUrl);
        }
Ejemplo n.º 5
0
        private static bool Validate(MinifiedUrl inputDocument)
        {
            if (string.IsNullOrEmpty(inputDocument.FullUrl) ||
                string.IsNullOrEmpty(inputDocument.MinifiedSlug))
            {
                return(false);
            }

            return(true);
        }
Ejemplo n.º 6
0
        public async Task <bool> Execute(MinifiedUrl minifiedUrl)
        {
            if (!IsValid(minifiedUrl))
            {
                throw new ArgumentException();
            }
            var client = await cosmosClient.Get();

            var response = await client.DeleteDocumentAsync(minifiedUrl.FullUrl);

            return(response.StatusCode == System.Net.HttpStatusCode.OK);
        }
Ejemplo n.º 7
0
        private MinifiedUrl CreateInitialMinifiedUrl(Identity user, string originalUrl)
        {
            var url = new MinifiedUrl
            {
                UserId      = user.Id,
                OriginalUrl = originalUrl,
                DateCreated = DateTime.Now
            };

            _urlRepository.Add(url);

            return(url);
        }
Ejemplo n.º 8
0
        public static async Task Run(
            [ServiceBusTrigger("new-urls", "CreateUrl", Connection = "GetNewUrlsServiceBusConnection")] MinifiedUrl validatedMinifiedUrl,
            Binder binder,
            TraceWriter log)
        {
            log.Info($"Processing the url: `{validatedMinifiedUrl.MinifiedSlug}`");

            var output = await CreateOutputBinding(binder);

            var processedMinifiedUrl = new MinifiedUrl
            {
                MinifiedSlug = validatedMinifiedUrl.MinifiedSlug,
                FullUrl      = validatedMinifiedUrl.FullUrl,
                Created      = validatedMinifiedUrl.Created
            };

            await output.AddAsync(processedMinifiedUrl);
        }
Ejemplo n.º 9
0
 private bool IsValid(MinifiedUrl minifiedUrl)
 {
     return(!string.IsNullOrWhiteSpace(minifiedUrl.FullUrl) &&
            !string.IsNullOrWhiteSpace(minifiedUrl.MinifiedSlug));
 }
Ejemplo n.º 10
0
 private void IncreaseClickCount(MinifiedUrl minifiedUrl)
 {
     minifiedUrl.ClickCount++;
     minifiedUrl.DateLastUpdated = DateTime.Now;
     _urlRepository.Update(minifiedUrl);
 }
Ejemplo n.º 11
0
 public void Update(MinifiedUrl url)
 {
     _context.MinifiedUrls.Update(url);
     _context.SaveChanges();
 }