Пример #1
0
        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));
        }
Пример #2
0
        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());
        }