public static void SaveOrUpdate(NoteAttachmentModel noteModel) { lock (NoteLocker) { bool addedNote = false; DbEndPoint.SetTimestamps(noteModel); using (var context = contextFactory.CreateContext <NoteAttachmentModel>()) { var existingModel = context.Objects.FirstOrDefault(note => note.Id == noteModel.Id); if (existingModel != null) { existingModel.AcceptModelProperties(noteModel); } else { addedNote = true; context.Objects.Add(noteModel); } context.SaveChanges(); if (addedNote) { EventNoteAdded(noteModel); } } } }
public ChildAttachmentsProviderConfig(NoteAttachmentModel parentAttachment) { Predicate = model => parentAttachment.ChildAttachmentDescriptors.Any(childDescriptor => childDescriptor.ChildAttachmentId == model.Id // не нужно проверять тип, поскольку аттачи лежат в разных таблицах. // предикат, соответственно, применяется к одному типу аттачей внутри одного EF-контекста. // конкретную таблицу выбирает провайдер по полю ChildAttachmentType //&& childDescriptor.ChildAttachmentType == model.TypeOfAttachment ); DecoratorTransform = NoteDecoratorTransform; }
private NoteAttachmentViewModel(NoteAttachmentModel noteModel, bool isReadonly) : base(noteModel, isReadonly) { }
public static NoteAttachmentViewModel CreateEditable(NoteAttachmentModel noteModel) { return(new NoteAttachmentViewModel(noteModel, false)); }
public static NoteAttachmentViewModel CreateReadonly(NoteAttachmentModel noteModel) { return(new NoteAttachmentViewModel(noteModel, true)); }