Exemple #1
0
 public MediaElement(MediaArgs args)
 {
     Title       = args.Title;
     Description = args.Description;
     Type        = args.Type;
     Status      = args.Status;
 }
Exemple #2
0
        void printMedium(object sender, MediaArgs e)
        {
            var mediaDescription = "";

            if (e.Anleitungsmedium is Text2D)
            {
                mediaDescription += (e.Anleitungsmedium as Text2D);
            }
            Console.WriteLine("Backend sent a " + e.Anleitungsmedium.GetType().Name + " Medium: " + mediaDescription);
        }
        public async Task <IActionResult> PostAsync([FromBody] MediaArgs args)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (!UserPermissions.IsAllowedToCreate(User.Identity, args.Status))
            {
                return(Forbid());
            }

            var ev = new MediaCreated
            {
                Id         = _entityIndex.NextId(ResourceType.Media),
                UserId     = User.Identity.GetUserIdentity(),
                Properties = args,
                Timestamp  = DateTimeOffset.Now
            };

            await _eventStore.AppendEventAsync(ev);

            return(Created($"{Request.Scheme}://{Request.Host}/api/Media/{ev.Id}", ev.Id));
        }
        public async Task <IActionResult> PutById(int id, [FromBody] MediaArgs args)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (!_entityIndex.Exists(ResourceType.Media, id))
            {
                return(NotFound());
            }

            if (!UserPermissions.IsAllowedToEdit(User.Identity, args.Status, _entityIndex.Owner(ResourceType.Media, id)))
            {
                return(Forbid());
            }

            var oldStatus = _entityIndex.Status(ResourceType.Media, id).GetValueOrDefault();

            if (args.Status == ContentStatus.Unpublished && oldStatus != ContentStatus.Published)
            {
                return(BadRequest(ErrorMessages.CannotBeUnpublished(ResourceType.Media)));
            }

            var ev = new MediaUpdate
            {
                Id         = id,
                UserId     = User.Identity.GetUserIdentity(),
                Properties = args,
                Timestamp  = DateTimeOffset.Now,
            };

            await _eventStore.AppendEventAsync(ev);

            return(StatusCode(204));
        }