protected void cmdDelete_Click(object sender, EventArgs e) { try { if (string.IsNullOrEmpty(WikiPage) || IsFile) return; var pageName = PageNameUtil.Decode(WikiPage); var page = Wiki.GetPage(pageName); CommunitySecurity.DemandPermissions(new WikiObjectsSecurityObject(page), Common.Constants.Action_RemovePage); foreach (var cat in Wiki.GetCategoriesRemovedWithPage(pageName)) { WikiNotifySource.Instance.GetSubscriptionProvider().UnSubscribe(Common.Constants.AddPageToCat, cat.CategoryName); } Wiki.RemoveCategories(pageName); WikiNotifySource.Instance.GetSubscriptionProvider().UnSubscribe(Common.Constants.EditPage, pageName); foreach (var comment in Wiki.GetComments(pageName)) { CommonControlsConfigurer.FCKUploadsRemoveForItem("wiki_comments", comment.Id.ToString()); } Wiki.RemovePage(pageName); FactoryIndexer<WikiWrapper>.DeleteAsync(page); Response.RedirectLC("Default.aspx", this); } catch (Exception err) { WikiMaster.PrintInfoMessage(err.Message, InfoType.Alert); } }
public CustomFieldWrapper DeleteCustomField(string entityType, int fieldid) { if (!(CRMSecurity.IsAdmin)) { throw CRMSecurity.CreateSecurityException(); } if (fieldid <= 0) { throw new ArgumentException(); } var customField = DaoFactory.CustomFieldDao.GetFieldDescription(fieldid); if (customField == null) { throw new ItemNotFoundException(); } var result = ToCustomFieldWrapper(customField); DaoFactory.CustomFieldDao.DeleteField(fieldid); FactoryIndexer <FieldsWrapper> .DeleteAsync(customField); var messageAction = GetCustomFieldDeletedAction(ToEntityType(entityType)); MessageService.Send(Request, messageAction, MessageTarget.Create(customField.ID), result.Label); return(result); }
public virtual Deal DeleteDeal(int dealID) { if (dealID <= 0) { return(null); } var deal = GetByID(dealID); if (deal == null) { return(null); } CRMSecurity.DemandDelete(deal); // Delete relative keys _cache.Remove(new Regex(TenantID.ToString(CultureInfo.InvariantCulture) + "deals.*")); DeleteBatchDealsExecute(new List <Deal>() { deal }); FactoryIndexer <DealsWrapper> .DeleteAsync(deal); return(deal); }
public void SaveOrUpdate(Comment comment) { if (comment == null) { throw new ArgumentNullException("comment"); } if (comment.CreateBy == default(Guid)) { comment.CreateBy = SecurityContext.CurrentAccount.ID; } var now = TenantUtil.DateTimeNow(); if (comment.CreateOn == default(DateTime)) { comment.CreateOn = now; } DaoFactory.CommentDao.Save(comment); if (!comment.Inactive) { FactoryIndexer <CommentsWrapper> .IndexAsync(comment); } else { FactoryIndexer <CommentsWrapper> .DeleteAsync(comment); } }
public void Delete(Message message) { if (message == null) { throw new ArgumentNullException("message"); } if (message.Project == null) { throw new Exception("Project"); } ProjectSecurity.DemandEdit(message); DaoFactory.MessageDao.Delete(message.ID); var recipients = GetSubscribers(message); if (recipients.Any() && !DisableNotifications) { NotifyClient.Instance.SendAboutMessageDeleting(recipients, message); } UnSubscribeAll(message); FactoryIndexer <DiscussionsWrapper> .DeleteAsync(message); }
public virtual void Delete(int projectId) { var project = GetByID(projectId); if (project == null) { return; } ProjectSecurity.DemandEdit(project); FileEngine.RemoveRoot(projectId); List <int> messages, tasks; DaoFactory.ProjectDao.Delete(projectId, out messages, out tasks); NotifyClient.Instance.SendAboutProjectDeleting(new HashSet <Guid> { project.Responsible }, project); MessageEngine.UnSubscribeAll(messages.Select(r => new Message { Project = project, ID = r }).ToList()); TaskEngine.UnSubscribeAll(tasks.Select(r => new Task { Project = project, ID = r }).ToList()); FactoryIndexer <ProjectsWrapper> .DeleteAsync(project); }
public void DeletePost(Post post) { CommunitySecurity.CheckPermissions(post, Constants.Action_EditRemovePost); _storage.GetPostDao().DeletePost(post.ID); NotifySource.GetSubscriptionProvider().UnSubscribe( Constants.NewComment, post.ID.ToString() ); FactoryIndexer <BlogsWrapper> .DeleteAsync(post); AscCache.Default.Remove("communityScreen" + TenantProvider.CurrentTenantID); }
private void DeleteBatchInvoicesExecute(List <Invoice> invoices) { var invoiceID = invoices.Select(x => x.ID).ToArray(); using (var tx = Db.BeginTransaction()) { Db.ExecuteNonQuery(Delete("crm_invoice_line").Where(Exp.In("invoice_id", invoiceID))); Db.ExecuteNonQuery(Delete("crm_invoice").Where(Exp.In("id", invoiceID))); tx.Commit(); } invoices.ForEach(invoice => FactoryIndexer <InvoicesWrapper> .DeleteAsync(invoice)); }
public virtual void DeleteByContact(int contactID) { if (contactID <= 0) { return; } Db.ExecuteNonQuery(Delete("crm_contact_info").Where(Exp.Eq("contact_id", contactID))); FactoryIndexer <InfoWrapper> .DeleteAsync(r => r.Where(a => a.ContactId, contactID)); var infos = GetList(contactID, ContactInfoType.Email, null, null); FactoryIndexer <EmailWrapper> .Update(new EmailWrapper { Id = contactID, EmailInfoWrapper = infos.Select(r => (EmailInfoWrapper)r).ToList() }, UpdateAction.Replace, r => r.EmailInfoWrapper); }
public void DeleteFolder(object folderId) { if (folderId == null) { throw new ArgumentNullException("folderId"); } var id = int.Parse(Convert.ToString(folderId)); if (id == 0) { return; } using (var tx = dbManager.BeginTransaction()) { var subfolders = dbManager .ExecuteList(new SqlQuery("files_folder_tree").Select("folder_id").Where("parent_id", id)) .ConvertAll(r => Convert.ToInt32(r[0])); if (!subfolders.Contains(id)) { subfolders.Add(id); // chashed folder_tree } var parent = dbManager.ExecuteScalar <int>(Query("files_folder").Select("parent_id").Where("id", id)); dbManager.ExecuteNonQuery(Delete("files_folder").Where(Exp.In("id", subfolders))); dbManager.ExecuteNonQuery(new SqlDelete("files_folder_tree").Where(Exp.In("folder_id", subfolders))); dbManager.ExecuteNonQuery(Delete("files_tag_link").Where(Exp.In("entry_id", subfolders.Select(subfolder => subfolder.ToString()).ToArray())).Where("entry_type", (int)FileEntryType.Folder)); var tagsToRemove = dbManager.ExecuteList( Query("files_tag tbl_ft ") .Select("tbl_ft.id") .LeftOuterJoin("files_tag_link tbl_ftl", Exp.EqColumns("tbl_ft.tenant_id", "tbl_ftl.tenant_id") & Exp.EqColumns("tbl_ft.id", "tbl_ftl.tag_id")) .Where("tbl_ftl.tag_id is null")) .ConvertAll(r => Convert.ToInt32(r[0])); dbManager.ExecuteNonQuery(Delete("files_tag").Where(Exp.In("id", tagsToRemove))); dbManager.ExecuteNonQuery(Delete("files_security").Where(Exp.In("entry_id", subfolders.Select(subfolder => subfolder.ToString()).ToArray())).Where("entry_type", (int)FileEntryType.Folder)); dbManager.ExecuteNonQuery(Delete("files_bunch_objects").Where("left_node", id)); tx.Commit(); RecalculateFoldersCount(parent); } FactoryIndexer <FoldersWrapper> .DeleteAsync(new FoldersWrapper { Id = (int)folderId }); }
public virtual void DeleteTask(int taskID) { var task = GetByID(taskID); if (task == null) { return; } CRMSecurity.DemandEdit(task); Db.ExecuteNonQuery(Delete("crm_task").Where("id", taskID)); _cache.Remove(new Regex(TenantID.ToString(CultureInfo.InvariantCulture) + "tasks.*")); FactoryIndexer <TasksWrapper> .DeleteAsync(task); }
public void Delete(Milestone milestone) { if (milestone == null) { throw new ArgumentNullException("milestone"); } ProjectSecurity.DemandDelete(milestone); DaoFactory.MilestoneDao.Delete(milestone.ID); var users = new HashSet <Guid> { milestone.Project.Responsible, milestone.Responsible }; NotifyClient.Instance.SendAboutMilestoneDeleting(users, milestone); FactoryIndexer <MilestonesWrapper> .DeleteAsync(milestone); }
public void DeleteItem(RelationshipEvent item) { CRMSecurity.DemandDelete(item); var relativeFiles = GetFiles(item.ID); var nowFilesEditing = relativeFiles.Where(file => (file.FileStatus & FileStatus.IsEditing) == FileStatus.IsEditing); if (nowFilesEditing.Count() != 0) { throw new ArgumentException(); } relativeFiles.ForEach(f => RemoveFile(f)); Db.ExecuteNonQuery(Delete("crm_relationship_event").Where(Exp.Eq("id", item.ID))); FactoryIndexer <EventsWrapper> .DeleteAsync(item); }
public CasesWrapper DeleteCase(int caseid) { if (caseid <= 0) { throw new ArgumentException(); } var cases = DaoFactory.CasesDao.DeleteCases(caseid); if (cases == null) { throw new ItemNotFoundException(); } FactoryIndexer <Web.CRM.Core.Search.CasesWrapper> .DeleteAsync(cases); MessageService.Send(Request, MessageAction.CaseDeleted, MessageTarget.Create(cases.ID), cases.Title); return(ToCasesWrapper(cases)); }
public void Delete(Task task) { if (task == null) { throw new ArgumentNullException("task"); } ProjectSecurity.DemandDelete(task); DaoFactory.TaskDao.Delete(task); var recipients = GetSubscribers(task); if (recipients.Count != 0) { NotifyClient.Instance.SendAboutTaskDeleting(recipients, task); } UnSubscribeAll(task); FactoryIndexer <TasksWrapper> .DeleteAsync(task); }
public ContactInfoWrapper DeleteContactInfo(int contactid, int id) { if (id <= 0 || contactid <= 0) { throw new ArgumentException(); } var contact = DaoFactory.ContactDao.GetByID(contactid); if (contact == null || !CRMSecurity.CanEdit(contact)) { throw new ItemNotFoundException(); } var contactInfo = DaoFactory.ContactInfoDao.GetByID(id); if (contactInfo == null) { throw new ItemNotFoundException(); } var wrapper = ToContactInfoWrapper(contactInfo); DaoFactory.ContactInfoDao.Delete(id); var messageAction = contact is Company ? MessageAction.CompanyUpdatedPrincipalInfo : MessageAction.PersonUpdatedPrincipalInfo; MessageService.Send(Request, messageAction, MessageTarget.Create(contact.ID), contact.GetTitle()); if (contactInfo.InfoType == ContactInfoType.Email) { FactoryIndexer <EmailWrapper> .DeleteAsync(EmailWrapper.ToEmailWrapper(contact, new List <ContactInfo> { contactInfo })); } FactoryIndexer <InfoWrapper> .DeleteAsync(contactInfo); return(wrapper); }
private void DeleteFile(object fileId, bool deleteFolder) { if (fileId == null) { return; } using (var tx = dbManager.BeginTransaction()) { var fromFolders = dbManager .ExecuteList(Query("files_file").Select("folder_id").Where("id", fileId).GroupBy("id")) .ConvertAll(r => r[0]); dbManager.ExecuteNonQuery(Delete("files_file").Where("id", fileId)); dbManager.ExecuteNonQuery(Delete("files_tag_link").Where("entry_id", fileId.ToString()).Where("entry_type", (int)FileEntryType.File)); var tagsToRemove = dbManager.ExecuteList( Query("files_tag tbl_ft ") .Select("tbl_ft.id") .LeftOuterJoin("files_tag_link tbl_ftl", Exp.EqColumns("tbl_ft.tenant_id", "tbl_ftl.tenant_id") & Exp.EqColumns("tbl_ft.id", "tbl_ftl.tag_id")) .Where("tbl_ftl.tag_id is null")) .ConvertAll(r => Convert.ToInt32(r[0])); dbManager.ExecuteNonQuery(Delete("files_tag").Where(Exp.In("id", tagsToRemove))); dbManager.ExecuteNonQuery(Delete("files_security").Where("entry_id", fileId.ToString()).Where("entry_type", (int)FileEntryType.File)); tx.Commit(); fromFolders.ForEach(folderId => RecalculateFilesCount(dbManager, folderId)); } if (deleteFolder) { DeleteFolder(fileId); } FactoryIndexer <FilesWrapper> .DeleteAsync(new FilesWrapper { Id = (int)fileId }); }
public void RemoveFeed(Feed feed) { if (feed == null) { return; } var id = feed.Id; using (var tx = dbManager.BeginTransaction()) { dbManager.ExecuteNonQuery(Delete("events_pollanswer").Where(Exp.In("Variant", Query("events_pollvariant").Select("Id").Where(Exp.Eq("Poll", id))))); dbManager.ExecuteNonQuery(Delete("events_pollvariant").Where("Poll", id)); dbManager.ExecuteNonQuery(Delete("events_poll").Where("Id", id)); dbManager.ExecuteNonQuery(Delete("events_comment").Where("Feed", id)); dbManager.ExecuteNonQuery(Delete("events_reader").Where("Feed", id)); dbManager.ExecuteNonQuery(Delete("events_feed").Where("Id", id)); tx.Commit(); } AscCache.Default.Remove("communityScreen" + TenantProvider.CurrentTenantID); FactoryIndexer <NewsWrapper> .DeleteAsync(feed); }
public virtual void Delete(int id) { Db.ExecuteNonQuery(Delete("crm_contact_info").Where(Exp.Eq("id", id))); FactoryIndexer <InfoWrapper> .DeleteAsync(r => r.Where(a => a.Id, id)); }