public static int Add(string url, string token, bool processClosed, bool disableNotifications) { lock (Imports.SynchRoot) { if (Imports.GetItems().Count(x => x.Id == CoreContext.TenantManager.GetCurrentTenant().TenantId) > 0) { throw new DuplicateNameException("Import already running"); } } lock (Completed) { Completed.RemoveAll(x => x.Id == CoreContext.TenantManager.GetCurrentTenant().TenantId); } SecurityContext.DemandPermissions(ASC.Core.Users.Constants.Action_AddRemoveUser); ProjectSecurity.DemandCreateProject(); var importTask = new ImportFromBasecamp(url, token, HttpContext.Current, SecurityContext.CurrentAccount.ID, processClosed, disableNotifications, Global.EngineFactory);//NOTE: engine factory newly created!!! lock (Imports.SynchRoot) { Imports.Add(importTask); } return(importTask.Id); }
public static void DeletePhoto(int contactID) { if (contactID == 0) { throw new ArgumentException(); } lock (_synchronizedObj) { ResizeQueue.GetItems().Where(item => item.ContactID == contactID) .All(item => { ResizeQueue.Remove(item); return(true); }); var photoDirectory = BuildFileDirectory(contactID); if (Global.GetStore().IsDirectory(photoDirectory)) { Global.GetStore().DeleteFiles(photoDirectory, "*", true); } RemoveFromCache(contactID); } }
private static string SizePhoto(Guid userID, byte[] data, long maxFileSize, Size size, bool now) { if (data == null || data.Length <= 0) { throw new UnknownImageFormatException(); } if (maxFileSize != -1 && data.Length > maxFileSize) { throw new ImageWeightLimitException(); } var resizeTask = new ResizeWorkerItem(userID, data, maxFileSize, size, GetDataStore(), UserPhotoThumbnailSettings.LoadForUser(userID)); if (now) { //Resize synchronously ResizeImage(resizeTask); return(GetSizedPhotoAbsoluteWebPath(userID, size)); } else { if (!ResizeQueue.GetItems().Contains(resizeTask)) { //Add ResizeQueue.Add(resizeTask); if (!ResizeQueue.IsStarted) { ResizeQueue.Start(ResizeImage); } } return(GetDefaultPhotoAbsoluteWebPath(size)); //NOTE: return default photo here. Since task will update cache } }
public static void Make(HelpCenterRequest request, Action <HelpCenterRequest, string> starter) { if (!DownloadEnabled) { return; } lock (LockObj) { if (Tasks.GetItems().Any(r => r.Url == request.Url)) { return; } Tasks.Add(request); if (!Tasks.IsStarted) { Tasks.Start(r => { var html = SendRequest(r.Url); starter(r, html); }); } } }
public static int Add(string url, string userName, string password, bool processClosed, bool disableNotifications, bool importUsersAsCollaborators, IEnumerable <int> projects) { if (Imports.GetItems().Count(x => x.Id == TenantProvider.CurrentTenantID) > 0) { throw new DuplicateNameException("Import already running"); } lock (Completed) { Completed.RemoveAll(x => x.Id == TenantProvider.CurrentTenantID); } SecurityContext.DemandPermissions(Constants.Action_AddRemoveUser); var importTask = new ImportFromBasecamp(url, userName, password, SecurityContext.CurrentAccount.ID, processClosed, disableNotifications, importUsersAsCollaborators, Global.EngineFactory, projects); Imports.Add(importTask); return(importTask.Id); }
public static void DeletePhoto(int contactID, bool isTmpDir, string tmpDirName, bool recursive) { if (contactID == 0) { throw new ArgumentException(); } lock (_synchronizedObj) { ResizeQueue.GetItems().Where(item => item.ContactID == contactID) .All(item => { ResizeQueue.Remove(item); return(true); }); var photoDirectory = !isTmpDir ? BuildFileDirectory(contactID) : (String.IsNullOrEmpty(tmpDirName) ? BuildFileTmpDirectory(contactID) : BuildFileTmpDirectory(tmpDirName)); var store = Global.GetStore(); if (store.IsDirectory(photoDirectory)) { store.DeleteFiles(photoDirectory, "*", recursive); if (recursive) { store.DeleteDirectory(photoDirectory); } } if (!isTmpDir) { RemoveFromCache(contactID); } } }
public static void Make(HelpCenterRequest request) { if (!DownloadEnabled) { return; } lock (LockObj) { if (Tasks.GetItems().Any(r => r.Url == request.Url)) { return; } Tasks.Add(request); if (!Tasks.IsStarted) { Tasks.Start(r => r.SendRequest()); } } }