Пример #1
0
        protected void SetRelative(int[] contactID, EntityType entityType, int entityID)
        {
            using (var db = GetDb())
                using (var tx = db.BeginTransaction())
                {
                    var sqlDelete = new SqlDelete("crm_entity_contact");

                    if (entityID == 0)
                    {
                        throw new ArgumentException();
                    }

                    sqlDelete.Where(Exp.Eq("entity_type", entityType) & Exp.Eq("entity_id", entityID));

                    db.ExecuteNonQuery(sqlDelete);

                    if (!(contactID == null || contactID.Length == 0))
                    {
                        foreach (var id in contactID)
                        {
                            SetRelative(id, entityType, entityID, db);
                        }
                    }

                    tx.Commit();
                }
        }
Пример #2
0
        public void DeleteTagFromEntity(EntityType entityType, int entityID, String tagName)
        {
            var tagID = Db.ExecuteScalar <int>(Query("crm_tag").Select("id")
                                               .Where(Exp.Eq("trim(lower(title))", tagName.Trim().ToLower()) & Exp.Eq("entity_type", (int)entityType)));

            if (tagID == 0)
            {
                return;
            }

            var sqlQuery = new SqlDelete("crm_entity_tag")
                           .Where(Exp.Eq("entity_type", (int)entityType) & Exp.Eq("tag_id", tagID));

            if (entityID > 0)
            {
                sqlQuery.Where(Exp.Eq("entity_id", entityID));
            }

            Db.ExecuteNonQuery(sqlQuery);

            if (entityID == 0)
            {
                Db.ExecuteNonQuery(Delete("crm_tag")
                                   .Where(Exp.Eq("id", tagID) & Exp.Eq("entity_type", (int)entityType)));
            }
        }
Пример #3
0
        public void Where(SqlDelete sql, T item)
        {
            IEnumerable <KeyValuePair <DbColumnAttribute, PropertyInfo> > keyed =
                _mappedColumn.Where(x => x.Key.IsKey || x.Key.IsIdentity);

            InvokeAction(keyed, (name, value) => sql.Where(name, value), item);
        }
Пример #4
0
        protected void RemoveRelativeInDb(int[] contactID, EntityType entityType, int[] entityID)
        {

            if ((contactID == null || contactID.Length == 0) && (entityID == null || entityID.Length == 0))
                throw new ArgumentException();

            var sqlQuery = new SqlDelete("crm_entity_contact");

            if (contactID != null && contactID.Length > 0)
                sqlQuery.Where(Exp.In("contact_id", contactID));

            if (entityID != null && entityID.Length > 0)
                sqlQuery.Where(Exp.In("entity_id", entityID) & Exp.Eq("entity_type", (int)entityType));

            Db.ExecuteNonQuery(sqlQuery);
        }
Пример #5
0
        public void RemoveProvider(string obj, string provider = null, string hashId = null)
        {
            var sql = new SqlDelete("account_links").Where("id", obj);

            if (!string.IsNullOrEmpty(provider))
            {
                sql.Where("provider", provider);
            }
            if (!string.IsNullOrEmpty(hashId))
            {
                sql.Where("uid", hashId);
            }

            var db = DbOptions.Get(DbId);

            db.ExecuteScalar <int>(sql);

            AccountLinkerStorage.RemoveFromCache(obj);
        }
Пример #6
0
        public int Remove(int?mailId = null, uint?folderId = null)
        {
            var query = new SqlDelete(UserFoldertXMailTable.TABLE_NAME)
                        .Where(UserFoldertXMailTable.Columns.Tenant, Tenant)
                        .Where(UserFoldertXMailTable.Columns.User, CurrentUserId);

            if (mailId.HasValue)
            {
                query.Where(UserFoldertXMailTable.Columns.MailId, mailId.Value);
            }

            if (folderId.HasValue)
            {
                query.Where(UserFoldertXMailTable.Columns.FolderId, folderId.Value);
            }

            var result = Db.ExecuteNonQuery(query);

            return(result);
        }
Пример #7
0
        private static SqlDelete ApplyFilter(this SqlDelete query, MailFilter filter, string alias, bool skipFolder)
        {
            var conditions = GetMailFilterConditions(filter, skipFolder, alias);

            if (conditions != null)
            {
                query.Where(conditions);
            }

            return(query);
        }
Пример #8
0
        public void RemoveProvider(string obj, string provider = null, string hashId = null)
        {
            CacheEntry.Reset(obj);

            var sql = new SqlDelete(LinkTable).Where("id", obj);

            if (!string.IsNullOrEmpty(provider))
            {
                sql.Where("provider", provider);
            }
            if (!string.IsNullOrEmpty(hashId))
            {
                sql.Where("uid", hashId);
            }

            using (var db = new DbManager(_dbid))
            {
                db.ExecuteScalar <int>(sql);
            }
        }
Пример #9
0
        public void RemoveProvider(string obj, string provider = null, string hashId = null)
        {
            var sql = new SqlDelete("account_links").Where("id", obj);

            if (!string.IsNullOrEmpty(provider))
            {
                sql.Where("provider", provider);
            }
            if (!string.IsNullOrEmpty(hashId))
            {
                sql.Where("uid", hashId);
            }

            using (var db = new DbManager(dbid))
            {
                db.ExecuteScalar <int>(sql);
            }
            notify.Publish(new LinkerCacheItem {
                Obj = obj
            }, CacheNotifyAction.Remove);
        }
Пример #10
0
        protected void RemoveRelative(int[] contactID, EntityType entityType, int[] entityID)
        {
            if (contactID != null && contactID.Length == 0 && entityID != null && entityID.Length == 0)
            {
                throw new ArgumentException();
            }

            var sqlQuery = new SqlDelete("crm_entity_contact");

            if (contactID != null && contactID.Length > 0)
            {
                sqlQuery.Where(Exp.In("contact_id", contactID));
            }

            if (entityID != null && entityID.Length > 0)
            {
                sqlQuery.Where(Exp.In("entity_id", entityID) & Exp.Eq("entity_type", (int)entityType));
            }

            DbManager.ExecuteNonQuery(sqlQuery);
        }
Пример #11
0
        public int Delete(int tagId, string email = null)
        {
            var query = new SqlDelete(TagAddressTable.TABLE_NAME)
                        .Where(TagAddressTable.Columns.TagId, tagId)
                        .Where(TagAddressTable.Columns.Tenant, Tenant);

            if (!string.IsNullOrEmpty(email))
            {
                query.Where(TagAddressTable.Columns.Address, email);
            }

            var result = Db.ExecuteNonQuery(query);

            return(result);
        }
Пример #12
0
 public void Where(SqlDelete sql, params object[] keys)
 {
     InvokeAction(_mappedColumn, (name, value) => sql.Where(name, value), keys);
 }