public async Task <dynamic> Upload([FromForm] UploadNoteModel note) { if (!this.IsTokenValid(_tokenService.GetTemporaryToken(this.GetCurrentUserId()))) { throw new UnauthorizedAccessException(); } if (!ModelState.IsValid) { return(this.ResultAsync(HttpStatusCode.BadRequest)); } var command = _mapper.Map <AddNoteCommand>(note); string fileAddress = null; if (note.File != null) { fileAddress = await _mediator.Send(new UploadFileCommand { File = note.File, UploadType = UploadType.Notes }); } command.UserId = this.GetCurrentUserId(); command.AttachementPath = Request.GetDisplayUrl() + "?filename=" + fileAddress; command.BeneficiaryId = note.BeneficiaryId; var result = await _mediator.Send(command); if (result < 0) { return(this.ResultAsync(HttpStatusCode.NotFound)); } return(await Task.FromResult(new { FileAddress = command.AttachementPath })); }
public async Task <dynamic> Upload([FromForm] UploadNoteModel note) { if (!ModelState.IsValid) { return(this.ResultAsync(HttpStatusCode.BadRequest)); } // TODO[DH] use a pipeline instead of separate Send commands // daca nota este asociata sectiei var idSectie = await _mediator.Send(_mapper.Map <PollingStationQuery>(note)); if (idSectie < 0) { return(this.ResultAsync(HttpStatusCode.NotFound)); } var command = _mapper.Map <AddNoteCommand>(note); command.IdObserver = int.Parse(User.Claims.First(c => c.Type == ClaimsHelper.ObserverIdProperty).Value); command.IdPollingStation = idSectie; if (note.File != null) { var fileAddress = await _mediator.Send(new UploadFileCommand { File = note.File, UploadType = UploadType.Notes }); command.AttachementPath = fileAddress; } var result = await _mediator.Send(command); if (result < 0) { return(this.ResultAsync(HttpStatusCode.NotFound)); } return(await Task.FromResult(new { FileAddress = command.AttachementPath, note })); }