protected void ProcessAttacherForSave(FileAttacher attacher, IEnumerable<HttpPostedFileBase> uploadedFiles) { if (attacher == null) { return; } if (attacher.ExtantFiles != null) { var delFiles = attacher.ExtantFiles.Where(item => !String.IsNullOrEmpty(item.Deleted)).ToList(); if (delFiles.Count() > 0) { if (attacher.DeleteFiles == null) { attacher.DeleteFiles = new List<DeleteFileInfo>(); } foreach (var f in delFiles) { attacher.DeleteFiles.Add(new DeleteFileInfo { ID = f.ID }); } attacher.ExtantFiles.RemoveAll(item => !String.IsNullOrEmpty(item.Deleted)); } } if (attacher.CachedFiles != null) { attacher.CachedFiles.RemoveAll(item => !String.IsNullOrEmpty(item.Deleted)); foreach (var cacheFile in attacher.CachedFiles) { var data = TempData[cacheFile.CacheID]; Byte[] fileData = data as Byte[]; cacheFile.FileData = fileData; } } if ((attacher.NewFiles != null) && (uploadedFiles != null)) { var upldFileList = uploadedFiles.ToList(); int cnt = Math.Min(attacher.NewFiles.Count(), upldFileList.Count()); if (cnt > 0) { if (attacher.CachedFiles == null) { attacher.CachedFiles = new List<CachedFileInfo>(); } for (int i = 0; i < cnt; i++) { var upldFile = upldFileList[i]; if ((upldFile != null) && (upldFile.ContentLength > 0)) { attacher.CachedFiles.Add( new CachedFileInfo(Guid.NewGuid().ToString("n"), upldFile, attacher.NewFiles[i]) ); } } } } attacher.NewFiles = null; }
protected void UpdateJobAttachments(ProductionJob editJob, FileAttacher attacher) { if (attacher != null) { List<string> delIDS = attacher.DelFileIDs(); if (delIDS.IsAny()) { string sql = "DELETE FROM FG_PRDN_JOB_ATTACHMENT WHERE FG_PRDN_JOB_ATT_ID IN (" + PrdnDataHelper.ParmFormatList(delIDS.Count()) + ")"; PrdnDBContext.ExecuteStoreCommand(sql, delIDS.Cast<object>().ToArray()); } if (attacher.NotNullAny(a => a.ExtantFiles)) { foreach (var dbFile in attacher.ExtantFiles) { var mods = editJob.Attachments.Where(a => (a.ID == dbFile.DecimalID) && ((a.AttachmentTypeID != dbFile.AttTypeID) && (dbFile.AttTypeID != null) || a.Description != dbFile.Description) ); foreach (var modFile in mods) { modFile.AttachmentTypeID = (decimal)dbFile.AttTypeID; modFile.Description = dbFile.Description; } } }; if (attacher.NotNullAny(a => a.CachedFiles)) { foreach (var newFile in attacher.CachedFiles) { CST.Prdn.Data.ProductionJobAttachment newAttachment = new CST.Prdn.Data.ProductionJobAttachment { //JobID = editJob.ID, FileName = newFile.FileName, MimeType = newFile.MimeType, Description = newFile.Description, Attachment = newFile.FileData }; if (newFile.AttTypeID != null) { newAttachment.AttachmentTypeID = (decimal)newFile.AttTypeID; } editJob.Attachments.Add(newAttachment); } } } }
protected void ProcessAttacherForPost(FileAttacher attacher) { if (attacher == null) { return; } attacher.AttTypesFunc = GetAttTypes; if (attacher.CachedFiles != null) { foreach (var cacheFile in attacher.CachedFiles) { TempData[cacheFile.CacheID] = cacheFile.FileData; } } // clear attacher model state info so Post view render does not display old list info foreach (var delPair in ModelState.Where(p => (p.Key.Contains("Attacher"))).ToList()) { ModelState.Remove(delPair.Key); } }