public async Task <RemoveInstalledStringResponse> Handle(RemoveInstalledStringRequest request, CancellationToken cancellationToken) { var query = new GetInstalledStringByPositionAndMyInstrumentQuery() { MyInstrumentID = request.MyInstrumentID, StringPosition = request.StringPosition }; var installedString = await this.queryExecutor.Execute(query); if (installedString == null) { return new RemoveInstalledStringResponse() { Error = new Domain.ErrorModel(ErrorType.NotFound) } } ; var command = new RemoveInstalledStringCommand() { Parameter = installedString }; var removedInstalledString = await this.commandExecutor.Execute(command); return(new RemoveInstalledStringResponse() { Data = mapper.Map <Domain.Models.InstalledString>(removedInstalledString) }); } }
public async Task <UpdateInstalledStringResponse> Handle(UpdateInstalledStringRequest request, CancellationToken cancellationToken) { var query = new GetInstalledStringByPositionAndMyInstrumentQuery() { MyInstrumentID = request.routeMyInstrumentID, StringPosition = request.routeStringPosition }; var gotInstalledString = await this.queryExecutor.Execute(query); if (!await CheckInstalledString.CheckIfCorrect(request, queryExecutor) && gotInstalledString != null) { return new UpdateInstalledStringResponse() { Error = new Domain.ErrorModel(ErrorType.Conflict) } } ; var command = new UpdateInstalledStringCommand() { Parameter = mapper.Map(request, gotInstalledString) }; var installedString = await this.commandExecutor.Execute(command); return(new UpdateInstalledStringResponse() { Data = mapper.Map <Domain.Models.InstalledString>(installedString) }); } }
public async Task <GetInstalledStringByPositionAndMyInstrumentResponse> Handle(GetInstalledStringByPositionAndMyInstrumentRequest request, CancellationToken cancellationToken) { var query = new GetInstalledStringByPositionAndMyInstrumentQuery() { MyInstrumentID = request.MyInstrumentID, StringPosition = request.StringPosition }; var installedString = await this.queryExecutor.Execute(query); if (installedString == null) { return new GetInstalledStringByPositionAndMyInstrumentResponse() { Error = new Domain.ErrorModel(ErrorType.NotFound) } } ; var mappedInstalledString = this.mapper.Map <Domain.Models.InstalledString>(installedString); var response = new GetInstalledStringByPositionAndMyInstrumentResponse() { Data = mappedInstalledString }; return(response); } }
public static async Task <bool> CheckIfCorrect <T>(T request, IQueryExecutor queryExecutor) where T : IAddAndUpdateInstalledStringProperties { var queryNewInstalledString = new GetInstalledStringByPositionAndMyInstrumentQuery() { MyInstrumentID = request.MyInstrumentID, StringPosition = request.StringPosition }; var gotNewInstalledString = await queryExecutor.Execute(queryNewInstalledString); var querySound = new GetSoundByIdQuery() { Id = request.SoundID }; var gotSound = await queryExecutor.Execute(querySound); var queryMyInstrument = new GetMyInstrumentByIdQuery() { Id = request.MyInstrumentID }; var gotMyInstrument = await queryExecutor.Execute(queryMyInstrument); var queryString = new GetStringByIdQuery() { Id = request.StringID }; var gotString = await queryExecutor.Execute(queryString); if (gotNewInstalledString == null && gotSound != null && gotMyInstrument != null && gotString != null) { return(true); } else { return(false); } }