Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
            }
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
        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));
        }
Exemplo n.º 9
0
        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);
        }
Exemplo n.º 10
0
        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 });
        }
Exemplo n.º 11
0
        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);
        }
Exemplo n.º 12
0
        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);
        }
Exemplo n.º 13
0
        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);
        }
Exemplo n.º 14
0
        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));
        }
Exemplo n.º 15
0
        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);
        }
Exemplo n.º 16
0
        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);
        }
Exemplo n.º 17
0
        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 });
        }
Exemplo n.º 18
0
        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);
        }
Exemplo n.º 19
0
 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));
 }