public JsonResult EditInformationBlock(CreateEditInformationBlockModel model) { try { InformationBlock informationBlock = DatabaseContext.InformationBlocks.FirstOrDefault(b => b.Id == model.Id.Value); if (informationBlock == null) { throw new ArgumentException("Выбранной новости не найдено"); } informationBlock.Title = model.Title; informationBlock.Body = model.Body; IEnumerable <int> ids = model.TagsIds.Select(t => Convert.ToInt32(t)); IEnumerable <Tag> tags = ids.Select(tagId => DatabaseContext.Tags.FirstOrDefault(t => t.Id == tagId)); List <TagInformationBlock> tagInformationBlocks = tags.Select(t => { return(new TagInformationBlock() { Tag = t, InformationBlock = informationBlock }); }).ToList(); informationBlock.TagInformationBlocks = tagInformationBlocks; DatabaseContext.SaveChanges(); if (model.Files != null) { string rootDirectory = Server.MapPath("~\\Files"); string currentInformationBlockDirectory = "\\InformationBlock_" + informationBlock.Id; string informationBlockDirectoryName = rootDirectory + currentInformationBlockDirectory; DirectoryInfo directory = new DirectoryInfo(informationBlockDirectoryName); if (!directory.Exists) { directory.Create(); informationBlock.File = currentInformationBlockDirectory; DatabaseContext.SaveChanges(); } else { foreach (var file in directory.GetFiles()) { file.Delete(); } } foreach (var file in model.Files) { string fileName = Path.GetFileName(file.FileName); file.SaveAs(directory.FullName + "\\" + fileName); } } return(Json(new { result = true })); } catch (Exception e) { Logger.Error(e.Message); return(Json(new { result = false })); } }
public JsonResult CreateInformationBlock(CreateEditInformationBlockModel model) { try { InformationBlock informationBlock = new InformationBlock() { Title = model.Title, Body = model.Body, Date = DateTime.UtcNow, Employee = (CurrentUser as Employee) }; DatabaseContext.InformationBlocks.Add(informationBlock); DatabaseContext.SaveChanges(); IEnumerable <int> ids = model.TagsIds.Select(t => Convert.ToInt32(t)); IEnumerable <Tag> tags = ids.Select(tagId => DatabaseContext.Tags.FirstOrDefault(t => t.Id == tagId)); List <TagInformationBlock> tagInformationBlocks = tags.Select(t => { return(new TagInformationBlock() { Tag = t, InformationBlock = informationBlock }); }).ToList(); informationBlock.TagInformationBlocks = tagInformationBlocks; DatabaseContext.SaveChanges(); if (model.Files != null) { string rootDirectory = Server.MapPath("~\\Files"); string currentInformationBlockDirectory = "\\InformationBlock_" + informationBlock.Id; string informationBlockDirectoryName = rootDirectory + currentInformationBlockDirectory; DirectoryInfo directory = new DirectoryInfo(informationBlockDirectoryName); if (!directory.Exists) { directory.Create(); informationBlock.File = currentInformationBlockDirectory; } foreach (var file in model.Files) { string fileName = Path.GetFileName(file.FileName); file.SaveAs(directory.FullName + "\\" + fileName); } } return(Json(new { result = true })); } catch (Exception e) { Logger.Error(e.Message); return(Json(new { result = false })); } }