public BreadCrumbSuccessModel GetBreadcrumbs(int folderId) { var breadCrumbs = new BreadCrumbSuccessModel(); try { using (var db = new OggleBoobleMySqlContext()) { CategoryFolder thisFolder = db.CategoryFolders.Where(f => f.Id == folderId).First(); breadCrumbs.BreadCrumbs.Add(new BreadCrumbItemModel() { FolderId = thisFolder.Id, FolderName = thisFolder.FolderName, ParentId = thisFolder.Parent, IsInitialFolder = true }); var parent = thisFolder.Parent; while (parent > 1) { CategoryFolder parentDb = db.CategoryFolders.Where(f => f.Id == parent).First(); breadCrumbs.BreadCrumbs.Add(new BreadCrumbItemModel() { FolderId = parentDb.Id, FolderName = parentDb.FolderName, IsInitialFolder = false }); parent = parentDb.Parent; } breadCrumbs.Success = "ok"; } } catch (Exception ex) { breadCrumbs.Success = Helpers.ErrorDetails(ex); } return(breadCrumbs); }
public GetInfoSuccessModel GeFolderIdFromtPageName(string folderName) { GetInfoSuccessModel getInfoSuccess = new GetInfoSuccessModel(); try { using (OggleBoobleMySqContext dbm = new OggleBoobleMySqContext()) { CategoryFolder categoryFolder = dbm.CategoryFolders.Where(f => f.FolderName == folderName).FirstOrDefault(); if (categoryFolder != null) { getInfoSuccess.PageId = categoryFolder.Id; getInfoSuccess.Success = "ok"; } else { getInfoSuccess.Success = "page not found"; } } } catch (Exception ex) { getInfoSuccess.Success = Helpers.ErrorDetails(ex); } return(getInfoSuccess); }
public string Build(int folderId, bool recurr) { string success = ""; { try { using (OggleBoobleContext db = new OggleBoobleContext()) { //SignalRHost.ProgressHub.PostToClient("Creating static files"); //VwDirTree vwDirTree = db.VwDirTrees.Where(v => v.Id == folderId).First(); //totalFiles = Math.Max(vwDirTree.GrandTotalFiles, vwDirTree.TotalFiles); //SignalRHost.ProgressHub.ShowProgressBar(totalFiles, 0); CategoryFolder categoryFolder = db.CategoryFolders.Where(f => f.Id == folderId).First(); var rootFolder = categoryFolder.RootFolder; if (rootFolder == "centerfold") { rootFolder = "playboy"; } success = CreatePage(folderId, rootFolder, categoryFolder.FolderName.Replace(".OGGLEBOOBLE.COM", ""), db, recurr); } } catch (Exception e) { success = Helpers.ErrorDetails(e); } return(success); } }
public ImageInfoModel getFullImageDetails(int folderId, string linkId) { var timer = new System.Diagnostics.Stopwatch(); timer.Start(); var imageInfo = new ImageInfoModel(); try { using (var db = new OggleBoobleMySqlContext()) { //CategoryImageLink dbCategoryImageLink= db.CategoryImageLinks.Where(l=>l.ImageLinkId) CategoryFolder dbPageFolder = db.CategoryFolders.Where(f => f.Id == folderId).FirstOrDefault(); imageInfo.RootFolder = dbPageFolder.RootFolder; imageInfo.FolderPath = dbPageFolder.FolderPath; ImageFile dbImageFile = db.ImageFiles.Where(i => i.Id == linkId).FirstOrDefault(); if (dbImageFile == null) { imageInfo.Success = "no image link found"; return(imageInfo); } if (dbImageFile.FolderId != folderId) { var dbModelFolder = db.CategoryFolders.Where(f => f.Id == dbImageFile.FolderId).FirstOrDefault(); if (dbModelFolder == null) { imageInfo.Success = "no image link folderId file found"; return(imageInfo); } imageInfo.ModelFolderId = dbModelFolder.Id; imageInfo.ModelFolderName = dbModelFolder.FolderName; } imageInfo.FolderName = dbPageFolder.FolderName; imageInfo.Height = dbImageFile.Height; imageInfo.FileName = dbImageFile.FileName; imageInfo.Link = dbImageFile.Id; imageInfo.Width = dbImageFile.Width; imageInfo.Size = dbImageFile.Size; imageInfo.LastModified = dbImageFile.Acquired.ToShortDateString(); imageInfo.ExternalLink = dbImageFile.ExternalLink; imageInfo.InternalLinks = (from l in db.CategoryImageLinks join f in db.CategoryFolders on l.ImageCategoryId equals f.Id where l.ImageLinkId == linkId && l.ImageCategoryId != folderId select new { folderId = f.Id, folderName = f.FolderName }) .ToDictionary(i => i.folderId, i => i.folderName); } imageInfo.Success = "ok"; } catch (Exception ex) { imageInfo.Success = Helpers.ErrorDetails(ex); } timer.Stop(); System.Diagnostics.Debug.WriteLine("GetImageLinks took: " + timer.Elapsed); return(imageInfo); }
public AddVisitorSuccessModel AddVisitor(AddVisitorModel visitorData) { var addVisitorSuccess = new AddVisitorSuccessModel(); try { using (OggleBoobleMySqContext db = new OggleBoobleMySqContext()) { CategoryFolder categoryFolder = db.CategoryFolders.Where(f => f.Id == visitorData.PageId).FirstOrDefault(); if (categoryFolder != null) { addVisitorSuccess.PageName = categoryFolder.FolderName; } var existingVisitor = db.Visitors.Where(v => v.IpAddress == visitorData.IpAddress).FirstOrDefault(); if (existingVisitor != null) { addVisitorSuccess.VisitorId = existingVisitor.VisitorId; addVisitorSuccess.IsNewVisitor = false; } else { // We have a new visitor! //string dnsHostName = Dns.GetHostName(); //IPHostEntry ipEntry = Dns.GetHostEntry(dnsHostName); //IPAddress[] iPAddresses = ipEntry.AddressList; //string ipAddress = iPAddresses[iPAddresses.Length - 1].ToString(); string newVisitorId = Guid.NewGuid().ToString(); Visitor newVisitor = new Visitor() { VisitorId = newVisitorId, InitialPage = visitorData.PageId, City = visitorData.City, Country = visitorData.Country, GeoCode = visitorData.GeoCode, Region = visitorData.Region, InitialVisit = DateTime.Now, IpAddress = visitorData.IpAddress }; db.Visitors.Add(newVisitor); db.SaveChanges(); addVisitorSuccess.VisitorId = newVisitorId; addVisitorSuccess.IsNewVisitor = true; } addVisitorSuccess.Success = "ok"; } } catch (Exception ex) { addVisitorSuccess.Success = Helpers.ErrorDetails(ex); } return(addVisitorSuccess); }
public IErrorsInfo CreateMappingForFolder(CategoryFolder fodler) { try { } catch (Exception ex) { string mes = ex.Message; DMEEditor.AddLogMessage(ex.Message, "Could not create fodler map" + mes, DateTime.Now, -1, mes, Errors.Failed); }; return(DMEEditor.ErrorObject); }
private void CreateRedirectPage(int folderId, StaticPageResultsModel resultsModel, OggleBoobleMySqlContext db, bool recurr) { try { CategoryFolder dbFolder = db.CategoryFolders.Where(f => f.Id == folderId).First(); if (((dbFolder.FolderType == "singleModel") || (dbFolder.FolderType == "singleParent")) && (dbFolder.RootFolder != "magazine")) { string pageLocation = httpLocation + "album.html?folder=" + folderId; var sb = new StringBuilder("<html>\n<head>\n"); sb.Append(createMetaHead(dbFolder.FolderName, pageLocation)); sb.Append("</head><body>\n"); var babepediaTrackBackLink = db.TrackbackLinks.Where(t => t.PageId == folderId && t.SiteCode == "BAB").FirstOrDefault(); if (babepediaTrackBackLink != null) { sb.Append("<div><a href='" + babepediaTrackBackLink.Href + "'>Babepedia</a></div>\n"); } sb.Append("<script>\nif(document.URL.indexOf(\"?\")>0)\n" + "{\n" + "let paramLink='" + pageLocation + "&'.concat(document.URL.substring(document.URL.indexOf(\"?\")+1));\n" + "(function(){window.location.href=paramLink;})();}\n" + "else\n" + " (function(){window.location.href='" + pageLocation + "&calledFrom=static';})();\n</script>\n"); sb.Append("</body>\n</html>"); string writeToDiskSuccess = WriteFileToDisk(sb.ToString(), dbFolder.FolderName, folderId, db); if (writeToDiskSuccess != "ok") { resultsModel.Errors.Add(writeToDiskSuccess + " " + dbFolder.FolderName); resultsModel.Success = writeToDiskSuccess + " " + dbFolder.FolderName; } else { resultsModel.PagesCreated++; } } if (recurr) { if (resultsModel.Success == "ok") { List <CategoryFolder> categoryFolders = db.CategoryFolders.Where(f => f.Parent == folderId).ToList(); foreach (CategoryFolder dbCategoryFolder in categoryFolders) { CreateRedirectPage(dbCategoryFolder.Id, resultsModel, db, true); } } } resultsModel.FoldersProcessed++; } catch (Exception e) { resultsModel.Success = Helpers.ErrorDetails(e); } }
private void XXGoDeepRecurr(int parentNode) { List <int> childFolders = null; CategoryFolder dbThisCatFolder = null; using (var db = new OggleBoobleMySqlContext()) { dbThisCatFolder = db.CategoryFolders.Where(f => f.Id == parentNode).First(); int fileLinkCount = db.CategoryImageLinks.Where(l => l.ImageCategoryId == parentNode).Count(); childFolders = db.CategoryFolders.Where(f => f.Parent == parentNode).Select(f => f.Id).ToList(); childFolders.AddRange(db.StepChildren.Where(s => s.Parent == parentNode).Select(s => s.Child).ToList()); if ((dbThisCatFolder.Files != fileLinkCount) || (dbThisCatFolder.SubFolders != childFolders.Count())) { dbThisCatFolder.Files = fileLinkCount; dbThisCatFolder.SubFolders = childFolders.Count(); db.SaveChanges(); } } int thisLevelTotalFiles = 0; int thisLevelTotalSubDirs = 0; foreach (int childFolder in childFolders) { using (var db = new OggleBoobleMySqlContext()) { thisLevelTotalFiles += db.ImageFiles.Where(i => i.FolderId == childFolder).Count(); if (db.CategoryFolders.Where(i => i.Parent == childFolder).FirstOrDefault() != null) { thisLevelTotalSubDirs += db.CategoryFolders.Where(f => f.Parent == childFolder).Count(); } } //GoDeepRecurr(childFolder); } using (var db = new OggleBoobleMySqlContext()) { if (db.CategoryFolders.Where(i => i.Parent == parentNode).FirstOrDefault() != null) { thisLevelTotalFiles = db.CategoryFolders.Where(i => i.Parent == parentNode).Select(f => f.Files).Sum(); thisLevelTotalSubDirs = db.CategoryFolders.Where(f => f.Parent == parentNode).Select(f => f.SubFolders).Sum(); } if ((dbThisCatFolder.TotalSubFolders != thisLevelTotalSubDirs) || (dbThisCatFolder.TotalChildFiles != thisLevelTotalFiles)) { dbThisCatFolder.TotalSubFolders = thisLevelTotalSubDirs; dbThisCatFolder.TotalChildFiles = thisLevelTotalFiles; db.SaveChanges(); } } }
/// <summary> /// Display the directory for the specified CategoryFolder /// </summary> public override bool ViewFromFolder(FolderBase folder, Address address, FolderOptions flags) { CategoryFolder category = folder as CategoryFolder; if (category != null) { if (flags.HasFlag(FolderOptions.ClearFilter)) { _currentFilterString = null; } _currentCategory = category; _items = ItemsForView(); SortItems(); } return(true); }
public string RenameFolder(int folderId, string newFolderName) { string success; try { using (var db = new OggleBoobleMySqlContext()) { CategoryFolder rowToRename = db.CategoryFolders.Where(f => f.Id == folderId).First(); rowToRename.FolderName = newFolderName; db.SaveChanges(); } success = "ok"; } catch (Exception ex) { success = Helpers.ErrorDetails(ex); } return(success); }
public string UpdateFolderImage(string linkId, int folderId, string level) { string success = ""; try { using (var mdb = new OggleBoobleMySqlContext()) { CategoryFolder dbCategoryFolder = mdb.CategoryFolders.Where(f => f.Id == folderId).First(); if (level == "folder") { dbCategoryFolder.FolderImage = linkId; } else { CategoryFolder dbParentCategoryFolder = mdb.CategoryFolders.Where(f => f.Id == dbCategoryFolder.Parent).First(); dbParentCategoryFolder.FolderImage = linkId; } mdb.SaveChanges(); } //using (var db = new OggleBoobleMSSqlContext()) //{ // CategoryFolder dbCategoryFolder = db.CategoryFolders.Where(f => f.Id == folderId).FirstOrDefault(); // if (level == "folder") // { // dbCategoryFolder.FolderImage = linkId; // } // else // { // CategoryFolder dbParentCategoryFolder = db.CategoryFolders.Where(f => f.Id == dbCategoryFolder.Parent).First(); // dbParentCategoryFolders.FolderImage = linkId; // } // db.SaveChanges(); //} success = "ok"; } catch (Exception ex) { success = Helpers.ErrorDetails(ex); } return(success); }
public ImageCommentSuccessModel Add(ImageCommentModel imageCommentModel) { var imageCommentSuccessModel = new ImageCommentSuccessModel(); try { ImageComment dbNewImageComment = new ImageComment(); dbNewImageComment.Id = Guid.NewGuid().ToString(); dbNewImageComment.Posted = DateTime.Now; dbNewImageComment.ImageLinkId = imageCommentModel.ImageLinkId; dbNewImageComment.CommentText = imageCommentModel.CommentText; dbNewImageComment.CommentTitle = imageCommentModel.CommentTitle; dbNewImageComment.CalledFrom = imageCommentModel.CalledFrom; dbNewImageComment.VisitorId = imageCommentModel.VisitorId; using (var db = new OggleBoobleMySqlContext()) { db.ImageComments.Add(dbNewImageComment); db.SaveChanges(); CategoryFolder categoryFolder = db.CategoryFolders.Where(f => f.Id == imageCommentModel.FolderId).FirstOrDefault(); imageCommentSuccessModel.FolderName = categoryFolder.FolderName; Visitor visitor = db.Visitors.Where(v => v.VisitorId == imageCommentModel.VisitorId).FirstOrDefault(); if (visitor != null) { imageCommentSuccessModel.VisitorInfo = visitor.City + " " + visitor.Region + " " + visitor.Country; } RegisteredUser dbRegisteredUser = db.RegisteredUsers.Where(u => u.VisitorId == imageCommentModel.VisitorId).FirstOrDefault(); if (dbRegisteredUser != null) { imageCommentSuccessModel.UserName = dbRegisteredUser.UserName; } imageCommentSuccessModel.Success = "ok"; } } catch (Exception ex) { imageCommentSuccessModel.Success = Helpers.ErrorDetails(ex); } return(imageCommentSuccessModel); }
public AlbumInfoModel GetQucikHeader(int folderId) { var albumInfo = new AlbumInfoModel(); try { using (var db = new OggleBoobleMySqlContext()) { CategoryFolder dbCategoryFolder = db.CategoryFolders.Where(f => f.Id == folderId).First(); albumInfo.RootFolder = dbCategoryFolder.RootFolder; albumInfo.FolderName = dbCategoryFolder.FolderName; albumInfo.FolderType = dbCategoryFolder.FolderType; } albumInfo.Success = "ok"; } catch (Exception ex) { albumInfo.Success = Helpers.ErrorDetails(ex); } return(albumInfo); }
private void RefreshForum(DirForum forum) { if (forum != null) { forumName.Text = forum.Name; forumImage.Image = CategoryFolder.IconForCategory(forum.Cat); forumTitle.Text = forum.Title; string descText = string.Format("<font face=\"Arial\" size=\"11px\"><div style=\"color:rgb({0});\">{1}</div></font>", UI.ToString(SystemColors.ControlText), forum.Desc); descText = descText.Replace("\n", "<br/>"); forumDescription.Text = descText; if (forum.IsClosed) { statusField.Text = Resources.JoinClosedForum; joinButton.Text = Resources.RequestAdmittance; } ResizeForm(); } }
/// <summary> /// Callback after the forum details are refreshed from the server, whether or not they /// succeed. The e.Forum parameter is null if the forum doesn't exist. /// </summary> private void OnForumUpdated(object sender, DirForum forum) { Platform.UIThread(this, delegate { _forum = forum; if (_forum != null) { RefreshForum(_forum); } else { forumName.Text = _forumName; forumImage.Image = CategoryFolder.IconForCategory("CIX"); statusField.Text = Resources.JoinNoSuchForum; cancelButton.Text = Resources.Close; joinButton.Visible = false; joinButton.Enabled = false; ResizeForm(); } }); }
public SuccessModel Create(int parentId, string newFolderName, string folderType) { SuccessModel successModel = new SuccessModel(); try { using (var db = new OggleBoobleMySqlContext()) { string ftpRepo = imgRepo.Substring(7); var dbDestParent = db.CategoryFolders.Where(i => i.Id == parentId).First(); string newFtpPath = ftpHost + ftpRepo + "/" + dbDestParent.FolderPath + "/" + newFolderName; if (FtpUtilies.DirectoryExists(newFtpPath)) { successModel.Success = "folder already exists"; return(successModel); } successModel.Success = FtpUtilies.CreateDirectory(newFtpPath); if (successModel.Success == "ok") { CategoryFolder newFolder = new CategoryFolder(); //newFolder.Id = newFolderId; newFolder.Parent = parentId; newFolder.FolderName = newFolderName.Trim(); newFolder.FolderType = folderType; newFolder.RootFolder = dbDestParent.RootFolder; newFolder.SortOrder = 0; newFolder.FolderPath = dbDestParent.FolderPath + "/" + newFolderName; db.CategoryFolders.Add(newFolder); db.SaveChanges(); int newFolderId = newFolder.Id; successModel.ReturnValue = newFolderId.ToString(); successModel.Success = "ok"; } } } catch (Exception ex) { successModel.Success = Helpers.ErrorDetails(ex); } return(successModel); }
public string AddUpdate(FolderDetailModel model) { string success = ""; try { using (var db = new OggleBoobleMySqlContext()) { CategoryFolder categoryFolder = db.CategoryFolders.Where(f => f.Id == model.FolderId).First(); if (categoryFolder.FolderName != model.FolderName) { categoryFolder.FolderName = model.FolderName; } FolderDetail dbFolderDetail = db.FolderDetails.Where(d => d.FolderId == model.FolderId).FirstOrDefault(); if (dbFolderDetail == null) { dbFolderDetail = new FolderDetail { FolderId = model.FolderId }; db.FolderDetails.Add(dbFolderDetail); db.SaveChanges(); dbFolderDetail = db.FolderDetails.Where(d => d.FolderId == model.FolderId).First(); } dbFolderDetail.Birthday = model.Birthday; dbFolderDetail.FakeBoobs = model.FakeBoobs; dbFolderDetail.HomeCountry = model.HomeCountry; dbFolderDetail.HomeTown = model.HomeTown; dbFolderDetail.FolderComments = model.FolderComments; dbFolderDetail.Measurements = model.Measurements; //dbFolderDetail.LinkStatus = model.LinkStatus; db.SaveChanges(); success = "ok"; } } catch (Exception ex) { success = Helpers.ErrorDetails(ex); } return(success); }
public SlideshowItemsModel GetSlideShowItems(int folderId, bool includeSubFolders) { var timer = new System.Diagnostics.Stopwatch(); timer.Start(); slideshowItemModel = new SlideshowItemsModel(); try { using (OggleBoobleContext db = new OggleBoobleContext()) { CategoryFolder categoryFolder = db.CategoryFolders.Where(f => f.Id == folderId).FirstOrDefault(); if (categoryFolder == null) { slideshowItemModel.Success = "folderId " + folderId + " not found"; return(slideshowItemModel); } slideshowItemModel.FolderName = categoryFolder.FolderName; slideshowItemModel.RootFolder = categoryFolder.RootFolder; slideshowItemModel.SlideshowItems = db.Database.SqlQuery <vwSlideshowItem>( "select row_number() over(order by SortOrder, FolderId, LinkId) 'Index', * from OggleBooble.vwSlideshowItems " + "where FolderId = " + folderId).ToList(); if (includeSubFolders) { GetChildGalleryItems(folderId, db); } } slideshowItemModel.Success = "ok"; } catch (Exception ex) { slideshowItemModel.Success = Helpers.ErrorDetails(ex); } timer.Stop(); System.Diagnostics.Debug.WriteLine("GetImageLinks took: " + timer.Elapsed); return(slideshowItemModel); }
private void JoinForum_Load(object sender, EventArgs e) { CIX.DirectoryCollection.ForumUpdated += OnForumUpdated; statusField.Text = Resources.JoinForumStatusText; _forum = CIX.DirectoryCollection.ForumByName(_forumName); if (_forum != null && !string.IsNullOrEmpty(_forum.Desc)) { RefreshForum(_forum); } else { if (_forum != null) { forumTitle.Text = _forum.Title; } forumName.Text = _forumName; forumImage.Image = CategoryFolder.IconForCategory("CIX"); CIX.DirectoryCollection.RefreshForum(_forumName); } ResizeForm(); }
/// <summary> /// Display the directory for the specified CategoryFolder /// </summary> public override bool ViewFromFolder(FolderBase folder, Address address, FolderOptions flags) { CategoryFolder category = folder as CategoryFolder; if (category != null) { if (flags.HasFlag(FolderOptions.ClearFilter)) { _currentFilterString = null; } _currentCategory = category; _items = ItemsForView(); SortItems(); } return true; }
private void RepairLinksRecurr(int folderId, RepairReportModel repairReport, OggleBoobleContext db) { try { CategoryFolder dbCategoryFolder = db.CategoryFolders.Where(f => f.Id == folderId).First(); string rootFolder = dbCategoryFolder.RootFolder; if (rootFolder == "centerfold") { rootFolder = "playboy"; } string ftpPath = ftpHost + "/" + rootFolder + ".ogglebooble.com/" + Helpers.GetParentPath(folderId) + dbCategoryFolder.FolderName; if (!FtpUtilies.DirectoryExists(ftpPath)) { repairReport.DirNotFound++; FtpUtilies.CreateDirectory(ftpPath); repairReport.Errors.Add("created directory " + ftpPath); } int folderRowsProcessed = 0; //if (repairReport.isSubFolder) // SignalRHost.ProgressHub.PostToClient("Processing: " + dbCategoryFolder.FolderName + " Rows: " + folderRowsProcessed + " Total: " + repairReport.RowsProcessed); //else // SignalRHost.ProgressHub.PostToClient("Processing: " + dbCategoryFolder.FolderName + " Rows: " + folderRowsProcessed); List <ImageLink> goDaddyLinks = (from c in db.CategoryImageLinks join g in db.ImageLinks on c.ImageLinkId equals g.Id where c.ImageCategoryId == folderId && g.Link.Contains(dbCategoryFolder.FolderName) && g.FolderLocation == dbCategoryFolder.Id select(g)).ToList(); string[] imageFiles = FtpUtilies.GetFiles(ftpPath); string goDaddyPrefix = "http://" + rootFolder + ".ogglebooble.com/"; string expectedLinkName = goDaddyPrefix + Helpers.GetParentPath(folderId) + dbCategoryFolder.FolderName; string ext = ""; bool fileNameInExpectedForm; string linkId = ""; foreach (string fileName in imageFiles) { //EnsureCorrectFileName(fileName, ftpPath); if ((fileName.LastIndexOf("_") > 0) && (fileName.Substring(fileName.LastIndexOf("_")).Length > 40)) { fileNameInExpectedForm = true; if (fileName.IndexOf(".") > 0) { ext = fileName.Substring(fileName.Length - 4); linkId = fileName.Substring(fileName.LastIndexOf("_") + 1, 36); //expectedFileName = dbCategoryFolder.FolderName + "_" + linkId + ext; //if (fileName == expectedFileName) var folderNameWhereImageSayItShouldBe = fileName.Substring(0, fileName.IndexOf("_")); if (folderNameWhereImageSayItShouldBe != dbCategoryFolder.FolderName) { CategoryFolder categoryFolderWhereImageSayItShouldBe = db.CategoryFolders.Where(f => f.FolderName == folderNameWhereImageSayItShouldBe).FirstOrDefault(); if (categoryFolderWhereImageSayItShouldBe != null) { string ftpPathWhereImageSayItShouldBe = ftpHost + categoryFolderWhereImageSayItShouldBe.RootFolder + ".ogglebooble.com/" + Helpers.GetParentPath(categoryFolderWhereImageSayItShouldBe.Id) + categoryFolderWhereImageSayItShouldBe.FolderName; string[] ArrayWhereImageSayItShouldBe = FtpUtilies.GetFiles(ftpPathWhereImageSayItShouldBe); if (ArrayWhereImageSayItShouldBe.Contains(categoryFolderWhereImageSayItShouldBe.FolderName + "_" + linkId + ext)) { FtpUtilies.DeleteFile(ftpPath + categoryFolderWhereImageSayItShouldBe.FolderName + "_" + linkId + ext); repairReport.LinksRemoved++; } } else { // move file string source = ftpPath + "/" + fileName; string destination = ftpHost + categoryFolderWhereImageSayItShouldBe.RootFolder + ".ogglebooble.com/" + Helpers.GetParentPath(categoryFolderWhereImageSayItShouldBe.Id) + categoryFolderWhereImageSayItShouldBe.FolderName; if (source != destination) { FtpUtilies.MoveFile(source, destination); ImageLink extraLink = db.ImageLinks.Where(g => g.Id == linkId).FirstOrDefault(); if (extraLink != null) { db.ImageLinks.Remove(extraLink); db.SaveChanges(); } repairReport.ImagesMoved++; } } } ImageLink goDaddyLinkExists = db.ImageLinks.Where(g => g.Id == linkId).FirstOrDefault(); if (goDaddyLinkExists == null) { if (FtpUtilies.DirectoryExists(ftpPath + "/" + fileName)) { ImageLink newLink = new ImageLink() { Id = linkId, Link = expectedLinkName + "/" + fileName, ExternalLink = "unknown", FolderLocation = folderId }; db.ImageLinks.Add(newLink); db.SaveChanges(); repairReport.NewLinksAdded++; } } else { // if (goDaddyLinkExists.Link.ToUpper() != (expectedLinkName + "/" + fileName).ToUpper()) if (goDaddyLinkExists.Link != expectedLinkName + "/" + fileName) { goDaddyLinkExists.Link = expectedLinkName + "/" + fileName; db.SaveChanges(); repairReport.LinksEdited++; } } if (db.CategoryImageLinks.Where(c => c.ImageCategoryId == folderId).Where(c => c.ImageLinkId == linkId).Where(c => c.ImageCategoryId == folderId).FirstOrDefault() == null) { CategoryImageLink newCatLink = new CategoryImageLink() { ImageCategoryId = folderId, ImageLinkId = linkId }; db.CategoryImageLinks.Add(newCatLink); db.SaveChanges(); repairReport.CatLinksAdded++; } } else { repairReport.Errors.Add("extension problem"); fileNameInExpectedForm = false; } } else { fileNameInExpectedForm = false; ext = fileName.Substring(fileName.Length - 4); linkId = Guid.NewGuid().ToString(); //expectedFileName = dbCategoryFolder.FolderName + "_" + linkId + ext; } if (!fileNameInExpectedForm) { // rename file string renameSuccess = FtpUtilies.MoveFile(ftpPath + "/" + fileName, ftpPath + "/" + fileName); if (renameSuccess == "ok") { repairReport.ImagesRenamed++; ImageLink oldImageLink = goDaddyLinks.Where(g => g.Link == expectedLinkName + "/" + fileName).FirstOrDefault(); if (oldImageLink != null) { if (oldImageLink.Link != expectedLinkName + "/" + fileName) { // update godaddy link oldImageLink.Link = expectedLinkName + "/" + fileName; db.SaveChanges(); repairReport.LinksEdited++; } } else { // link not found in this folder's links ImageLink goDaddyLink = db.ImageLinks.Where(g => g.Id == linkId).FirstOrDefault(); if (goDaddyLink != null) { goDaddyLink.Link = expectedLinkName + "/" + fileName; db.SaveChanges(); repairReport.LinksEdited++; } else { var newImageLink = new ImageLink() { Id = linkId, FolderLocation = folderId, Link = expectedLinkName + "/" + fileName, ExternalLink = "" }; db.ImageLinks.Add(newImageLink); db.SaveChanges(); repairReport.NewLinksAdded++; } if (db.CategoryImageLinks.Where(c => c.ImageCategoryId == folderId).Where(c => c.ImageLinkId == linkId).FirstOrDefault() == null) { CategoryImageLink newCatLink = new CategoryImageLink() { ImageCategoryId = folderId, ImageLinkId = linkId }; db.CategoryImageLinks.Add(newCatLink); db.SaveChanges(); repairReport.CatLinksAdded++; } } } else { repairReport.Errors.Add("rename Failed: " + renameSuccess); } } //if (repairReport.isSubFolder) // SignalRHost.ProgressHub.PostToClient("Processing: " + dbCategoryFolder.FolderName + " Rows: " + folderRowsProcessed + " Total: " + repairReport.RowsProcessed); //else // SignalRHost.ProgressHub.PostToClient("Processing: " + dbCategoryFolder.FolderName + " Rows: " + folderRowsProcessed); repairReport.RowsProcessed++; folderRowsProcessed++; } if (goDaddyLinks.Count() != imageFiles.Count()) { if (goDaddyLinks.Count() > imageFiles.Count()) { string expectedFileName = ""; foreach (ImageLink goDaddyLink in goDaddyLinks) { expectedFileName = goDaddyLink.Link.Substring(goDaddyLink.Link.LastIndexOf("/") + 1); linkId = goDaddyLink.Link.Substring(goDaddyLink.Link.LastIndexOf("_") + 1, 36); if (!imageFiles.Contains(expectedFileName)) { ImageLink imageLink = db.ImageLinks.Where(i => i.Id == linkId).FirstOrDefault(); if (imageLink == null) { repairReport.Errors.Add("image file in folder with no imageLink row"); } else { if (imageLink.FolderLocation == folderId) { CategoryImageLink categoryImageLink = db.CategoryImageLinks.Where(l => l.ImageCategoryId == folderId && l.ImageLinkId == linkId).FirstOrDefault(); //if (categoryImageLink == null) { //repairReport.Errors.Add("image file in folder with no imageLink row"); List <ImageLink> flinks = db.ImageLinks.Where(i => i.ExternalLink == imageLink.ExternalLink).ToList(); string downLoadSuccess = DownLoadImage(ftpPath, goDaddyLink.ExternalLink, expectedFileName); if (downLoadSuccess == "ok") { repairReport.ImagesDownLoaded++; } else { // problem with links to child folder files repairReport.Errors.Add(goDaddyLink.ExternalLink + " " + downLoadSuccess); db.ImageLinks.Remove(goDaddyLink); var badCatFolderImageLink = db.CategoryImageLinks.Where(c => c.ImageCategoryId == dbCategoryFolder.Id && c.ImageLinkId == goDaddyLink.Id).FirstOrDefault(); if (badCatFolderImageLink != null) { db.CategoryImageLinks.Remove(badCatFolderImageLink); } db.SaveChanges(); repairReport.LinksRemoved++; } } } } } //if (repairReport.isSubFolder) // SignalRHost.ProgressHub.PostToClient("Processing: " + dbCategoryFolder.FolderName + " Rows: " + folderRowsProcessed + " Total: " + repairReport.RowsProcessed); //else // SignalRHost.ProgressHub.PostToClient("Processing: " + dbCategoryFolder.FolderName + " Rows: " + folderRowsProcessed); } } if (imageFiles.Count() > goDaddyLinks.Count()) { repairReport.Errors.Add("Extra Links Found in " + ftpPath); foreach (string imageFile in imageFiles) { linkId = imageFile.Substring(imageFile.IndexOf("_") - 1); var x = db.ImageLinks.Where(i => i.Link == imageFile).FirstOrDefault(); if (x == null) { // add a link db.ImageLinks.Add(new ImageLink() { Id = Guid.NewGuid().ToString(), Link = imageFile, ExternalLink = "gg" }); db.SaveChanges(); } } } } int[] subDirs = db.CategoryFolders.Where(f => f.Parent == folderId).Select(f => f.Id).ToArray(); foreach (int subDir in subDirs) { repairReport.isSubFolder = true; RepairLinksRecurr(subDir, repairReport, db); } } catch (Exception ex) { repairReport.Success = Helpers.ErrorDetails(ex); } }
public RepairReportModel MoveManyCleanup(int root) { RepairReportModel repairReportModel = new RepairReportModel(); try { using (OggleBoobleContext db = new OggleBoobleContext()) { CategoryFolder startFolder = db.CategoryFolders.Where(f => f.Id == root).FirstOrDefault(); string ftpPath = ftpHost + "/" + startFolder.RootFolder + ".ogglebooble.com/" + Helpers.GetParentPath(startFolder.Id) + startFolder.FolderName; string[] rootFiles = FtpUtilies.GetFiles(ftpPath); //List<string> rootFileLinks = new List<string>(); //foreach (string fileName in rootFiles) rootFileLinks.Add(fileName.Substring(fileName.LastIndexOf("_") + 1, 36)); List <CategoryFolder> subDirs = db.CategoryFolders.Where(f => f.Parent == root).ToList(); string sourcePath = startFolder.RootFolder + ".ogglebooble.com/" + Helpers.GetParentPath(startFolder.Id) + startFolder.FolderName; string moveFileSuccess, newLink, linkId, destinationPath; string imageFileName = ""; foreach (CategoryFolder subDir in subDirs) { destinationPath = subDir.RootFolder + ".ogglebooble.com/" + Helpers.GetParentPath(subDir.Id) + subDir.FolderName; List <CategoryImageLink> subFolderLinks = db.CategoryImageLinks.Where(l => l.ImageCategoryId == subDir.Id).ToList(); foreach (CategoryImageLink subFolderLink in subFolderLinks) { bool found = false; foreach (string fileName in rootFiles) { linkId = fileName.Substring(fileName.LastIndexOf("_") + 1, 36); if (linkId == subFolderLink.ImageLinkId) { found = true; imageFileName = fileName; break; } } //if (rootFiles.Contains(subFolderLink.ImageLinkId)) if (found) { ImageLink imageLink = db.ImageLinks.Where(i => i.Id == subFolderLink.ImageLinkId).FirstOrDefault(); string ext = imageFileName.Substring(imageFileName.LastIndexOf(".")); string newImageFileName = subDir.FolderName + "_" + subFolderLink.ImageLinkId + imageFileName.Substring(imageFileName.LastIndexOf(".")); if (FtpUtilies.DirectoryExists(ftpHost + sourcePath + "/" + imageFileName)) { moveFileSuccess = FtpUtilies.MoveFile(ftpHost + sourcePath + "/" + imageFileName, ftpHost + destinationPath + "/" + newImageFileName); if (moveFileSuccess == "ok") { if (imageLink != null) { newLink = "http://" + destinationPath + "/" + newImageFileName; imageLink.Link = newLink; imageLink.FolderLocation = subDir.Id; db.SaveChanges(); repairReportModel.LinksEdited++; CategoryImageLink badCategoryImageLink = db.CategoryImageLinks .Where(c => c.ImageLinkId == subFolderLink.ImageLinkId && c.ImageCategoryId == root).FirstOrDefault(); if (badCategoryImageLink != null) { db.CategoryImageLinks.Remove(badCategoryImageLink); db.SaveChanges(); repairReportModel.LinksRemoved++; } } else { repairReportModel.Errors.Add("no imagelink found for link " + subFolderLink.ImageLinkId + " folder: " + startFolder.FolderName); } } else { repairReportModel.Errors.Add("link " + ftpHost + sourcePath + imageFileName + " error: " + moveFileSuccess); } } } repairReportModel.RowsProcessed++; } } repairReportModel.Success = "ok"; } } catch (Exception ex) { repairReportModel.Success = Helpers.ErrorDetails(ex); } return(repairReportModel); }
/// <summary> /// Load the directory tree. /// </summary> private static void LoadDirectoryTree(TreeNode parent) { foreach (string categoryName in CIX.DirectoryCollection.Categories) { CategoryFolder categoryFolder = new CategoryFolder {Name = categoryName}; parent.Nodes.Add(new TreeNode { Name = categoryName, Tag = categoryFolder }); } CategoryFolder allCategoryFolder = new CategoryFolder {Name = CategoryFolder.AllCategoriesName}; parent.Nodes.Insert(0, new TreeNode { Name = CategoryFolder.AllCategoriesName, Tag = allCategoryFolder }); }
private void PerformFolderChecks(int folderId, RepairReportModel repairReport, bool recurr) { List <CategoryFolder> childFolders = null; try { string ftpPath; string imageFolderName; string imageFolderPath; List <CategoryImageLink> catLinks; List <ImageFile> folderImages; using (var db = new OggleBoobleMySqlContext()) { CategoryFolder dbCategoryFolder = db.CategoryFolders.Where(f => f.Id == folderId).First(); ftpPath = ftpHost + "/" + imgRepo.Substring(8) + "/" + dbCategoryFolder.FolderPath; imageFolderName = ftpPath.Substring(ftpPath.LastIndexOf("/") + 1); childFolders = db.CategoryFolders.Where(c => c.Parent == folderId).ToList(); folderImages = db.ImageFiles.Where(if1 => if1.FolderId == folderId).ToList(); catLinks = db.CategoryImageLinks.Where(l => l.ImageCategoryId == folderId).ToList(); imageFolderPath = dbCategoryFolder.FolderPath; if (dbCategoryFolder.FolderType == "singleChild") { CategoryFolder dbParentFolder = db.CategoryFolders.Where(f => f.Id == dbCategoryFolder.Parent).First(); imageFolderName = dbParentFolder.FolderName; } } //string folderName = dbCategoryFolder.FolderName; List <CategoryImageLink> dbRejCatlinks; string ftpFileName, physcialFileName, physcialFileLinkId, rejectFolder, ftpSuccess; string renameSuccess = RenamePhyscialFiles(ftpPath, imageFolderName, repairReport); if (renameSuccess != "ok") { repairReport.Success = renameSuccess + "ftpPath: " + ftpPath + " imageFolderName: " + imageFolderName; return; } string[] physcialFiles = FtpUtilies.GetFiles(ftpPath); if (physcialFiles.Length > 0 && physcialFiles[0].StartsWith("ERROR")) { repairReport.Success = physcialFiles[0]; return; } #region 0 rename ImageFiles to expected name List <ImageFile> dbFolderImageFiles; using (var db = new OggleBoobleMySqlContext()) { dbFolderImageFiles = db.ImageFiles.Where(if1 => if1.FolderId == folderId).ToList(); string expectedFileName; foreach (ImageFile imageFile in dbFolderImageFiles) { if (imageFile.FileName.LastIndexOf(".") < 5) { imageFile.FileName = "xxxxx.jpg"; //repairReport.Errors.Add("bad filename: " + imageFile.FileName + "folder: " + imageFile.FolderId); } expectedFileName = imageFolderName + "_" + imageFile.Id + imageFile.FileName.Substring(imageFile.FileName.LastIndexOf(".")); if (imageFile.FileName != expectedFileName) { imageFile.FileName = expectedFileName; db.SaveChanges(); repairReport.ImageFilesRenamed++; } } } #endregion #region 1. make sure every physicalFile has an ImageFile row ImageFile dbFolderImageFile; for (int i = 0; i < physcialFiles.Length; i++) { physcialFileName = physcialFiles[i]; physcialFileLinkId = physcialFileName.Substring(physcialFileName.LastIndexOf("_") + 1, 36); dbFolderImageFile = dbFolderImageFiles.Where(f => f.Id == physcialFileLinkId).FirstOrDefault(); if (dbFolderImageFile == null) { ImageFile dbMisplacedImageFile; using (var db = new OggleBoobleMySqlContext()) { dbMisplacedImageFile = db.ImageFiles.Where(m => m.Id == physcialFileLinkId).FirstOrDefault(); } if (dbMisplacedImageFile != null) { if (dbMisplacedImageFile.FolderId == -6) { // should have moved file to rejects //string newFileName = ftpPath + "/" + dbCategoryFolder.FolderPath + "/" + physcialFileName; ftpFileName = ftpPath + "/" + physcialFileName; rejectFolder = ftpHost + "/archive.OggleBooble.com/rejects/" + dbMisplacedImageFile.FileName; if (FtpUtilies.MoveFile(ftpFileName, rejectFolder) == "ok") { using (var db = new OggleBoobleMySqlContext()) { dbRejCatlinks = db.CategoryImageLinks.Where(l => l.ImageLinkId == dbMisplacedImageFile.Id).ToList(); if (dbRejCatlinks.Count > 0) { foreach (CategoryImageLink dbRejCatlink in dbRejCatlinks) { if (dbRejCatlink.ImageCategoryId != -6) { db.CategoryImageLinks.Remove(dbRejCatlink); repairReport.CatLinksRemoved++; } } db.SaveChanges(); } } repairReport.ImageFilesMoved++; } } else { //var catLinks = db.CategoryImageLinks.Where(l => l.ImageLinkId == physcialFileLinkId).ToList(); bool itsok = false; foreach (CategoryImageLink catLink in catLinks) { if (catLink.ImageCategoryId == dbMisplacedImageFile.FolderId) { itsok = true; break; } } if (!itsok) { using (var db = new OggleBoobleMySqlContext()) { dbMisplacedImageFile.FolderId = folderId; db.SaveChanges(); repairReport.ImageFilesMoved++; } } } } // dbMisplacedImageFile != null else { string newFileName = imgRepo + "/" + imageFolderPath + "/" + physcialFileName; ImageFileInfo imageFileInfo = GetImageFileInfo(newFileName); CategoryImageLink ktest; using (var db = new OggleBoobleMySqlContext()) { ImageFile imageFile = new ImageFile() { Id = physcialFileLinkId, Acquired = DateTime.Now, ExternalLink = "??", FileName = physcialFileName, FolderId = folderId, Height = imageFileInfo.Height, Size = imageFileInfo.Size, Width = imageFileInfo.Width }; db.ImageFiles.Add(imageFile); dbFolderImageFiles.Add(imageFile); db.SaveChanges(); repairReport.ImageFilesAdded++; ktest = db.CategoryImageLinks.Where(l => (l.ImageCategoryId == folderId) && (l.ImageLinkId == physcialFileLinkId)).FirstOrDefault(); } if (ktest == null) { try { using (var db = new OggleBoobleMySqlContext()) { int nextSortOrder = 0; if (db.CategoryImageLinks.Where(l => l.ImageCategoryId == folderId).Count() > 0) { nextSortOrder = db.CategoryImageLinks.Where(l => l.ImageCategoryId == folderId).Max(l => l.SortOrder) + 2; } db.CategoryImageLinks.Add(new CategoryImageLink() { ImageCategoryId = folderId, ImageLinkId = physcialFileLinkId, SortOrder = nextSortOrder }); db.SaveChanges(); repairReport.CatLinksAdded++; } } catch (Exception ex) { repairReport.Errors.Add("ktest lied: " + Helpers.ErrorDetails(ex)); } } else { if (dbFolderImageFile.Size == 0) { //string newFileName = imgRepo + "/" + imageFolderPath + "/" + physcialFileName; //ImageFileInfo imageFileInfo2 = GetImageFileInfo(newFileName); if (imageFileInfo.Size == 0) { if (FtpUtilies.DeleteFile(ftpPath + "/" + dbFolderImageFile.FileName) == "ok") { using (var db = new OggleBoobleMySqlContext()) { db.CategoryImageLinks.RemoveRange(db.CategoryImageLinks.Where(l => l.ImageLinkId == dbFolderImageFile.Id).ToList()); db.ImageFiles.Remove(dbFolderImageFile); db.SaveChanges(); repairReport.ZeroLenImageFilesRemoved++; } } } else { using (var db = new OggleBoobleMySqlContext()) { dbFolderImageFile.Size = imageFileInfo.Size; dbFolderImageFile.Height = imageFileInfo.Height; dbFolderImageFile.Width = imageFileInfo.Width; db.SaveChanges(); repairReport.ZeroLenFileResized++; } } } } } } // dbFolderImageFile == null repairReport.PhyscialFilesProcessed++; } #endregion #region 2. Make sure every ImageFile row has a physcial file // rebuild list var physcialFileLinkIds = new List <string>(); for (int i = 0; i < physcialFiles.Length; i++) { physcialFileLinkIds.Add(physcialFiles[i].Substring(physcialFiles[i].LastIndexOf("_") + 1, 36)); } if (physcialFileLinkIds.Count() != dbFolderImageFiles.Count()) { if (physcialFileLinkIds.Count() > dbFolderImageFiles.Count()) { using (var db = new OggleBoobleMySqlContext()) { foreach (string pflinkId in physcialFileLinkIds) { dbFolderImageFile = db.ImageFiles.Where(i => i.Id == pflinkId).FirstOrDefault(); if (dbFolderImageFile == null) { db.ImageFiles.Add(new ImageFile() { Id = pflinkId, FolderId = folderId, FileName = "" }); db.SaveChanges(); } else if (dbFolderImageFile.FolderId != folderId) { List <CategoryImageLink> links = db.CategoryImageLinks.Where(l => l.ImageLinkId == dbFolderImageFile.Id).ToList(); if (links.Count() > 0) { dbFolderImageFile.FolderId = folderId; db.SaveChanges(); repairReport.NoLinkImageFiles++; } else { string imageFileToRemove = ftpPath + "/" + imageFolderName + "_" + pflinkId + ".jpg"; rejectFolder = ftpHost + "/archive.OggleBooble.com/rejects/" + imageFolderName + "_" + pflinkId + ".jpg"; ftpSuccess = FtpUtilies.MoveFile(imageFileToRemove, rejectFolder); //.DeleteFile(ftpPath + "/" + imageFolderName + "_" + pflinkId + ".jpg"); //ftpSuccess = FtpUtilies.DeleteFile(ftpPath + "/" + imageFolderName + "_" + pflinkId + ".jpg"); if (ftpSuccess == "ok") { repairReport.ImageFilesRemoved++; repairReport.Errors.Add("I moved a file to rejects : " + imageFolderName + "_" + pflinkId); } else { repairReport.Errors.Add("I wanted to delete : " + imageFolderName + "_" + pflinkId); } } } } } } } foreach (ImageFile imageFile in dbFolderImageFiles) { if (!physcialFileLinkIds.Contains(imageFile.Id)) { if (imageFile.ExternalLink.IndexOf("http") > -1) { // Download missing File if (imageFile.FileName.LastIndexOf(".") < 2) { repairReport.Errors.Add("bad filename: " + imageFile.FileName + "folder: " + imageFile.FolderId); } else { string expectedFileName = imageFolderName + "_" + imageFile.Id + imageFile.FileName.Substring(imageFile.FileName.LastIndexOf(".")); string newFileName = imgRepo + "/" + imageFolderPath + "/" + expectedFileName; string downLoadSuccess = DownLoadImage(ftpPath, imageFile.ExternalLink, expectedFileName); if (downLoadSuccess == "ok") { repairReport.ImagesDownLoaded++; using (var db = new OggleBoobleMySqlContext()) { if (db.CategoryImageLinks.Where(l => l.ImageLinkId == imageFile.Id).FirstOrDefault() == null) { db.CategoryImageLinks.Add(new CategoryImageLink() { ImageCategoryId = folderId, ImageLinkId = imageFile.Id, SortOrder = 9999 }); db.SaveChanges(); } } } else { //repairReport.Errors.Add("download faild: " + imageFile.ExternalLink); using (var db = new OggleBoobleMySqlContext()) { if (db.CategoryImageLinks.Where(l => l.ImageLinkId == imageFile.Id).Count() > 0) { db.CategoryImageLinks.RemoveRange(db.CategoryImageLinks.Where(l => l.ImageLinkId == imageFile.Id).ToList()); db.SaveChanges(); } var ulIm = db.ImageFiles.Where(i => i.Id == imageFile.Id).FirstOrDefault(); if (ulIm != null) { db.ImageFiles.Remove(ulIm); db.SaveChanges(); repairReport.ImageFilesRemoved++; } } } } } else { repairReport.Errors.Add("ImageFile with no physcial file " + imageFile.Id); using (var db = new OggleBoobleMySqlContext()) { if (db.CategoryImageLinks.Where(l => l.ImageLinkId == imageFile.Id).Count() > 0) { db.CategoryImageLinks.RemoveRange(db.CategoryImageLinks.Where(l => l.ImageLinkId == imageFile.Id).ToList()); } var ulIm = db.ImageFiles.Where(i => i.Id == imageFile.Id).FirstOrDefault(); if (ulIm != null) { db.ImageFiles.Remove(ulIm); db.SaveChanges(); repairReport.ImageFilesRemoved++; } } } } repairReport.ImageFilesProcessed++; } #endregion #region 3. check if there is a catlink for every physcial file using (var db = new OggleBoobleMySqlContext()) { foreach (string pfLinkId in physcialFileLinkIds) { if (db.CategoryImageLinks.Where(l => l.ImageCategoryId == folderId && l.ImageLinkId == pfLinkId).FirstOrDefault() == null) { int nextSortOrder = 0; if (db.CategoryImageLinks.Where(l => l.ImageCategoryId == folderId).Count() > 0) { nextSortOrder = db.CategoryImageLinks.Where(l => l.ImageCategoryId == folderId).Max(l => l.SortOrder) + 2; } db.CategoryImageLinks.Add(new CategoryImageLink() { ImageCategoryId = folderId, ImageLinkId = pfLinkId, SortOrder = nextSortOrder }); db.SaveChanges(); repairReport.CatLinksAdded++; } repairReport.LinkRecordsProcessed++; } } #endregion repairReport.Success = "ok"; } catch (Exception ex) { repairReport.Errors.Add(Helpers.ErrorDetails(ex)); } if (recurr) { //var childFolders = db.CategoryFolders.Where(c => c.Parent == folderId).ToList(); foreach (CategoryFolder childFolder in childFolders) { PerformFolderChecks(childFolder.Id, repairReport, recurr); } } }
private string FtpMove(string currentFileName, MoveCopyImageModel model) { string success; string linkId = model.LinkId; using (var db = new OggleBoobleMySqlContext()) { ImageFile dbImageFile = db.ImageFiles.Where(i => i.Id == linkId).FirstOrDefault(); if (dbImageFile == null) { return("link [" + linkId + "] not found"); } //imageLinkId = dbImageFile.Id; // ? physcially more and rename .jpg CategoryFolder dbSourceFolder = db.CategoryFolders.Where(f => f.Id == model.SourceFolderId).First(); CategoryFolder dbDestinationFolder = db.CategoryFolders.Where(f => f.Id == model.DestinationFolderId).First(); //string currentFileName = dbImageFile.FileName; string newFileName = dbSourceFolder.FolderName + "_" + linkId; string destinationFtpPath = ftpHost + dbDestinationFolder.RootFolder + ".ogglebooble.com/" + Helpers.GetParentPath(model.DestinationFolderId) + dbDestinationFolder.FolderName; string sourceFtpPath = ftpHost + dbSourceFolder.RootFolder + ".ogglebooble.com/" + Helpers.GetParentPath(model.SourceFolderId) + newFileName; if (!FtpUtilies.DirectoryExists(destinationFtpPath)) { FtpUtilies.CreateDirectory(destinationFtpPath); } success = FtpUtilies.MoveFile(sourceFtpPath + "/" + dbImageFile.FileName, destinationFtpPath + "/" + newFileName); if (success == "ok") { #region move file on local drive string localDestinationPath = ""; try { string localServerPath = "F:/Danni/"; string localSourcePath = localServerPath + Helpers.GetLocalParentPath(model.SourceFolderId) + dbSourceFolder.FolderName + "/" + dbImageFile.FileName; //dbSourceFolder.FolderName + "_" + dbImageLink.Id + extension; localDestinationPath = localServerPath + Helpers.GetLocalParentPath(model.DestinationFolderId) + dbDestinationFolder.FolderName; FileInfo localFile = new FileInfo(localSourcePath); DirectoryInfo directoryInfo = new DirectoryInfo(localDestinationPath); if (!directoryInfo.Exists) { directoryInfo.Create(); } localFile.MoveTo(localDestinationPath + "/" + newFileName); } catch (Exception ex) { System.Diagnostics.Debug.WriteLine("move file on local drive : " + Helpers.ErrorDetails(ex) + " " + localDestinationPath); } #endregion //2. update ImageFile //string linkPrefix = "http://" + dbDestinationFolder.RootFolder + ".ogglebooble.com/"; //newInternalLink = linkPrefix + Helpers.GetParentPath(model.DestinationFolderId) + dbDestinationFolder.FolderName + "/" + newFileName; //var goDaddyrow = db.ImageLinks.Where(g => g.Id == dbImageLink.Id).FirstOrDefault(); 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(); } return(success); } }
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); }
public SubFolderCountModel GetDeepFolderCounts(int folderId) { DateTime start = DateTime.Now; var countModel = new SubFolderCountModel() { FolderId = folderId, Changes = 0 }; try { //GoDeepRecurr(folderId); using (var db = new OggleBoobleMySqlContext()) { int sub0ttlChildFiles = 0; int sub0ttlSubFolders = 0; CategoryFolder dbCatFolder0 = db.CategoryFolders.Where(f => f.Id == folderId).First(); int fileLinkCount = db.CategoryImageLinks.Where(l => l.ImageCategoryId == folderId).Count(); int subFolderCount = db.CategoryFolders.Where(f => f.Parent == folderId).Count(); subFolderCount += db.StepChildren.Where(s => s.Parent == folderId).Count(); if ((dbCatFolder0.Files != fileLinkCount) || (dbCatFolder0.SubFolders != subFolderCount)) { dbCatFolder0.Files = fileLinkCount; dbCatFolder0.SubFolders = subFolderCount; db.SaveChanges(); countModel.Changes++; } var subFolders1 = db.CategoryFolders.Where(f => f.Parent == folderId).ToList(); foreach (var subFolder1 in subFolders1) { int sub1ttlChildFiles = 0; int sub1ttlSubFolders = 0; fileLinkCount = db.CategoryImageLinks.Where(l => l.ImageCategoryId == subFolder1.Id).Count(); subFolderCount = db.CategoryFolders.Where(f => f.Parent == subFolder1.Id).Count(); subFolderCount += db.StepChildren.Where(s => s.Parent == subFolder1.Id).Count(); sub0ttlChildFiles += fileLinkCount; sub0ttlSubFolders += subFolders1.Count(); if ((fileLinkCount != subFolder1.Files) || (subFolderCount != subFolder1.SubFolders)) { subFolder1.Files = fileLinkCount; subFolder1.SubFolders = subFolderCount; db.SaveChanges(); countModel.Changes++; } var subFolders2 = db.CategoryFolders.Where(f => f.Parent == subFolder1.Id).ToList(); sub0ttlChildFiles += subFolders2.Count(); sub1ttlSubFolders += subFolders2.Count(); foreach (CategoryFolder subFolder2 in subFolders2) { int sub2ttlChildFiles = 0; int sub2ttlSubFolders = 0; fileLinkCount = db.CategoryImageLinks.Where(l => l.ImageCategoryId == subFolder2.Id).Count(); subFolderCount = db.CategoryFolders.Where(f => f.Parent == subFolder2.Id).Count(); subFolderCount += db.StepChildren.Where(s => s.Parent == subFolder2.Id).Count(); sub0ttlChildFiles += fileLinkCount; sub1ttlChildFiles += fileLinkCount; if ((fileLinkCount != subFolder2.Files) || (subFolderCount != subFolder2.SubFolders)) { if (fileLinkCount != subFolder2.Files) { subFolder2.Files = fileLinkCount; } subFolder2.SubFolders = subFolderCount; db.SaveChanges(); countModel.Changes++; } var subFolders3 = db.CategoryFolders.Where(f => f.Parent == subFolder2.Id).ToList(); sub0ttlSubFolders += subFolders3.Count(); sub1ttlSubFolders += subFolders3.Count(); sub2ttlSubFolders += subFolders3.Count(); foreach (CategoryFolder subFolder3 in subFolders3) { int sub3ttlChildFiles = 0; int sub3ttlSubFolders = 0; subFolderCount = db.CategoryFolders.Where(f => f.Parent == subFolder3.Id).Count(); fileLinkCount = db.CategoryImageLinks.Where(l => l.ImageCategoryId == subFolder3.Id).Count(); sub0ttlChildFiles += fileLinkCount; sub1ttlChildFiles += fileLinkCount; sub2ttlChildFiles += fileLinkCount; if ((fileLinkCount != subFolder3.Files) || (subFolderCount != subFolder3.SubFolders)) { if (fileLinkCount != subFolder3.Files) { subFolder3.Files = fileLinkCount; } subFolder3.SubFolders = subFolderCount; db.SaveChanges(); countModel.Changes++; } var subFolders4 = db.CategoryFolders.Where(f => f.Parent == subFolder3.Id).ToList(); sub0ttlSubFolders += subFolders4.Count(); sub1ttlSubFolders += subFolders4.Count(); sub2ttlSubFolders += subFolders4.Count(); sub3ttlSubFolders += subFolders4.Count(); foreach (CategoryFolder subFolder4 in subFolders4) { int sub4ttlChildFiles = 0; int sub4ttlSubFolders = 0; fileLinkCount = db.CategoryImageLinks.Where(l => l.ImageCategoryId == subFolder4.Id).Count(); subFolderCount = db.CategoryFolders.Where(f => f.Parent == subFolder4.Id).Count(); sub0ttlChildFiles += fileLinkCount; sub1ttlChildFiles += fileLinkCount; sub2ttlChildFiles += fileLinkCount; sub3ttlChildFiles += fileLinkCount; if ((fileLinkCount != subFolder4.Files) || (subFolderCount != subFolder4.SubFolders)) { subFolder4.Files = fileLinkCount; subFolder4.SubFolders = subFolderCount; db.SaveChanges(); countModel.Changes++; } var subFolders5 = db.CategoryFolders.Where(f => f.Parent == subFolder4.Id).ToList(); sub0ttlSubFolders += subFolders5.Count(); sub1ttlSubFolders += subFolders5.Count(); sub2ttlSubFolders += subFolders5.Count(); sub3ttlSubFolders += subFolders5.Count(); sub4ttlSubFolders += subFolders5.Count(); foreach (CategoryFolder subFolder5 in subFolders5) { int sub5ttlChildFiles = 0; int sub5ttlSubFolders = 0; fileLinkCount = db.CategoryImageLinks.Where(l => l.ImageCategoryId == subFolder5.Id).Count(); subFolderCount = db.CategoryFolders.Where(f => f.Parent == subFolder5.Id).Count(); if ((fileLinkCount != subFolder5.Files) || (subFolderCount != subFolder5.SubFolders)) { subFolder5.Files = fileLinkCount; subFolder5.SubFolders = subFolderCount; db.SaveChanges(); countModel.Changes++; } sub0ttlChildFiles += fileLinkCount; sub1ttlChildFiles += fileLinkCount; sub2ttlChildFiles += fileLinkCount; sub3ttlChildFiles += fileLinkCount; sub4ttlChildFiles += fileLinkCount; var subFolders6 = db.CategoryFolders.Where(f => f.Parent == subFolder5.Id).ToList(); sub0ttlSubFolders += subFolders6.Count(); sub1ttlSubFolders += subFolders6.Count(); sub2ttlSubFolders += subFolders6.Count(); sub3ttlSubFolders += subFolders6.Count(); sub4ttlSubFolders += subFolders6.Count(); sub5ttlSubFolders += subFolders6.Count(); foreach (CategoryFolder subFolder6 in subFolders6) { int sub6ttlChildFiles = 0; int sub6ttlSubFolders = 0; fileLinkCount = db.CategoryImageLinks.Where(l => l.ImageCategoryId == subFolder6.Id).Count(); subFolderCount = db.CategoryFolders.Where(f => f.Parent == subFolder6.Id).Count(); if ((fileLinkCount != subFolder6.Files) || (subFolderCount != subFolder6.SubFolders)) { subFolder6.Files = fileLinkCount; subFolder6.SubFolders = subFolderCount; db.SaveChanges(); countModel.Changes++; } sub0ttlChildFiles += fileLinkCount; sub1ttlChildFiles += fileLinkCount; sub2ttlChildFiles += fileLinkCount; sub3ttlChildFiles += fileLinkCount; sub4ttlChildFiles += fileLinkCount; sub5ttlChildFiles += fileLinkCount; var subFolders7 = db.CategoryFolders.Where(f => f.Parent == subFolder6.Id).ToList(); sub0ttlSubFolders += subFolders7.Count(); sub1ttlSubFolders += subFolders7.Count(); sub2ttlSubFolders += subFolders7.Count(); sub3ttlSubFolders += subFolders7.Count(); sub4ttlSubFolders += subFolders7.Count(); sub5ttlSubFolders += subFolders7.Count(); sub6ttlSubFolders += subFolders7.Count(); foreach (CategoryFolder subFolder7 in subFolders7) { //int sub6ttlChildFiles = 0; //int sub6ttlSubFolders = 0; fileLinkCount = db.CategoryImageLinks.Where(l => l.ImageCategoryId == subFolder7.Id).Count(); subFolderCount = db.CategoryFolders.Where(f => f.Parent == subFolder7.Id).Count(); if ((fileLinkCount != subFolder7.Files) || (subFolderCount != subFolder7.SubFolders)) { subFolder7.Files = fileLinkCount; subFolder7.SubFolders = subFolderCount; db.SaveChanges(); countModel.Changes++; } sub0ttlChildFiles += fileLinkCount; sub1ttlChildFiles += fileLinkCount; sub2ttlChildFiles += fileLinkCount; sub3ttlChildFiles += fileLinkCount; sub4ttlChildFiles += fileLinkCount; sub5ttlChildFiles += fileLinkCount; sub6ttlChildFiles += fileLinkCount; var subFolders8 = db.CategoryFolders.Where(f => f.Parent == subFolder7.Id).ToList(); if (subFolders8.Count() > 0) { throw new Exception("we need to go even deeper"); } } if ((subFolder6.TotalChildFiles != sub6ttlChildFiles) || (subFolder6.TotalSubFolders != sub5ttlSubFolders)) { subFolder6.TotalChildFiles = sub5ttlChildFiles; subFolder6.TotalSubFolders = sub5ttlSubFolders; db.SaveChanges(); countModel.Changes++; } } if ((subFolder5.TotalChildFiles != sub5ttlChildFiles) || (subFolder5.TotalSubFolders != sub5ttlSubFolders)) { subFolder5.TotalChildFiles = sub5ttlChildFiles; subFolder5.TotalSubFolders = sub5ttlSubFolders; db.SaveChanges(); countModel.Changes++; } } if ((subFolder4.TotalChildFiles != sub4ttlChildFiles) || (subFolder4.TotalSubFolders != sub4ttlSubFolders)) { subFolder4.TotalChildFiles = sub4ttlChildFiles; subFolder4.TotalSubFolders = sub4ttlSubFolders; db.SaveChanges(); countModel.Changes++; } } if ((subFolder3.TotalChildFiles != sub3ttlChildFiles) || (subFolder3.TotalSubFolders != sub3ttlSubFolders)) { subFolder3.TotalChildFiles = sub3ttlChildFiles; subFolder3.TotalSubFolders = sub3ttlSubFolders; db.SaveChanges(); countModel.Changes++; } } if ((subFolder2.TotalChildFiles != sub2ttlChildFiles) || (subFolder2.TotalSubFolders != sub2ttlSubFolders)) { subFolder2.TotalChildFiles = sub2ttlChildFiles; subFolder2.TotalSubFolders = sub2ttlSubFolders; db.SaveChanges(); countModel.Changes++; } } if ((subFolder1.TotalChildFiles != sub1ttlChildFiles) || (subFolder1.TotalSubFolders != sub1ttlSubFolders)) { subFolder1.TotalChildFiles = sub1ttlChildFiles; subFolder1.TotalSubFolders = sub1ttlSubFolders; db.SaveChanges(); countModel.Changes++; } } if ((dbCatFolder0.TotalChildFiles != sub0ttlChildFiles) || (dbCatFolder0.TotalSubFolders != sub0ttlSubFolders)) { dbCatFolder0.TotalChildFiles = sub0ttlChildFiles; dbCatFolder0.TotalSubFolders = sub0ttlSubFolders; db.SaveChanges(); countModel.Changes++; } countModel.FileCount = dbCatFolder0.Files; countModel.FolderCount = dbCatFolder0.SubFolders; countModel.TtlFileCount = dbCatFolder0.TotalChildFiles; countModel.TtlFolderCount = dbCatFolder0.TotalSubFolders; } countModel.Success = "ok"; } catch (Exception ex) { countModel.Success = Helpers.ErrorDetails(ex); } var timeSpan = (DateTime.Now - start); countModel.TimeTook = timeSpan.TotalMinutes.ToString("N0") + ":" + timeSpan.TotalSeconds.ToString("N0"); return(countModel); }
private string UpDateDatesRecurr(int folderId, RepairReportModel results, OggleBoobleContext db) { string success = ""; try { //CategoryFolder dbCategoryFolder = db.CategoryFolders.Where(f => f.Id == folderId).FirstOrDefault(); //string ftpPath = ftpHost + "/" + dbCategoryFolder.RootFolder + ".ogglebooble.com/" + Helpers.GetParentPath(folderId); List <ImageLink> imageLinks = db.ImageLinks.Where(l => l.FolderLocation == folderId).ToList(); DateTime imageFileDateTime = DateTime.MinValue; int fWidth = 0; int fHeight = 0; long fSize = 0; string extension; string trimPath; string appDataPath = System.Web.HttpContext.Current.Server.MapPath("~/App_Data/temp/"); foreach (ImageLink imageLink in imageLinks) { if (imageLink.Width == null) { try { CategoryFolder dbCategory = db.CategoryFolders.Where(f => f.Id == imageLink.FolderLocation).First(); extension = imageLink.Link.Substring(imageLink.Link.LastIndexOf(".")); string newFileName = dbCategory.FolderName + "_" + imageLink.Id + extension; trimPath = imageLink.Link.Replace("/Root/", "").Replace("%20", " ").Replace(newFileName, "").Replace("http://", ""); // USE WEBCLIENT TO CREATE THE FILE using (WebClient wc = new WebClient()) { try { wc.DownloadFile(new Uri(imageLink.Link), appDataPath + "tempImage" + extension); } catch (Exception ex) { success = "wc. download didnt work " + ex.Message; } } FtpWebRequest webRequest = null; // USE WEBREQUEST TO UPLOAD THE FILE try { // todo write the image as a file to x.ogglebooble 4/1/19 string ftpPath = ftpHost + trimPath; if (!FtpUtilies.DirectoryExists(ftpPath)) { FtpUtilies.CreateDirectory(ftpPath); } webRequest = (FtpWebRequest)WebRequest.Create(ftpPath + "/" + newFileName); webRequest.Credentials = networkCredentials; webRequest.Method = WebRequestMethods.Ftp.UploadFile; //var zz = webRequest.Method = WebRequestMethods.Ftp.UploadFile; } catch (Exception ex) { success = " webRequest didnt work " + ex.Message; } // TAKE THE WEBREQUEST FILE STREAM TO try { using (Stream requestStream = webRequest.GetRequestStream()) { byte[] fileContents = System.IO.File.ReadAllBytes(appDataPath + "tempImage" + extension); webRequest.ContentLength = fileContents.Length; requestStream.Write(fileContents, 0, fileContents.Length); requestStream.Flush(); requestStream.Close(); } } catch (Exception ex) { success = "GetRequestStream didn't work " + ex.Message; } using (var fileStream = new FileStream(appDataPath + "tempImage" + extension, FileMode.Open, FileAccess.Read, FileShare.Read)) { fSize = fileStream.Length; using (var image = System.Drawing.Image.FromStream(fileStream, false, false)) { fWidth = image.Width; fHeight = image.Height; } imageLink.Width = fWidth; imageLink.Height = fHeight; db.SaveChanges(); } DirectoryInfo directory = new DirectoryInfo(appDataPath); FileInfo tempFile = directory.GetFiles("tempImage" + extension).FirstOrDefault(); if (tempFile != null) { tempFile.Delete(); } System.Diagnostics.Debug.WriteLine("delete worked "); } catch (Exception ex) { System.Diagnostics.Debug.WriteLine("delete didn't work " + ex.Message); } } if (imageLink.LastModified == null) { try { imageFileDateTime = FtpUtilies.GetLastModified(imageLink.Link.Replace("http://", ftpHost)); imageLink.LastModified = imageFileDateTime; db.SaveChanges(); results.NewLinksAdded++; } catch (Exception ex) { success = Helpers.ErrorDetails(ex); results.Errors.Add(imageLink.Id + " date: " + imageFileDateTime + " error: " + success); results.LinksRemoved++; } } else { results.ImagesRenamed++; } results.RowsProcessed++; } foreach (int subDirId in db.CategoryFolders.Where(f => f.Parent == folderId).Select(f => f.Id).ToArray()) { UpDateDatesRecurr(subDirId, results, db); } success = "ok"; } catch (Exception ex) { success = Helpers.ErrorDetails(ex); } return(success); }
/// <summary> /// Build the layout for this item from the message. /// </summary> protected override CanvasItemLayout BuildLayout() { CanvasItemLayout newLayout = new CanvasItemLayout(this, DrawRectangle); if (Folder != null) { // Forum category icon, if one is present. At some point we should // replace this with an actual forum icon. Image categoryImage = null; if (Forum != null) { categoryImage = CategoryFolder.IconForCategory(Forum.Cat); } if (categoryImage == null) { categoryImage = Resources.Categories; } if (categoryImage != null) { newLayout.Add(new CanvasImage { ID = ActionID.None, Image = categoryImage, ImageWidth = 50, ImageHeight = 50 }); newLayout.AddNewColumn(); } // Forum name newLayout.Add(new CanvasText { ID = ActionID.None, Text = Folder.Name, Font = NameFont, LineHeight = NameFont.Height + 10, ForeColour = UI.System.ForegroundColour }); newLayout.AddNewLine(); // Forum title. if (Forum != null && !string.IsNullOrEmpty(Forum.Title)) { newLayout.Add(new CanvasHTMLText { ID = ActionID.None, Text = Forum.Title, Font = TitleFont, ForeColour = UI.System.ForegroundColour, SpaceAfter = 15 }); newLayout.AddNewLine(); } // Forum description. if (Forum != null && !string.IsNullOrEmpty(Forum.Desc)) { newLayout.Add(new CanvasHTMLText { ID = ActionID.None, HTMLText = Forum.Desc, Font = DescriptionFont, ForeColour = UI.System.ForegroundColour, SpaceAfter = 15 }); newLayout.AddNewLine(); } // If the Join is pending, say so. if (Forum != null && Forum.JoinPending) { newLayout.Add(new CanvasImage { Image = Resources.Warning, ImageWidth = 16, ImageHeight = 16 }); newLayout.Add(new CanvasText { ID = ActionID.None, Text = Resources.JoinPending, LineHeight = 16, Margin = new Rectangle(0, 0, 0, 15), Font = Font }); newLayout.AddNewLine(); } // If a Resign is pending, say so. if (Folder.ResignPending) { newLayout.Add(new CanvasImage { Image = Resources.Warning, ImageWidth = 16, ImageHeight = 16 }); newLayout.Add(new CanvasText { ID = ActionID.None, Text = Resources.ResignPending, LineHeight = 16, Margin = new Rectangle(0, 0, 0, 15), Font = Font, }); newLayout.AddNewLine(); } // If the Join failed, say so too. if (Folder.Flags.HasFlag(FolderFlags.JoinFailed)) { newLayout.Add(new CanvasImage { Image = Resources.Error1, ImageWidth = 16, ImageHeight = 16 }); newLayout.Add(new CanvasText { ID = ActionID.None, Text = Resources.JoinFailure, LineHeight = 16, Font = Font, Margin = new Rectangle(0, 0, 0, 15) }); newLayout.AddNewLine(); } // Resign/Join button // Don't display if the forum doesn't permit the user to resign it. if (Folder.CanResign) { if (Folder.IsResigned || Folder.Flags.HasFlag(FolderFlags.JoinFailed) || Folder.ResignPending) { newLayout.Add(new CanvasButton { ID = ActionID.JoinForum, Text = Resources.JoinForum, Font = DescriptionFont, ForeColour = UI.System.ForegroundColour, SpaceAfter = 15 }); } else { newLayout.Add(new CanvasButton { ID = ActionID.ResignForum, Text = Resources.ResignForum, Font = DescriptionFont, ForeColour = UI.System.ForegroundColour, SpaceAfter = 15 }); } } // Delete button // Offer the option to delete the folder if we're not joined to it newLayout.Add(new CanvasButton { ID = ActionID.Delete, Text = Resources.DeleteFolder, Font = DescriptionFont, ForeColour = UI.System.ForegroundColour, SpaceAfter = 15 }); // Add Participants button newLayout.Add(new CanvasButton { ID = ActionID.Participants, Text = Resources.Participants, Font = DescriptionFont, ForeColour = UI.System.ForegroundColour, SpaceAfter = 15 }); // Refresh button newLayout.Add(new CanvasButton { ID = ActionID.Refresh, Text = Resources.RefreshText, Font = DescriptionFont, ForeColour = UI.System.ForegroundColour, SpaceAfter = 15 }); // Manage Forum button if (Forum != null && Forum.IsModerator) { newLayout.Add(new CanvasButton { ID = ActionID.ManageForum, Text = Resources.ManageForum, Font = DescriptionFont, ForeColour = UI.System.ForegroundColour, SpaceAfter = 15 }); } } return(newLayout); }
public PageHitSuccessModel LogPageHit(PageHitRequestModel pageHitModel) { PageHitSuccessModel pageHitSuccessModel = new PageHitSuccessModel(); try { using (OggleBoobleMySqContext db = new OggleBoobleMySqContext()) { var twoMinutesAgo = DateTime.Now.AddMinutes(-2); var lastHit = db.PageHits.Where(h => h.VisitorId == pageHitModel.VisitorId && h.PageId == pageHitModel.PageId && h.Occured > twoMinutesAgo).FirstOrDefault(); if (lastHit == null) { db.PageHits.Add(new PageHit() { VisitorId = pageHitModel.VisitorId, PageId = pageHitModel.PageId, Occured = DateTime.Now //.AddMilliseconds(getrandom.Next()) }); db.SaveChanges(); } pageHitSuccessModel.Success = "ok"; try { pageHitSuccessModel.PageHits = db.PageHits.Where(h => h.PageId == pageHitModel.PageId).Count(); var dbPageHitTotals = db.PageHitTotal.Where(h => h.PageId == pageHitModel.PageId).FirstOrDefault(); if (dbPageHitTotals != null) { pageHitSuccessModel.PageHits += dbPageHitTotals.Hits; } pageHitSuccessModel.UserPageHits = db.PageHits.Where(h => h.VisitorId == pageHitModel.VisitorId).Count(); pageHitSuccessModel.UserImageHits = db.ImageHits.Where(h => h.VisitorId == pageHitModel.VisitorId).Count(); CategoryFolder categoryFolder = db.CategoryFolders.Where(f => f.Id == pageHitModel.PageId).FirstOrDefault(); if (categoryFolder != null) { pageHitSuccessModel.RootFolder = categoryFolder.RootFolder; pageHitSuccessModel.PageName = categoryFolder.FolderName; if (categoryFolder.Parent == -1) { pageHitSuccessModel.ParentName = "special"; } else { CategoryFolder parentFolder = db.CategoryFolders.Where(f => f.Id == categoryFolder.Parent).FirstOrDefault(); if (parentFolder != null) { pageHitSuccessModel.ParentName = parentFolder.FolderName; } } } else { pageHitSuccessModel.PageName = "Not Found"; } } catch (Exception ex) { pageHitSuccessModel.Success = "unrelated to insert, but: " + Helpers.ErrorDetails(ex); } } } catch (Exception ex) { string err = Helpers.ErrorDetails(ex); if (err.Contains("Object reference not set to an instance of an object.")) { err = "Null reference. PageId: " + pageHitModel.PageId + " visId: " + pageHitModel.VisitorId; } pageHitSuccessModel.Success = err; } return(pageHitSuccessModel); }
public AlbumInfoModel GetAlbumPageInfo(int folderId, string visitorId) { var albumInfo = new AlbumInfoModel(); try { using (var db = new OggleBoobleMySqlContext()) { CategoryFolder dbCategoryFolder = db.CategoryFolders.Where(f => f.Id == folderId).First(); albumInfo.RootFolder = dbCategoryFolder.RootFolder; albumInfo.FolderName = dbCategoryFolder.FolderName; albumInfo.FolderType = dbCategoryFolder.FolderType; albumInfo.FileCount = dbCategoryFolder.Files; albumInfo.FolderCount = dbCategoryFolder.SubFolders; albumInfo.TotalChildFiles = dbCategoryFolder.TotalChildFiles; albumInfo.TotalSubFolders = dbCategoryFolder.TotalSubFolders; //albumInfo.FileCount = db.CategoryImageLinks.Where(l => l.ImageCategoryId == folderId).Count(); //albumInfo.FolderCount = db.CategoryFolders.Where(f => f.Parent == folderId).Count(); albumInfo.UserPageHits = db.PageHits.Where(h => h.VisitorId == visitorId).Count(); int curFileCount = db.CategoryImageLinks.Where(l => l.ImageCategoryId == folderId).Count(); if (albumInfo.FileCount != curFileCount) { dbCategoryFolder.Files = curFileCount; albumInfo.FileCount = curFileCount; db.SaveChanges(); } #region 1. trackbackLinks var trackbackLinks = db.TrackbackLinks.Where(t => t.PageId == folderId).ToList(); foreach (TrackbackLink trackbackLink in trackbackLinks) { if (trackbackLink.LinkStatus == "ok") { albumInfo.TrackBackItems.Add(new TrackbackLink() { SiteCode = trackbackLink.SiteCode, Href = trackbackLink.Href, LinkStatus = trackbackLink.LinkStatus }); } } var dbFolderDetails = db.FolderDetails.Where(d => d.FolderId == folderId).FirstOrDefault(); if (dbFolderDetails != null) { albumInfo.FolderComments = dbFolderDetails.FolderComments; albumInfo.StaticFile = dbFolderDetails.StaticFile; if (dbFolderDetails.StaticFileUpdate != null) { albumInfo.StaticFileUpdate = dbFolderDetails.StaticFileUpdate.Value.ToShortDateString(); } } #endregion #region 2. BreadCrumbs //CategoryFolder thisFolder = db.CategoryFolders.Where(f => f.Id == folderId).First(); //albumInfo.BreadCrumbs.Add(new BreadCrumbItemModel() //{ // FolderId = thisFolder.Id, // FolderName = thisFolder.FolderName, // ParentId = thisFolder.Parent, // IsInitialFolder = true //}); //var parent = thisFolder.Parent; //while (parent > 1) //{ // CategoryFolder parentDb = db.CategoryFolders.Where(f => f.Id == parent).First(); // albumInfo.BreadCrumbs.Add(new BreadCrumbItemModel() // { // FolderId = parentDb.Id, // FolderName = parentDb.FolderName, // IsInitialFolder = false // }); // parent = parentDb.Parent; //} #endregion //db.PageHits.RemoveRange(db.PageHits.Where(h => h.VisitorId == devlVisitorId)); //db.ImageHits.RemoveRange(db.ImageHits.Where(i => i.VisitorId == devlVisitorId)); //db.SaveChanges(); albumInfo.PageHits = db.PageHits.Where(h => h.PageId == folderId).Count(); var dbPageHitTotals = db.PageHitTotal.Where(h => h.PageId == folderId).FirstOrDefault(); if (dbPageHitTotals != null) { albumInfo.PageHits += dbPageHitTotals.Hits; } CategoryFolder categoryFolder = db.CategoryFolders.Where(f => f.Id == folderId).FirstOrDefault(); //if (categoryFolder != null) albumInfo.RootFolder = mdb.CategoryFolders.Where(f => f.Id == folderId).First().RootFolder; //albumInfo.UserPageHits = db.PageHits.Where(h => h.VisitorId == visitorId).Count(); //albumInfo.UserImageHits = db.ImageHits.Where(h => h.VisitorId == visitorId).Count(); } albumInfo.Success = "ok"; } catch (Exception ex) { albumInfo.Success = Helpers.ErrorDetails(ex); } return(albumInfo); }