Ejemplo n.º 1
0
        public async Task <RedirectResModel> RedirectUrl(RedirectReqModel model)
        {
            LinkModel        linkModel = null;
            RedirectResModel result    = new RedirectResModel();
            //var shortUrl = "";//new Guid(model.ShortLink);
            var isValid = Guid.TryParse(model.ShortLink, out Guid guid);

            if (isValid)
            {
                linkModel = await _linkModelRepository.GetUrlByShortLink(guid);

                if (linkModel != null)
                {
                    linkModel.VisitorCount++;
                    linkModel.UpdateDate = DateTime.Now;
                    await base.Update(linkModel);

                    result.Url = linkModel.Url;
                }
                else
                {
                    result.Status = ExceptionEnum.NotFound;
                }
            }

            else
            {
                result.Status = ExceptionEnum.InvalidParameter;
            }

            return(result);
        }
Ejemplo n.º 2
0
        public async Task <ActionResult> RedirectUrl(string shortLink)
        {
            var model = new RedirectReqModel
            {
                ShortLink = shortLink    //new Guid(shortLink)
            };

            var result = await _shareLinkService.RedirectUrl(model);

            if (result.Status == ExceptionEnum.NotFound)
            {
                return(NotFound());
            }
            else if (result.Status == ExceptionEnum.InvalidParameter)
            {
                return(this.StatusCode(StatusCodes.Status400BadRequest, "لینک ارسالی نادرست می باشد."));
                //  return HttpStatusCode.BadRequest;
            }
            return(Redirect(result.Url));
        }