Ejemplo n.º 1
0
        public bool GetURL(string alias)
        {
            this.retorno = new UrlWebResp();

            try
            {
                RegistroURL url = registroUrlRepository.FindByALias(alias);

                if (url is null)
                {
                    retorno.errorcode    = "002";
                    retorno.errormessage = "SHORTENED URL NOT FOUND";

                    return(false);
                }
                else
                {
                    url.QuantidadeAcessos++;
                    registroUrlRepository.Save(url);

                    retorno.url      = url.UrlOriginal;
                    retorno.shorturl = url.UrlEncurtada;


                    return(true);
                }
            }
            catch (Exception ex)
            {
                unitOfWork.Rollback();
                unitOfWork.Dispose();
                retorno.errorcode    = "003";
                retorno.errormessage = ex.Message;

                return(false);
            }
        }
Ejemplo n.º 2
0
        public UrlWebResp AddURL(string url, string alias)
        {
            UrlWebResp urlWebResp = new UrlWebResp();

            try
            {
                RegistroURL registroUrl = registroUrlRepository.FindByALias(alias);

                var stopWatch = new Stopwatch();
                stopWatch.Start();

                if (registroUrl != null)
                {
                    urlWebResp.errorcode    = "001";
                    urlWebResp.errormessage = "CUSTOM ALIAS ALREADY EXISTS";
                    return(urlWebResp);
                }

                else
                {
                    var urlPadrao = "http://shorturl/";


                    if (String.IsNullOrEmpty(alias))
                    {
                        var inicio        = 0;
                        var numeroDeBytes = 1;
                        do
                        {
                            alias = GerarAlias(url, inicio, numeroDeBytes);
                            inicio++;
                            numeroDeBytes++;
                        } while (registroUrlRepository.FindByALias(alias) != null);

                        //executa a operacao de obter um alias a partir de hash
                        //refaz a operacao enquanto o alias nao for unico
                    }

                    urlWebResp.shorturl = urlPadrao + alias;
                    urlWebResp.alias    = alias;
                    urlWebResp.url      = url;

                    registroUrlRepository.Save(new RegistroURL
                    {
                        Alias        = alias,
                        UrlOriginal  = url,
                        UrlEncurtada = urlWebResp.shorturl
                    });



                    stopWatch.Stop();
                    urlWebResp.tempoOperacao = stopWatch.ElapsedMilliseconds + " ms";

                    return(urlWebResp);
                }
            }
            catch (Exception ex)
            {
                unitOfWork.Rollback();
                unitOfWork.Dispose();

                urlWebResp.errorcode    = "003";
                urlWebResp.errormessage = ex.Message;

                return(urlWebResp);
            }
        }