Пример #1
0
        private void GenerateShortUrl(UrlEntry urlEntry)
        {
            var fullUrlHashCode = urlEntry.FullUrl.GetHashCode();

            urlEntry.UrlHashCode = fullUrlHashCode;
            urlEntry.ShortUrl    = string.Format($"/?id={fullUrlHashCode}");
        }
        public async Task <IActionResult> Create([Bind("LongUrl")] UrlEntry urlEntry)
        {
            if (ModelState.IsValid)
            {
                var oldUrEntry = _urlEntriesProvider.GetUrlEntry(urlEntry.LongUrl);

                if (oldUrEntry != null)
                {
                    return(View(oldUrEntry));
                }

                urlEntry.Guid = HttpContext.Request.Cookies[UserKey];
                if (urlEntry.Guid == null)
                {
                    urlEntry.Guid = Guid.NewGuid().ToString();
                    HttpContext.Response.Cookies.Append(UserKey, urlEntry.Guid, new Microsoft.AspNetCore.Http.CookieOptions()
                    {
                        Path    = "/",
                        Expires = DateTime.Now.AddDays(7)
                    });
                }

                await _urlEntriesProvider.AddAndInitUrlEntry(urlEntry);

                return(View(urlEntry));
            }

            return(View(urlEntry));
        }
Пример #3
0
        internal static void SetNewRecentURL(UrlEntry form, String urlAddress)
        {
            int    maxRecentURLs = ConfigUtil.GetIntParameter("MaxNumRecentFile");
            String fileContent   = FileUtil.ReadToEndWithStandardEncoding(Path.Combine(ConstantUtil.ApplicationExecutionPath(), ConstantUtil.ruFile));

            //Opening-saving file has already been censed into file
            if (fileContent.IndexOf(urlAddress + Environment.NewLine) >= 0)
            {
                fileContent = fileContent.Remove(fileContent.IndexOf(urlAddress + Environment.NewLine), urlAddress.Length + Environment.NewLine.Length);
            }

            String[] rows = fileContent.Replace(Environment.NewLine, ConstantUtil.newLine).Split(new[] { Convert.ToChar(ConstantUtil.newLine) }, StringSplitOptions.RemoveEmptyEntries);

            if (rows.Length >= maxRecentURLs)
            {
                fileContent = String.Empty;

                for (int i = 0; i < maxRecentURLs - 1; i++)
                {
                    fileContent += rows[i] + Environment.NewLine;
                }
            }

            fileContent = urlAddress + Environment.NewLine + fileContent;

            SaveFileList(ConstantUtil.ruFile, fileContent);
            LoadRecentURLs(form);
        }
Пример #4
0
 static XElement Serialize(UrlEntry url)
 {
     return new XElement("url",
         new XElement("loc", url.Loc),
         new XElement("lastmod", url.Lastmod.ToString("yyyy-MM-dd")),
         new XElement("changefreq", url.Changefreq.ToString().ToLower()),
         new XElement("priority", url.Priority.ToString("f1"))
     );
 }
Пример #5
0
        public async Task AddAndInitUrlEntry(UrlEntry urlEntry)
        {
            _urlEntriesContext.Add(urlEntry);
            await _urlEntriesContext.SaveChangesAsync();

            InitUrlEntry(urlEntry);

            await UpdateUrlEntry(urlEntry);
        }
Пример #6
0
        internal static void ShowUrlEntry(Form form, bool addFavourite = false)
        {
            UrlEntry urlEntry = new UrlEntry {
                Owner = form
            };

            urlEntry.InitializeForm(addFavourite);
            urlEntry.ShowDialog(form);
        }
Пример #7
0
        public void InvertedTest()
        {
            UrlEntry   target   = CreateUrlEntry(); // TODO: Initialize to an appropriate value
            const bool expected = true;

            target.Inverted = expected;
            bool actual = target.Inverted;

            Assert.Equal(expected, actual);
        }
Пример #8
0
        public void UrlTest()
        {
            UrlEntry target   = CreateUrlEntry(); // TODO: Initialize to an appropriate value
            var      expected = new Uri("http://www.microsoft.com");

            target.Url = expected;
            Uri actual = target.Url;

            Assert.Equal(expected, actual);
        }
Пример #9
0
 public Result <UrlEntry> AddShortUrl(UrlEntry entry)
 {
     using (var cn = Open(ConnectionString))
     {
         using (var cmd = CreateProc(cn, "AddUrlKey"))
         {
             cmd.Parameters.AddWithValue("@urlKey", entry.Key.Value);
             cmd.Parameters.AddWithValue("@url", entry.Url);
             return(CreateResult(cmd, dr => entry));
         }
     }
 }
Пример #10
0
        public void Write(UrlEntry value)
        {
            Write(value.Reserved);
            WriteNetwork(value.Lifetime);
            WriteNetworkString(value.Url);

            Write((byte)value.Authorities.Count);
            foreach (AuthenticationBlock block in value.Authorities)
            {
                Write(block);
            }
        }
Пример #11
0
        public UrlEntry ReadUrlEntry()
        {
            UrlEntry entry = new UrlEntry();

            entry.Reserved = ReadByte();
            entry.Lifetime = ReadNetwork16();
            entry.Url      = ReadNetworkString();

            int authCount = ReadByte();

            for (int n = 0; n < authCount; n++)
            {
                entry.Authorities.Add(ReadAuthenticationBlock());
            }

            return(entry);
        }
Пример #12
0
        internal static void LoadRecentURLs(UrlEntry form)
        {
            ComboBox urlAddressComboBox = form.urlAddressComboBox;

            urlAddressComboBox.Items.Clear();
            urlAddressComboBox.Items.Add("http://");

            String fileContent = FileUtil.ReadToEndWithStandardEncoding(Path.Combine(ConstantUtil.ApplicationExecutionPath(), ConstantUtil.ruFile));

            String[] separator           = { Environment.NewLine };
            String[] splittedFileContent = fileContent.Split(separator, StringSplitOptions.RemoveEmptyEntries);

            foreach (String splittedFileContentString in splittedFileContent)
            {
                urlAddressComboBox.Items.Add(splittedFileContentString);
            }
        }
Пример #13
0
 public ServiceRegistrationPacket() : base(SlpFunctionId.ServiceRegistration)
 {
     Url      = new UrlEntry();
     AttrList = string.Empty;
 }
Пример #14
0
 private void InitUrlEntry(UrlEntry urlEntry)
 {
     urlEntry.ShortUrl      = _serviceUrl + IdCryptographer.Encode(urlEntry.ID);
     urlEntry.RedirectCount = 0;
     urlEntry.CreationDate  = DateTime.Now;
 }
Пример #15
0
 public async Task UpdateUrlEntry(UrlEntry urlEntry)
 {
     _urlEntriesContext.Update(urlEntry);
     await _urlEntriesContext.SaveChangesAsync();
 }
Пример #16
0
 internal static void ClearRecentURLs(UrlEntry form)
 {
     SaveFileList(ConstantUtil.ruFile, String.Empty);
     LoadRecentURLs(form);
 }