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)); }