public MediaFolder AddMediaFolder(MediaFolder mediaFolder) { DirectoryInfo newMediaFolderDirectoryInfo; DirectoryInfo newUploadFolderDirectoryInfo; MediaFolder existingMediaFolder; //Create the main directories if they do not currently exists try { if (!Directory.Exists(contentFolderURI.LocalPath)) Directory.CreateDirectory(contentFolderURI.LocalPath); if (!Directory.Exists(uploadFolderURI.LocalPath)) Directory.CreateDirectory(uploadFolderURI.LocalPath); } catch (Exception) { //todo log error throw; } DirectoryInfo newMediaFolderDirectory = new DirectoryInfo(contentFolderURI.LocalPath); newMediaFolderDirectoryInfo = newMediaFolderDirectory.CreateSubdirectory(mediaFolder.Name); //Check to see if a media folder with that name already exists existingMediaFolder = unitOfWork.MediaFolderRepository.GetFirst(x => x.Name.Equals(mediaFolder.Name, StringComparison.InvariantCulture)); if (existingMediaFolder != null) { return existingMediaFolder; } if (mediaFolder.UploadFolderID == 0) { //create new upload folder UploadFolder uploadFolder = new UploadFolder(); uploadFolder.Name = mediaFolder.UploadFolder.Name; DirectoryInfo newUploadFolderDirectory = new DirectoryInfo(uploadFolderURI.LocalPath); newUploadFolderDirectoryInfo = newUploadFolderDirectory.CreateSubdirectory(mediaFolder.UploadFolder.Name); uploadFolder.RelativePath = uploadFolderURI.MakeRelativeUri(new Uri(newUploadFolderDirectoryInfo.FullName)).ToString(); //unitOfWork.UploadFolderRepository.Insert(uploadFolder); //unitOfWork.Save(); //mediaFolder.UploadFolderID = uploadFolder.UploadFolderID; mediaFolder.UploadFolder = uploadFolder; } else { mediaFolder.UploadFolder = null; } //Create the new media directory mediaFolder.RelativePath = contentFolderURI.MakeRelativeUri(new Uri(newMediaFolderDirectoryInfo.FullName)).ToString(); unitOfWork.MediaFolderRepository.Insert(mediaFolder); unitOfWork.Save(); return mediaFolder; }
public ActionResult Add(MediaFolder mediaFolder) { if (mediaFolder.UploadFolderID == 0 && mediaFolder.Name != null) { if (ModelState.ContainsKey("UploadFolderID")) ModelState["UploadFolderID"].Errors.Clear(); } if (ModelState.IsValid) { contentFolder.AddMediaFolder(mediaFolder); return RedirectToAction("Index"); } ViewBag.UploadFolders = contentFolder.GetSelectListOfUploadFolders(); return View(mediaFolder); }
public ActionResult Edit(MediaFolder mediaFolder) { if (mediaFolder.UploadFolderID == 0 && mediaFolder.Name != null) { if (ModelState.ContainsKey("UploadFolderID")) ModelState["UploadFolderID"].Errors.Clear(); } if (ModelState.IsValid) { //unitOfWork.MediaFolderRepository.Update(mediaFolder); //unitOfWork.Save(); contentFolder.UpdateMediaFolder(mediaFolder); return RedirectToAction("Index"); } ViewBag.UploadFolders = contentFolder.GetSelectListOfUploadFolders(); return View(mediaFolder); }
/// <summary> /// Creates a folder /// </summary> /// <param name="newMediaFolder">New folder to create</param> /// <param name="uploadFolder">The upload folder to upload to this folder (optional)</param> public void CreateFolder(MediaFolder newMediaFolder, UploadFolder uploadFolder = null) { //Uri mediaFolderPath = new Uri(HttpContext.Current.Server.MapPath("/ContentFolders")); //Uri uploadFolderPath = new Uri(HttpContext.Current.Server.MapPath("/UploadFolders")); DirectoryInfo newMediaFolderDirectoryInfo; DirectoryInfo newUploadFolderDirectoryInfo; if (newMediaFolder == null) { //todo log error and return return; } //Create the main directories if they do not currently exists try { if (!Directory.Exists(FolderLocation.ContentFolder.LocalPath)) Directory.CreateDirectory(FolderLocation.ContentFolder.LocalPath); if (!Directory.Exists(FolderLocation.UploadFolder.LocalPath)) Directory.CreateDirectory(FolderLocation.UploadFolder.LocalPath); } catch (Exception) { //todo log error throw; } try { //Create the new directory DirectoryInfo newMediaFolderDirectory = new DirectoryInfo(FolderLocation.ContentFolder.LocalPath); newMediaFolderDirectoryInfo = newMediaFolderDirectory.CreateSubdirectory(newMediaFolder.Name); newMediaFolder.RelativePath = FolderLocation.ContentFolder.MakeRelativeUri(new Uri(newMediaFolderDirectoryInfo.FullName)).ToString(); } catch (Exception) { //todo log error throw; } if (newMediaFolder.UploadFolderID == 0) { if (uploadFolder != null) { try { DirectoryInfo newUploadFolderDirectory = new DirectoryInfo(FolderLocation.UploadFolder.LocalPath); newUploadFolderDirectoryInfo = newUploadFolderDirectory.CreateSubdirectory(uploadFolder.Name); uploadFolder.RelativePath = FolderLocation.UploadFolder.MakeRelativeUri(new Uri(newUploadFolderDirectoryInfo.FullName)).ToString(); try { _mediaManagerContext.Entry(uploadFolder).State = EntityState.Added; _mediaManagerContext.SaveChanges(); try { newMediaFolder.UploadFolderID = uploadFolder.UploadFolderID; } catch (Exception) { //todo log error throw; } } catch (Exception) { //todo log error throw; } } catch (Exception) { //todo log error throw; } } } try { _mediaManagerContext.Entry(newMediaFolder).State = EntityState.Added; _mediaManagerContext.SaveChanges(); } catch (Exception) { //todo log error throw; } #region commented out //if (Directory.Exists(mainContentFolderPath) && Directory.Exists(mainUploadFolderPath)) //{ // string newMediaFolderPath = HttpContext.Current.Server.MapPath("/ContentFolders/" + newMediaFolder.Name); // DirectoryInfo mediaFolderDirectory = new DirectoryInfo(newMediaFolderPath); // try // { // } // catch (Exception) // { // throw; // } // if (newMediaFolder.UploadFolderID != 0) // { // string newUploadFolderPath = HttpContext.Current.Server.MapPath("/UploadFolders/" + uploadFolder.Name); // DirectoryInfo uploadFolderDirectory = new DirectoryInfo(newUploadFolderPath); // } //} //else //{ // try // { // if (!Directory.Exists(mainContentFolderPath)) // Directory.CreateDirectory(mainContentFolderPath); // if (!Directory.Exists(mainUploadFolderPath)) // Directory.CreateDirectory(mainUploadFolderPath); // } // catch (Exception) // { // throw; // } //} #endregion }
/// <summary> /// Updates a folder /// </summary> /// <param name="mediaFolder">Media Folder to Update</param> /// <param name="uploadFolder">Upload Folder to Update (optional)</param> public void UpdateFolder(MediaFolder mediaFolder, UploadFolder uploadFolder = null) { DirectoryInfo newUploadFolderDirectoryInfo; if (mediaFolder == null || (mediaFolder.UploadFolderID == 0 && uploadFolder == null)) { //todo log error and return return; } if (mediaFolder.UploadFolderID == 0) { try { DirectoryInfo newUploadFolderDirectory = new DirectoryInfo(FolderLocation.UploadFolder.LocalPath); newUploadFolderDirectoryInfo = newUploadFolderDirectory.CreateSubdirectory(uploadFolder.Name); uploadFolder.RelativePath = FolderLocation.UploadFolder.MakeRelativeUri(new Uri(newUploadFolderDirectoryInfo.FullName)).ToString(); try { _mediaManagerContext.Entry(uploadFolder).State = EntityState.Added; _mediaManagerContext.SaveChanges(); try { mediaFolder.UploadFolderID = uploadFolder.UploadFolderID; } catch (Exception) { //todo log error throw; } } catch (Exception) { //todo log error throw; } } catch (Exception) { //todo log error throw; } } try { _mediaManagerContext.Entry(mediaFolder).State = EntityState.Modified; _mediaManagerContext.SaveChanges(); } catch (DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (var ve in eve.ValidationErrors) { Console.WriteLine("- property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); } } throw; } }
public MediaFolder UpdateMediaFolder(MediaFolder mediaFolder) { DirectoryInfo newUploadFolderDirectoryInfo; if (mediaFolder.UploadFolderID == 0) { //create new media folder UploadFolder uploadFolder = new UploadFolder(); uploadFolder.Name = mediaFolder.UploadFolder.Name; DirectoryInfo newUploadFolderDirectory = new DirectoryInfo(uploadFolderURI.LocalPath); newUploadFolderDirectoryInfo = newUploadFolderDirectory.CreateSubdirectory(mediaFolder.UploadFolder.Name); uploadFolder.RelativePath = uploadFolderURI.MakeRelativeUri(new Uri(newUploadFolderDirectoryInfo.FullName)).ToString(); //mediaFolder.UploadFolder = uploadFolder; unitOfWork.UploadFolderRepository.Insert(uploadFolder); mediaFolder.UploadFolderID = uploadFolder.UploadFolderID; } mediaFolder.UploadFolder = null; unitOfWork.MediaFolderRepository.Update(mediaFolder); unitOfWork.Save(); return mediaFolder; }