/// <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()); }
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); } }
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); }