Ejemplo n.º 1
0
        // POST api/values
        public string Post(URL uRL)
        {
            string LongUrl = uRL.LongUrl, CustomValue = uRL.CustomValue;

            Database.Database database = new Database.Database();
            if (!String.IsNullOrEmpty(CustomValue))
            {
                if (database.GetLongUrl(CustomValue) != "")
                {
                    return("Custom URL Already taken !");
                }
                else
                {
                    return(database.PutLongUrl(Shorturl: CustomValue, Longurl: LongUrl));
                }
            }
            else
            {
                string guid = Guid.NewGuid().ToString().Substring(0, 8);
                while (database.GetLongUrl(guid) != "")
                {
                    guid = Guid.NewGuid().ToString().Substring(0, 8);
                }
                return(database.PutLongUrl(Shorturl: guid, Longurl: LongUrl));
            }
        }
Ejemplo n.º 2
0
        // POST api/values
        public async Task <string> Post(URL uRL)
        {
            string LongUrl = uRL.LongUrl, CustomValue = uRL.CustomValue;

            if (!String.IsNullOrEmpty(CustomValue))
            {
                try
                {
                    await database.GetLongUrlAsync(CustomValue).ConfigureAwait(false);

                    return("Custom url already taken.");
                }
                catch (InvalidOperationException)
                {
                    return(await database.PutLongUrl(Shorturl : CustomValue, Longurl : LongUrl));
                }
            }
            else
            {
                string guid;
                do
                {
                    guid = Guid.NewGuid().ToString().Substring(0, 8);
                } while (await database.DoesShortUrlExistAsync(guid).ConfigureAwait(false));

                return(await database.PutLongUrl(Shorturl : guid, Longurl : LongUrl));
            }
        }