Пример #1
0
        /// <summary>
        /// Возвращает список параметров, которые могут использоваться в запросах
        /// </summary>
        public static SqlParameter[] GetParameters(ItemFileLinkDTO item)
        {
            List <SqlParameter> parameters = new List <SqlParameter>();

            parameters.Add(new SqlParameter("@IsDeleted", DbTypes.DbObject(item.IsDeleted)));
            parameters.Add(new SqlParameter("@ItemID", DbTypes.DbObject(item.ItemId)));
            parameters.Add(new SqlParameter("@ParentId", DbTypes.DbObject(item.ParentId)));
            parameters.Add(new SqlParameter("@ParentTypeId", DbTypes.DbObject(item.ParentTypeId)));
            parameters.Add(new SqlParameter("@LinkType", DbTypes.DbObject(item.LinkType)));
            parameters.Add(new SqlParameter("@FileId", DbTypes.DbObject(item.File.ItemId)));

            return(parameters.ToArray());
        }
Пример #2
0
        public void DeleteAttachedFileDTO(ItemFileLinkDTO link)
        {
            if (link == null)
            {
                throw new ArgumentNullException("ItemFileLink", "can not be null");
            }
            var oldFileId = link.File.ItemId;

            _environment.Execute(ItemFileLinksQueries.GetDeleteQuery(link.ParentId, link.ParentTypeId, link.File.ItemId));

            if (oldFileId > 0)
            {
                DeleteFileIfFileHasNoLinks(oldFileId);
            }
        }
Пример #3
0
        public int SaveAttachedFileDTO(ItemFileLinkDTO link)
        {
            if (link == null)
            {
                throw new ArgumentNullException("ItemFileLink", "can not be null");
            }

            var dsAfterInsertLink = new DataSet();
            var existsFileId      = FindFileId(link.File);

            if (existsFileId > 0)
            {
                //Присваиваем fileId  файла, обновляем линк и возвращаем Id файла
                link.File.ItemId = existsFileId;

                dsAfterInsertLink = _environment.Execute(ItemFileLinksQueries.GetMergeQuery(), ItemFileLinksQueries.GetParameters(link));
                link.ItemId       = DbTypes.ToInt32(dsAfterInsertLink.Tables[0].Rows[0][0]);

                return(existsFileId);
            }
            //Запоминаем fileId старого файла
            var oldFileId = link.File.ItemId;

            var ds = _environment.Execute(AttachedFileQueries.GetInsertQuery(), AttachedFileQueries.GetParameters(link.File));
            //Запоминаем fileId нового файла
            var newFileId = DbTypes.ToInt32(ds.Tables[0].Rows[0][0]);

            link.File.ItemId = newFileId;

            dsAfterInsertLink = _environment.Execute(ItemFileLinksQueries.GetMergeQuery(), ItemFileLinksQueries.GetParameters(link));
            link.ItemId       = DbTypes.ToInt32(dsAfterInsertLink.Tables[0].Rows[0][0]);

            if (oldFileId > 0)
            {
                DeleteFileIfFileHasNoLinks(oldFileId);
            }

            return(newFileId);
        }