Example #1
0
        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);
            }
        }
Example #2
0
        //-> 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);
                }
            }
        }
Example #3
0
        //-> 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));
        }
Example #4
0
 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));
     }
 }
Example #5
0
        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));
            }
        }
Example #6
0
        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));
            }
        }