Exemple #1
0
 public Task <ApiResponse <bool> > Bulk(string id, WriteMeasureDto dto)
 {
     return(Catch(async() =>
     {
         var command = new UpdateMeasureCommand(Uri.UnescapeDataString(id), dto.Name, dto.Position);
         await MessageBus.DispatchCommand(command);
         return true;
     }));
 }
Exemple #2
0
        public async Task <CommandResult> Handle(UpdateMeasureCommand request, CancellationToken cancellationToken)
        {
            CommandResult commandInvariantResult = await ValidateCommandInvariants(request);

            if (!commandInvariantResult.Success)
            {
                return(FailureDueTo(commandInvariantResult.Notifications.ToList()));
            }

            Measure measure = await _measureRepository.GetByIdAsync(request.MeasureId);

            if (!FoundValidMeasure(measure))
            {
                return(FailureDueToMeasureNotFound());
            }

            List <Image> bodyPictures = new List <Image>();

            foreach (IFormFile bodyPicture in request.BodyPictures)
            {
                string containerName = _containerOptions.Value.MeasureImageContainerName;

                StorageFile existingBodyPicture = await _storageService.FindFileAsync(containerName, bodyPicture.FileName);

                if (existingBodyPicture == null)
                {
                    StorageResult storageResult = await UploadBodyPictureToStorage(bodyPicture);

                    if (!storageResult.Success)
                    {
                        return(FailureDueToUploadFailure());
                    }

                    bodyPictures.Add(new Image(storageResult.FileName, storageResult.FileUrl));
                }
                else
                {
                    bodyPictures.Add(new Image(existingBodyPicture.UrlPath, existingBodyPicture.Name));
                }
            }

            BasicMeasure basicMeasure = new BasicMeasure(request.Height, request.Weight);

            measure.Update(
                request.Title,
                request.Details,
                basicMeasure,
                request.MeasureDate,
                bodyPictures,
                _mapper.Map <List <MeasureLine> >(request.MeasureLines)
                );

            await _measureRepository.UpdateAsync(measure);

            return(await CommitAndPublishDefaultAsync());
        }
        public async Task <ActionResult <MeasureDto> > UpdateMeasure(UpdateMeasureCommand request)
        {
            var result = await Mediator.Send(request);

            return(GetResponse(result));
        }
        public async Task <IActionResult> UpdateAsync(Guid id, [FromBody] UpdateMeasureCommand command)
        {
            command.MeasureId = id;

            return(await CreateCommandResponse(command));
        }