/// <summary> /// Creates a new note and adds it to the database. /// </summary> /// <param name="dossierId">The id of the dossier to which this note belongs.</param> /// <param name="noteModel">The model used to create the note.</param> /// <returns></returns> public IHttpActionResult Post(int dossierId, [FromBody] Note noteModel) { var dossier = default(DossierData); if (!CurrentUser.TryGetDossier(dossierId, out dossier)) { return(NotFound()); } var noteData = new NoteData { Text = noteModel.Text, DateCreated = noteModel.DateCreated, PosterId = CurrentUser.Id }; foreach (var media in noteModel.Media) { var noteMediaData = new NoteMediaData { Name = media.Name, MediaLocation = GetStorageUri(media.Name) }; noteData.Media.Add(noteMediaData); } dossier.Notes.Add(noteData); UoW.Save(); var note = Converter.ToNote(noteData); return(CreatedAtRoute("NoteApi", new { dossierId = dossierId }, note)); }
/// <summary> /// Tries to get the media identified by <paramref name="id"/> and fills <paramref name="noteMediaData"/> /// with the retrieved media. /// </summary> /// <param name="noteData"></param> /// <param name="id">The id of the media to retrieve.</param> /// <param name="noteMediaData">The media to fill with the retrieval result.</param> /// <returns></returns> public static bool TryGetMedia(this NoteData noteData, int id, out NoteMediaData noteMediaData) { if (!noteData.HasMedia(id)) { noteMediaData = null; return(false); } noteMediaData = noteData.GetMedia(id); return(true); }
public static NoteMedia ToNoteMedia(NoteMediaData noteMedia) { var noteMediaModel = new NoteMedia { Id = noteMedia.Id, Name = noteMedia.Name, Location = noteMedia.MediaLocation }; return(noteMediaModel); }
/// <summary> /// Checks if this note contains the media specified by <paramref name="noteMediaData"/>. /// </summary> /// <param name="noteData"></param> /// <param name="id">The media to check for existance.</param> /// <returns></returns> public static bool HasMedia(this NoteData noteData, NoteMediaData noteMediaData) { return(noteData.HasMedia(noteMediaData.Id)); }