public SuccessModel MoveCopyArchive(MoveCopyImageModel model) { SuccessModel successModel = new SuccessModel(); if (model.SourceFolderId == model.DestinationFolderId) { successModel.Success = "Source and Destination the same"; return(successModel); } try { string imageLinkId; using (var db = new OggleBoobleMySqlContext()) { ImageFile dbImageFile = db.ImageFiles.Where(i => i.Id == model.LinkId).FirstOrDefault(); if (dbImageFile == null) { successModel.Success = "link [" + model.LinkId + "] not found"; return(successModel); } imageLinkId = dbImageFile.Id; var categoryImageLinks = db.CategoryImageLinks.Where(l => l.ImageCategoryId == model.DestinationFolderId).ToList(); if (model.Mode == "Copy") // just add a rec to CategoryImageLink (which should be called File_Image) { MySqlDataContext.CategoryImageLink existingLink = categoryImageLinks.Where(l => l.ImageLinkId == imageLinkId).FirstOrDefault(); if (existingLink != null) { successModel.Success = "Link already exists"; } else { db.CategoryImageLinks.Add(new MySqlDataContext.CategoryImageLink() { ImageCategoryId = model.DestinationFolderId, ImageLinkId = imageLinkId, SortOrder = 999 }); db.SaveChanges(); successModel.Success = "ok"; } } else // Archive / Move { var oldCatImageLink = db.CategoryImageLinks .Where(c => c.ImageCategoryId == model.SourceFolderId && c.ImageLinkId == dbImageFile.Id).First(); db.CategoryImageLinks.Add(new MySqlDataContext.CategoryImageLink() { ImageCategoryId = model.DestinationFolderId, ImageLinkId = dbImageFile.Id, SortOrder = oldCatImageLink.SortOrder }); db.SaveChanges(); if (model.Mode == "Move") { db.CategoryImageLinks.Remove(oldCatImageLink); } db.SaveChanges(); } // determine if this is the first image added to folder successModel.ReturnValue = db.CategoryImageLinks.Where(c => c.ImageCategoryId == model.DestinationFolderId).Count().ToString(); } successModel.Success = "ok"; } catch (Exception ex) { successModel.Success = Helpers.ErrorDetails(ex); } return(successModel); }
public string MoveLink(string linkId, int destinationFolderId, string request) { string success; try { string ftpRepo = imgRepo.Substring(7); using (var db = new OggleBoobleMySqlContext()) { ImageFile dbImageFile = db.ImageFiles.Where(i => i.Id == linkId).First(); string ext = dbImageFile.FileName.Substring(dbImageFile.FileName.LastIndexOf(".")); CategoryFolder dbSourceFolder = db.CategoryFolders.Where(f => f.Id == dbImageFile.FolderId).First(); string sourceFtpPath = ftpHost + ftpRepo + "/" + dbSourceFolder.FolderPath; string fileName = dbImageFile.FileName; //string assumedFileName = dbSourceFolder.FolderName + "_" + linkId + ext; CategoryFolder dbDestFolder = db.CategoryFolders.Where(i => i.Id == destinationFolderId).First(); string destFtpPath = ftpHost + ftpRepo + "/" + dbDestFolder.FolderPath; string newFileName = dbDestFolder.FolderName + "_" + linkId + ext; if (dbSourceFolder.Id == dbDestFolder.Parent) { newFileName = dbSourceFolder.FolderName + "_" + linkId + ext; } if (!FtpUtilies.DirectoryExists(destFtpPath)) { FtpUtilies.CreateDirectory(destFtpPath); } success = FtpUtilies.MoveFile(sourceFtpPath + "/" + fileName, destFtpPath + "/" + newFileName); if (success == "ok") { // update ImageFile dbImageFile.FileName = newFileName; dbImageFile.FolderId = destinationFolderId; // create new link db.CategoryImageLinks.Add(new MySqlDataContext.CategoryImageLink() { ImageCategoryId = destinationFolderId, ImageLinkId = linkId, SortOrder = 1746 }); if (request == "MOV") { // update link MySqlDataContext.CategoryImageLink existinglink = db.CategoryImageLinks .Where(l => l.ImageLinkId == linkId && l.ImageCategoryId == dbSourceFolder.Id).First(); db.CategoryImageLinks.Remove(existinglink); } //if (request == "ARK") db.SaveChanges(); success = "ok"; } } } catch (Exception ex) { success = Helpers.ErrorDetails(ex); } return(success); }