/// <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);
        }
示例#3
0
        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));
 }