public Concept SaveConcept(Concept concept, IList <Attachment> attachments) { using (var repositoriesContainer = new LmPlatformRepositoriesContainer()) { //attachments = ProcessWordAttachmentsIfExist(attachments); if (!string.IsNullOrEmpty(concept.Container)) { var deleteFiles = repositoriesContainer.AttachmentRepository.GetAll( new Query <Attachment>(e => e.PathName == concept.Container)).ToList().Where(e => attachments.All(x => x.Id != e.Id)).ToList(); foreach (var attachment in deleteFiles) { FilesManagementService.DeleteFileAttachment(attachment); } } else { concept.Container = GetGuidFileName(); } FilesManagementService.SaveFiles(attachments.Where(e => e.Id == 0), concept.Container); foreach (var attachment in attachments) { if (attachment.Id == 0) { attachment.PathName = concept.Container; repositoriesContainer.AttachmentRepository.Save(attachment); } } concept.Published = attachments.Any(); Concept source = null; if (concept.Id != 0) { source = GetById(concept.Id); } repositoriesContainer.ConceptRepository.Save(concept); repositoriesContainer.ApplyChanges(); if (source == null) { InitNeighborConcept(concept, repositoriesContainer); } BindNeighborConcept(concept, source, repositoriesContainer); TryPublishParent(concept.ParentId, repositoriesContainer); return(concept); } }
public Labs SaveLabs(Labs labs, IList <Attachment> attachments, Int32 userId) { using (var repositoriesContainer = new LmPlatformRepositoriesContainer()) { if (!string.IsNullOrEmpty(labs.Attachments)) { var deleteFiles = repositoriesContainer.AttachmentRepository.GetAll( new Query <Attachment>(e => e.PathName == labs.Attachments)).ToList().Where(e => attachments.All(x => x.Id != e.Id)).ToList(); foreach (var attachment in deleteFiles) { FilesManagementService.DeleteFileAttachment(attachment); } } else { labs.Attachments = GetGuidFileName(); } FilesManagementService.SaveFiles(attachments.Where(e => e.Id == 0), labs.Attachments); foreach (var attachment in attachments) { if (attachment.Id == 0) { attachment.PathName = labs.Attachments; repositoriesContainer.AttachmentRepository.Save(attachment); } } repositoriesContainer.LabsRepository.Save(labs); repositoriesContainer.ApplyChanges(); if (labs.IsNew && !labs.Subject.SubjectModules.Any(m => m.Module.ModuleType == ModuleType.Practical) && labs.Subject.SubjectModules.Any(m => m.Module.ModuleType == ModuleType.Labs)) { ConceptManagementService.AttachFolderToLabSection(labs.Theme, userId, labs.SubjectId); } } return(labs); }
public UserLabFiles SaveUserLabFiles(UserLabFiles userLabFiles, IList <Attachment> attachments) { using (var repositoriesContainer = new LmPlatformRepositoriesContainer()) { if (!string.IsNullOrEmpty(userLabFiles.Attachments)) { var deleteFiles = repositoriesContainer.AttachmentRepository.GetAll( new Query <Attachment>(e => e.PathName == userLabFiles.Attachments)).ToList().Where(e => attachments.All(x => x.Id != e.Id)).ToList(); foreach (var attachment in deleteFiles) { FilesManagementService.DeleteFileAttachment(attachment); } } else { userLabFiles.Attachments = GetGuidFileName(); } FilesManagementService.SaveFiles(attachments.Where(e => e.Id == 0), userLabFiles.Attachments); foreach (var attachment in attachments) { if (attachment.Id == 0) { attachment.PathName = userLabFiles.Attachments; repositoriesContainer.AttachmentRepository.Save(attachment); } } repositoriesContainer.RepositoryFor <UserLabFiles>().Save(userLabFiles); repositoriesContainer.ApplyChanges(); } return(userLabFiles); }