//Реализация(изменение(Edit) Url моделя) public RepositoryResult <bool> Edit(UrlMdl model) { try { db.Configuration.LazyLoadingEnabled = false; string https = "https://"; string www = "www."; string newUrltext = model.FullUrl.Replace(https, string.Empty); string UrlText = newUrltext.Replace(www, string.Empty); Url result = db.Urls .Where(u => u.Id == model.Id) .Include(m => m.ShortUrl) .SingleOrDefault(); result.FullUrl = UrlText; result.ShortUrlPath = string.Format("{0}://{1}/{2}", accessor.Request.Url.Scheme, accessor.Request.Url.Authority, "redirect/" + model.ShortUrl); result.ShortUrl.ShortUrlPath = model.ShortUrl; if (result is null) { return(new RepositoryResult <bool>(value: false, success: false, message: "не удалось изменить Url")); } db.Entry(result).State = EntityState.Modified; db.SaveChanges(); return(new RepositoryResult <bool>(value: true, success: true, message: "Данные успешно изменилось")); } catch { return(new RepositoryResult <bool>(value: false, success: false, message: "не удалось изменить Url")); } }
public ActionResult Edit(UrlMdl model) { var result = urlMdl.Edit(model); if (result.Success == false) { return(View(model)); } return(RedirectToAction("Index")); }
//Реализация(Добавляет в таблицу Url моделя)(нужен модель UrlMdl) public RepositoryResult <UrlVmMdl> Insert(UrlMdl model) { string https = "https://"; string www = "www."; try { if (model is null) { return(new RepositoryResult <UrlVmMdl>(message: "не верно заполнили данные, проверьте еще раз", success: false)); } string newUrltext = model.FullUrl.Replace(https, string.Empty); string UrlText = newUrltext.Replace(www, string.Empty); var dbisNull = db.Urls.Where(u => u.FullUrl == UrlText).FirstOrDefault(); if (dbisNull != null) { db.Urls.Remove(dbisNull); db.SaveChanges(); } var RandomiText = Randomizer.GetRandomAlphanumericString((UrlText.Length / 2)); var shortUrl = string.Format("{0}://{1}/{2}", accessor.Request.Url.Scheme, accessor.Request.Url.Authority, "redirect/" + RandomiText); db.Urls.Add(new Url { ShortUrlPath = shortUrl, FullUrl = UrlText, ClickCount = 0, CreateDate = System.DateTime.Now, ShortUrl = new ShortUrl { ShortUrlPath = RandomiText, } }); db.SaveChanges(); return(new RepositoryResult <UrlVmMdl>(true, message: "Успешно добавленно", value: new UrlVmMdl { FullUrl = model.FullUrl, ShortUrl = shortUrl, })); } catch { return(new RepositoryResult <UrlVmMdl>(message: "не удалось сохнарить данные", success: false)); } }