public void UpdateReceiveLetterFiles(ReceivedLetter receivedLetter, List <HttpPostedFileBase> fileUploadLetters, List <Guid> FilesID) { if (receivedLetter.ReceiveLetterFiles != null) { List <ReceiveLetterFile> deletedList = new List <ReceiveLetterFile>(); foreach (var item in receivedLetter.ReceiveLetterFiles.ToList()) { if (FilesID.All(x => x != item.Id)) { deletedList.Add(item); } } //Delete Items var dbSetremovefiles = DBC.Set <ReceiveLetterFile>(); foreach (var item in deletedList) { dbSetremovefiles.Remove(item); } } int i = 0; foreach (var item in fileUploadLetters) { if (item != null && item.ContentLength > 0) { var target = new MemoryStream(); ReceiveLetterFile receiveLetterFile = new ReceiveLetterFile(); item.InputStream.CopyTo(target); receiveLetterFile.File = new ArchiveFile { Content = target.ToArray(), Name = item.FileName, ContentType = item.ContentType }; try { receivedLetter.ReceiveLetterFiles[i] = receiveLetterFile; } catch (Exception) { receivedLetter.ReceiveLetterFiles.Add(receiveLetterFile); } } i++; } }
public ActionResult Add(AddIncomingLettersViewModel incomingLettersViewModel) { ReceiveLetterManager receiveLetterManager = new ReceiveLetterManager(); //Add letter files if (incomingLettersViewModel.FileUploadLetters != null && incomingLettersViewModel.FileUploadLetters.Count > 0) { incomingLettersViewModel.receivedLetter.ReceiveLetterFiles = new List <ReceiveLetterFile>(); foreach (var item in incomingLettersViewModel.FileUploadLetters) { if (item == null || item.ContentLength <= 0) { continue; } var target = new MemoryStream(); ReceiveLetterFile receiveLetterFile = new ReceiveLetterFile(); item.InputStream.CopyTo(target); receiveLetterFile.File = new ArchiveFile { Content = target.ToArray(), Name = item.FileName, ContentType = item.ContentType }; incomingLettersViewModel.receivedLetter.ReceiveLetterFiles.Add(receiveLetterFile); } } //Add letter appendages if (incomingLettersViewModel.FileUploadAppendages != null && incomingLettersViewModel.FileUploadAppendages.Count > 0) { incomingLettersViewModel.receivedLetter.Appendages = new List <ReceiveAppendage>(); foreach (var item in incomingLettersViewModel.FileUploadAppendages) { if (item != null && item.ContentLength > 0) { var target = new MemoryStream(); ReceiveAppendage receiveAppendage = new ReceiveAppendage(); item.InputStream.CopyTo(target); receiveAppendage.File = new ArchiveFile { Content = target.ToArray(), Name = item.FileName, ContentType = item.ContentType }; incomingLettersViewModel.receivedLetter.Appendages.Add(receiveAppendage); } } } //Date Times if (!string.IsNullOrEmpty(incomingLettersViewModel.LetterDateTime)) { incomingLettersViewModel.receivedLetter.LetterDateTime = incomingLettersViewModel.LetterDateTime.ToGeorgianDateTime(); } incomingLettersViewModel.receivedLetter.ArchiveDateTime = DateTime.Now; incomingLettersViewModel.receivedLetter.LastModifyDateTime = DateTime.Now; //Row number and user incomingLettersViewModel.receivedLetter.RowNumber = incomingLettersViewModel.RowNumber; receiveLetterManager.AddUser(incomingLettersViewModel.receivedLetter, new Guid(User.Identity.Name)); //Set Parent Letter receiveLetterManager.SetParent(incomingLettersViewModel.receivedLetter, incomingLettersViewModel.ParentletterId); //Add organization , post and person if (incomingLettersViewModel.PersonGuid != Guid.Empty || incomingLettersViewModel.OrganizationGuid != Guid.Empty) { receiveLetterManager.AddSender(incomingLettersViewModel.receivedLetter, incomingLettersViewModel.OrganizationGuid, incomingLettersViewModel.PersonGuid, incomingLettersViewModel.PostGuid); } //Add cases if (incomingLettersViewModel.SelectedCasesGuid != null && incomingLettersViewModel.SelectedCasesGuid.Count > 0) { receiveLetterManager.AddCases(incomingLettersViewModel.receivedLetter, incomingLettersViewModel.SelectedCasesGuid); } //Add 3 pdf to db receiveLetterManager.GeneratePDF(incomingLettersViewModel.receivedLetter); //Add letter to db and save changes receiveLetterManager.Add(incomingLettersViewModel.receivedLetter); receiveLetterManager.saveChanges(); return(RedirectToAction("Index")); }