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)
            });
        }
    }
Exemplo n.º 3
0
        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);
            }
        }