コード例 #1
0
        public async Task Post_ShouldReturn_SameCount()
        {
            //Arrange
            var urlMapInput = new UrlMapInput()
            {
                Id          = Guid.NewGuid().ToString(),
                Title       = "Test",
                Description = "Test",
                RawUrl      = "http://test1.com"
            };

            var urlMapOutputsBeforeInsert = await _controller.Get(new UrlMapFilterInput()
            {
                Take = Int32.MaxValue
            });


            //Act
            var urlMapOutput = await _controller.Post(urlMapInput);

            var urlMapOutputsAfterInsert = await _controller.Get(new UrlMapFilterInput()
            {
                Take = Int32.MaxValue
            });


            //Assert
            Assert.Equal(urlMapOutputsBeforeInsert.Items.Count, urlMapOutputsAfterInsert.Items.Count);
        }
コード例 #2
0
        public async Task <UrlMapOutput> Create(UrlMapInput input)
        {
            var existingUrlMap = await _urlMapRepository.GetAll().AsNoTracking()
                                 .FirstOrDefaultAsync(x => x.RawUrl == input.RawUrl);

            if (existingUrlMap != null)
            {
                //throw new Exception($"An existing item with same url already exist");
                return(new UrlMapOutput(existingUrlMap));
            }

            var urlMap = await _urlMapRepository.CreateAsync(new UrlMap()
            {
                Id          = Guid.NewGuid().ToString(),
                Title       = input.Title,
                Description = input.Description,
                RawUrl      = input.RawUrl,
                DeviceInfo  = UserAgent
            });

            urlMap.ShortenUrl = ShortenUrlHelper.Encode(urlMap.Identity);
            urlMap            = await _urlMapRepository.UpdateAsync(urlMap);

            return(new UrlMapOutput(urlMap));
        }
コード例 #3
0
        public async Task <UrlMapOutput> Update(UrlMapInput input)
        {
            var existingUrlMap = await _urlMapRepository.GetAll()
                                 .FirstOrDefaultAsync(x => x.RawUrl == input.RawUrl);

            if (existingUrlMap != null)
            {
                existingUrlMap.Title       = input.Title;
                existingUrlMap.Description = input.Description;

                existingUrlMap = await _urlMapRepository.UpdateAsync(existingUrlMap);

                return(new UrlMapOutput(existingUrlMap));
            }


            var urlMap = await _urlMapRepository.GetAsync(input.Id);

            urlMap.Title       = input.Title;
            urlMap.Description = input.Description;
            urlMap.DeviceInfo  = UserAgent;
            urlMap.ShortenUrl  = ShortenUrlHelper.Encode(urlMap.Identity);

            urlMap = await _urlMapRepository.UpdateAsync(urlMap);

            return(new UrlMapOutput(urlMap));
        }
コード例 #4
0
        public async Task <UrlMapOutput> Put(string id, [FromBody] UrlMapInput input)
        {
            if (id != input.Id)
            {
                throw new Exception("Item does not exist!");
            }

            return(await _tinyUrlService.Update(input));
        }
コード例 #5
0
ファイル: Edit.cshtml.cs プロジェクト: sabbiryan/url-shorten
        public async Task <IActionResult> OnGetAsync(string id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var urlMapOutput = await _tinyUrlService.Get(id);

            UrlMap = new UrlMapInput()
            {
                Id          = urlMapOutput.Id,
                Title       = urlMapOutput.Title,
                Description = urlMapOutput.Description,
                RawUrl      = urlMapOutput.RawUrl,
            };

            if (UrlMap == null)
            {
                return(NotFound());
            }
            return(Page());
        }
コード例 #6
0
        public async Task GetAll_ShouldReturn_CreatedItem()
        {
            //Arrange
            var urlMapInput = new UrlMapInput()
            {
                Id          = Guid.NewGuid().ToString(),
                Title       = "Test",
                Description = "Test",
                RawUrl      = "http://test.co.com.bd"
            };
            var urlMapPageOutputBefore = await _tinyUrlService.GetAll(new UrlMapFilterInput());


            //Act
            var urlMapOutput = await _tinyUrlService.Create(urlMapInput);

            var urlMapPageOutputAfter = await _tinyUrlService.GetAll(new UrlMapFilterInput());

            //Assert
            Assert.NotNull(urlMapOutput);
            Assert.NotNull(urlMapOutput.ShortenUrl);
            Assert.Equal(urlMapPageOutputBefore.TotalCount + 1, urlMapPageOutputAfter.TotalCount);
            Assert.NotEqual(0, urlMapOutput.Identity);
        }
コード例 #7
0
 public async Task <UrlMapOutput> OnPostAsync(UrlMapInput input)
 {
     return(await _tinyUrlService.Create(input));
 }
コード例 #8
0
 public async Task <UrlMapOutput> Post([FromBody] UrlMapInput input)
 {
     return(await _tinyUrlService.Create(input));
 }