Ejemplo n.º 1
0
        public async Task <ActionResult> CreateOwner(int id, int userid, [FromBody] OwnershipLevel ownershipLevel)
        {
            // Is the requester authorized?
            if (GetAuthorizedOwnershipLevel(id) < OwnershipLevel.Administrator)
            {
                return(Forbidden());
            }

            Event @event = await Db.Events.FindAsync(id);

            if (@event == null)
            {
                return(NotFound("Event not found"));
            }

            User user = await Db.Users.FindAsync(userid);

            if (user == null)
            {
                return(NotFound("User not found"));
            }

            EventOwnership ownership = await Db.EventOwnerships.FirstOrDefaultAsync(o => (o.Event.ID == id) && (o.User.ID == userid));

            // Already set?
            if (ownership?.OwnershipLevel == ownershipLevel)
            {
                return(Ok()); // done
            }

            if (ownership != null)
            {
                ownership.OwnershipLevel = ownershipLevel;
                Db.EventOwnerships.Update(ownership);
            }
            else
            {
                Db.EventOwnerships.Add(new EventOwnership()
                {
                    Event = @event, User = user, OwnershipLevel = ownershipLevel
                });
            }

            await Db.SaveChangesAsync();

            return(Ok());
        }
Ejemplo n.º 2
0
 public static async Task <APIResponse <bool> > SetEventOwnerAsync(int id, int userid, OwnershipLevel ownershipLevel)
 {
     return(await PostAsync <bool>($"api/events/{id}/ownership/{userid}", ownershipLevel));
 }