public ScheduleProtectionLabsDataViewModel(Labs lab, int subGroupId)
 {
     SuGroupId = subGroupId;
     LabId = lab.Id;
     Order = lab.Order;
     Name = lab.Theme;
 }
示例#2
0
 public LabsDataViewModel(Labs labs)
 {
     Theme = labs.Theme;
     LabsId = labs.Id;
     Duration = labs.Duration;
     SubjectId = labs.SubjectId;
     Order = labs.Order;
     PathFile = labs.Attachments;
     ShortName = labs.ShortName;
     Attachments = FilesManagementService.GetAttachments(labs.Attachments);
 }
        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;
        }