예제 #1
0
        public async Task <IActionResult> SetEdit([FromBody] DTOs.Edit edit)
        {
            string userId = User?.FindFirst(ClaimTypes.NameIdentifier)?.Value;

            var editDM = new DomainModels.Edit
            {
                ClipUID   = edit.ClipUID,
                StartTrim = edit.StartTrim,
                EndTrim   = edit.EndTrim
            };

            var result = await Repository.AddEditAsync(userId, editDM);

            if (!result)
            {
                return(Unauthorized());
            }
            else
            {
                return(Ok());
            }
        }
예제 #2
0
        /// <summary>
        /// Applies the specified edit to the audio stream attached to the sessionUID and userUID.
        /// </summary>
        /// <param name="sessionUid">UID of the session.</param>
        /// <param name="userUid">UID of the user.</param>
        /// <param name="edit">Edit to apply.</param>
        /// <returns></returns>
        public async Task <bool> AddEditAsync(string userUid, DomainModels.Edit edit)
        {
            var clip = await DbContext.Clips.Include(x => x.Edit).Include(c => c.Session)
                       .FirstOrDefaultAsync(c => c.UID == edit.ClipUID && c.Session.Podcast.Members.Any(x => x.UserUID == userUid & x.IsAdmin));

            if (clip == null)
            {
                return(false);
            }

            if (clip.Edit != null)
            {
                if (clip.Edit.StartTrim == edit.StartTrim &&
                    clip.Edit.EndTrim == edit.EndTrim)
                {
                    return(true);
                }

                DbContext.Edits.Remove(clip.Edit);
            }

            var dbEdit = new Db.Edit
            {
                ClipID    = clip.ID,
                StartTrim = edit.StartTrim,
                EndTrim   = edit.EndTrim,
            };

            DbContext.Edits.Add(dbEdit);

            await DbContext.SaveChangesAsync();

            await UpdateStreamAsync(clip.Session.UID, dbEdit.ID);

            return(true);
        }