public async Task <IActionResult> Update(string objectID, string checkListId) { var categoriesTask = _dealObjectProvider.GetCategories(); var checksTask = _dealObjectProvider.GetChecks(checkListId); var userObjectTask = _dealObjectProvider.GetUserObject(objectID); await Task.WhenAll(categoriesTask, checksTask, userObjectTask); var userObject = userObjectTask.Result.Model; var modifyModel = new ObjectModifyViewModel { CategoryList = new SelectList(categoriesTask.Result.Model, nameof(ObjectCategory.Id), nameof(ObjectCategory.Name)), ObjectChecks = _mapper.Map <IList <ObjectModifyViewModel.ObjectCheck> >(checksTask.Result.Model), Name = userObject.Name, ObjectStatusType = (ObjectStatusType)Int32.Parse(userObject.StatusId), Description = userObject.Description, CategoryCode = userObject.CategoryId }; var model = new UpdateObjectViewModel { ModifyViewModel = modifyModel, ObjectId = objectID, CheckListId = checkListId }; return(View(model)); }
public async Task <IActionResult> Update([FromRoute] string objectId, [FromBody] UpdateObjectViewModel request) { if (request == null) { return(BadRequest()); } var objectQuery = new ObjectQuery(objectId); var current = await _objectsRepository.GetObject(objectQuery, CancellationToken.None); if (current == null) { return(NotFound()); } var currentUser = HttpContext.User; var updateCommand = new UpdateObjectCommand(objectId) { Name = request.Name, Description = request.Description, Latitude = request.Latitude, Longitude = request.Longitude, Type = request.Type }; if (request.MainPhoto != null) { updateCommand.MainPhoto = new FileInfo { FileId = request.MainPhoto.FileId, Description = request.MainPhoto.Description }; } if (request.Photos != null) { updateCommand.Photos = request.Photos.Select(x => new FileInfo { FileId = x.FileId, Description = x.Description }).ToList(); } updateCommand.SetCreator( long.Parse(currentUser.FindFirstValue(ClaimTypes.NameIdentifier)).ToString(), currentUser.FindFirstValue(ClaimTypes.Name), currentUser.FindFirstValue(ClaimTypes.Email)); await _objectsRepository.UpdateObject(updateCommand, CancellationToken.None); return(Ok()); }