private string getModelError(AdvBanner b) { string error = null; if (string.IsNullOrWhiteSpace(b.Name)) { error = "Ви не вказали назву"; return(error); } if (string.IsNullOrWhiteSpace(b.DestUrl)) { error = "Ви не вказали адресу посилання для банеру"; return(error); } if (!ZcrlDataValidator.isUrl(b.DestUrl)) { error = "Невірний формат адреси"; return(error); } if (b.ViewPriority < 1 || b.ViewPriority > 10000) { error = "Пріорітет відображення повинен бути від 1 до 10000"; return(error); } return(error); }
private void logChanges(AdvBanner oldBanner, AdvBanner newBanner) { string changes = null; if (oldBanner.Name != newBanner.Name) { changes += string.Format("Користувач <b>{0} {1}.{2}.</b> змінив назву банера з '{3}' на '{4}'<br />", (string)Profile["LastName"], ((string)Profile["FirstName"]).First(), ((string)Profile["MiddleName"]).First(), oldBanner.Name, newBanner.Name); } if (oldBanner.DestUrl != newBanner.DestUrl) { changes += string.Format("Користувач <b>{0} {1}.{2}.</b> змінив адресу посилання банера з '{3}' на '{4}'<br />", (string)Profile["LastName"], ((string)Profile["FirstName"]).First(), ((string)Profile["MiddleName"]).First(), oldBanner.DestUrl, newBanner.DestUrl); } if (!string.IsNullOrWhiteSpace(changes)) { using (zcrlDbContext = new ZcrlContext()) { zcrlDbContext.LogJournal.Add(new LogRecord() { СreatedDate = DateTime.Now, RecordType = LogRecordType.BannerAddEdit, Content = changes }); zcrlDbContext.SaveChanges(); } } }
public ActionResult AddBanner(AdvBanner banner, HttpPostedFileBase bannerFile) { string userInputError = getModelError(banner); if (!string.IsNullOrWhiteSpace(userInputError)) { TempData["Error"] = userInputError; ViewBag.Mode = CrudMode.Add; return(View("AddEditBanner", banner)); } if (!bannerFile.IsImage()) { TempData["Error"] = "Невірний формат файлу для банеру"; ViewBag.Mode = CrudMode.Add; return(View("AddEditBanner", banner)); } using (zcrlDbContext = new ZcrlContext()) { AdvBanner newBanner = new AdvBanner() { Name = banner.Name, DestUrl = banner.DestUrl, ViewPriority = banner.ViewPriority }; try { string newFileName = Guid.NewGuid().ToString() + System.IO.Path.GetExtension(bannerFile.FileName); string newFilePath = System.IO.Path.Combine(Server.MapPath(UPLOADFILE_DIR), newFileName); bannerFile.SaveAs(newFilePath); newBanner.ImgName = newFileName; zcrlDbContext.Banners.Add(newBanner); zcrlDbContext.LogJournal.Add(new LogRecord() { СreatedDate = DateTime.Now, RecordType = LogRecordType.BannerAddEdit, Content = string.Format("Користувач <b>{0} {1}.{2}.</b> створив баннер <b>{3}</b>.", (string)Profile["LastName"], ((string)Profile["FirstName"]).First(), ((string)Profile["MiddleName"]).First(), newBanner.Name) }); zcrlDbContext.SaveChanges(); } catch { TempData["Error"] = "Помилка при заватаженні файлу, повторіть свою спробу пізніше"; ViewBag.Mode = CrudMode.Edit; return(View("AddEditBanner", banner)); } TempData["SuccessMessage"] = "Баннер успішно додано!"; return(RedirectToAction("BannersList")); } }
public ActionResult EditBanner(AdvBanner newBanner, HttpPostedFileBase bannerFile) { string userInputError = getModelError(newBanner); if (!string.IsNullOrWhiteSpace(userInputError)) { TempData["Error"] = userInputError; ViewBag.Mode = CrudMode.Edit; return(View("AddEditBanner", newBanner)); } using (zcrlDbContext = new ZcrlContext()) { var editableBanner = (from b in zcrlDbContext.Banners where (b.Id == newBanner.Id) select b).FirstOrDefault(); if (editableBanner == null) { return(RedirectToAction("BannersList")); } if (bannerFile.IsImage()) { try { string newFileName = Guid.NewGuid().ToString() + System.IO.Path.GetExtension(bannerFile.FileName); string newFilePath = System.IO.Path.Combine(Server.MapPath(UPLOADFILE_DIR), newFileName); bannerFile.SaveAs(newFilePath); if (System.IO.File.Exists(System.IO.Path.Combine(Server.MapPath(UPLOADFILE_DIR), editableBanner.ImgName))) { System.IO.File.Delete(System.IO.Path.Combine(Server.MapPath(UPLOADFILE_DIR), editableBanner.ImgName)); } editableBanner.ImgName = newFileName; zcrlDbContext.LogJournal.Add(new LogRecord() { СreatedDate = DateTime.Now, RecordType = LogRecordType.BannerAddEdit, Content = string.Format("Користувач <b>{0} {1}.{2}.</b> змінив зображення баннеру <b>{3}</b>.", (string)Profile["LastName"], ((string)Profile["FirstName"]).First(), ((string)Profile["MiddleName"]).First(), editableBanner.Name) }); zcrlDbContext.SaveChanges(); } catch { TempData["ErrorMessage"] = "Помилка завантаження файлу"; ViewBag.Mode = CrudMode.Edit; return(RedirectToAction("AddEditBanner", editableBanner.Id)); } } logChanges(editableBanner, newBanner); editableBanner.Name = newBanner.Name; editableBanner.DestUrl = newBanner.DestUrl; editableBanner.ViewPriority = newBanner.ViewPriority; zcrlDbContext.SaveChanges(); TempData["SuccessMessage"] = "Баннер успішно змінений!"; return(RedirectToAction("BannersList")); } }