public async Task <AddOnDTO> EditAddOn(AddOnEditDTO addOnInfo, int tripId) { using (_unitOfWork) { AddOn addOn = await _unitOfWork.AddOnRepository.GetAddOnWithVotable(addOnInfo.AddOnId); addOn.Price = addOnInfo.Price; addOn.Description = addOnInfo.Description; _unitOfWork.AddOnRepository.Update(addOn); await _unitOfWork.Save(); AddOnDTO retValue = _mapper.Map <AddOn, AddOnDTO>(addOn); await _messageControllerService.NotifyOnTripChanges(tripId, "EditAddOn", retValue); return(retValue); } }
public async Task <ActionResult> EditAddOn(int tripId, [FromBody] AddOnEditDTO addOnInfo) { try { if (!await _editRightsService.HasEditRights(tripId)) { return(BadRequest(new JsonResult("You can't currently edit this trip."))); } AddOnDTO result = await _addOnService.EditAddOn(addOnInfo, tripId); await _editRightsService.ProlongEditRights(tripId, _redisAppSettings.EditRightsProlongedTTL); if (result != null) { return(Ok(result)); } return(BadRequest(new JsonResult("Invalid add on information"))); } catch (Exception ex) { return(BadRequest(ex.Message)); } }