public async Task <ItemDTO> EditItemInfo(ItemEditDTO itemInfo) { using (_unitOfWork) { Item item = await _unitOfWork.ItemRepository.FindByID(itemInfo.ItemId); item.Name = itemInfo.Name; item.Description = itemInfo.Description; item.Amount = itemInfo.Amount; item.Unit = itemInfo.Unit; _unitOfWork.ItemRepository.Update(item); Notification notification = new Notification(); notification.Seen = false; notification.RelatedObjectName = item.Name; notification.Type = NotificationType.EditedItem; notification.UserId = item.UserId; await _unitOfWork.NotificationRepository.Create(notification); await _unitOfWork.Save(); ItemDTO retItem = _mapper.Map <Item, ItemDTO>(item); await _messageControllerService.NotifyOnTripChanges(item.TripId, "EditItem", retItem); NotificationItemDTO notificationItem = new NotificationItemDTO() { Notification = _mapper.Map <Notification, NotificationDTO>(notification), Item = retItem }; await _messageControllerService.SendNotification(item.UserId, "EditItemNotification", notificationItem); return(retItem); } }
//-> Edit public async Task <ItemViewDTO> Edit(ItemEditDTO editDTO) { editDTO = StringHelper.TrimStringProperties(editDTO); tblItem item = db.tblItems.FirstOrDefault(r => r.item_Deleted == null && r.id == editDTO.id); if (item == null) { throw new HttpException((int)HttpStatusCode.NotFound, "This record has been deleted"); } var checkItemGroup = await db.tblItemGroups.FirstOrDefaultAsync(x => x.itmg_Deleted == null && x.id == editDTO.itemGroup.id); // check whether itemgroup name exist or not if (checkItemGroup == null) { throw new HttpException((int)HttpStatusCode.BadRequest, "Item group not exists"); } var checkItemCode = await db.tblItems.FirstOrDefaultAsync(r => r.item_Deleted == null && r.code == editDTO.code && r.id != editDTO.id); if (checkItemCode != null) { throw new HttpException((int)HttpStatusCode.BadRequest, "This item code already exsits"); } using (var transaction = db.Database.BeginTransaction()) { try { if (string.IsNullOrEmpty(editDTO.description)) { editDTO.description = editDTO.name; } item = (tblItem)Helper.Helper.MapDTOToDBClass <ItemEditDTO, tblItem>(editDTO, item); item.item_UpdatedDate = DateTime.Now; db.Entry(item).State = EntityState.Modified; await db.SaveChangesAsync(); //TODO : need to handle delete images or delete documents List <sm_doc> documents = await Helper.Helper.SaveUploadImage(db, item.name, Helper.Helper.document_ItemTableID, item.id, editDTO.images);// tmp not useful , just reserve data for using in the furture transaction.Commit(); return(await SelectByID(item.id)); } catch (Exception ex) { transaction.Rollback(); throw new Exception(ex.Message); } } }
//-> Edit public async Task <ItemViewDTO> Edit(ItemEditDTO editDTO) { var record = await db.tblItems.FirstOrDefaultAsync(x => x.deleted == null && x.id == editDTO.id); if (record == null) { throw new HttpException((int)HttpStatusCode.NotFound, "NotFound"); } editDTO = StringHelper.TrimStringProperties(editDTO); record = (tblItem)MappingHelper.MapDTOToDBClass <ItemEditDTO, tblItem>(editDTO, record); record.updatedDate = DateTime.Now; await db.SaveChangesAsync(); return(await SelectByID(record.id)); }
public async Task <JsonResult> Edit(ItemEditDTO editDTO) { try { if (!ModelState.IsValid) { throw new HttpException((int)HttpStatusCode.BadRequest, ConstantHelper.KEY_IN_REQUIRED_FIELD); } Response.StatusCode = 200; return(Json(await handler.Edit(editDTO), JsonRequestBehavior.AllowGet)); } catch (HttpException) { return(Json(ConstantHelper.ERROR, JsonRequestBehavior.AllowGet)); } }
public async Task <IHttpActionResult> Edit(int id, [FromBody] ItemEditDTO item) { try { if (id != item.id) { return(BadRequest("Invalid id ")); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } return(Ok(await repository.Edit(item))); } catch (HttpException ex) { return(BadRequest(ex.Message)); } }
public async Task <ActionResult> EditItem(int tripId, [FromBody] ItemEditDTO itemInfo) { try { if (!await _editRightsService.HasEditRights(tripId)) { return(BadRequest(new JsonResult("You can't currently edit this trip."))); } ItemDTO result = await _itemService.EditItemInfo(itemInfo); await _editRightsService.ProlongEditRights(tripId, _redisAppSettings.EditRightsProlongedTTL); if (result != null) { return(Ok(result)); } return(BadRequest()); } catch (Exception ex) { return(BadRequest(ex.Message)); } }