Beispiel #1
0
        public VenueItems EditItem(string userId, IncomingEditItem editItem)
        {
            var canEdit = this.CanUserEditVenueItems(userId, editItem.Id);

            if (canEdit == false)
            {
                throw new UnauthorizedAccessException();
            }

            var item = this.dbContext.VenueItems.FirstOrDefault(x => x.Id == editItem.Id);

            if (item == null)
            {
                throw new UnauthorizedAccessException();
            }

            var permissions = this.unitOfWork.Permissions.GetUserByIdWithPermissions(userId)?.SitePermissions;



            item.Name     = editItem.Name;
            item.IconId   = editItem.IconId;
            item.IsHidden = editItem.IsHidden;

            if (permissions?.PricePermissions?.Edit == true)
            {
                item.Price = editItem.Price;
            }

            return(item);
        }
        public HttpResponseMessage EditVenueItem(IncomingEditItem item)
        {
            return(ErrorFactory.Handle(() =>
            {
                var userId = User?.Identity?.GetUserId();

                if (string.IsNullOrWhiteSpace(userId))
                {
                    throw new Exception();
                }

                using (var unitOfWork = new UnitOfWork())
                {
                    var returnedItem = unitOfWork.VenueItems.EditItem(userId, item);

                    unitOfWork.Complete();

                    var outgoingItem = OutgoingVenueItems.Parse(returnedItem);

                    return JsonFactory.CreateJsonMessage(outgoingItem, HttpStatusCode.OK, this.Request);
                }
            }, this.Request));
        }