public async Task <DeleteManagerByIdResponse> Handle(DeleteManagerByIdRequest request, CancellationToken cancellationToken) { if (request.AuthenticatorRole == AppRole.Employee) { return(new DeleteManagerByIdResponse() { Error = new ErrorModel(ErrorType.Unauthorized) }); } var query = new GetManagerQuery() { Id = request.ManagerId }; var manager = await queryExecutor.Execute(query); if (manager == null) { return(new DeleteManagerByIdResponse { Error = new ErrorModel(ErrorType.NotFound) }); } var command = new DeleteManagerCommand() { Parameter = manager }; var deletedManager = await commandExecutor.Execute(command); return(new DeleteManagerByIdResponse { Data = deletedManager }); }
public async Task <GetUserResponse> Handle(GetUserRequest request, CancellationToken cancellationToken) { dynamic query; object mapTypeObject; if (request.Me == "Me" || request.Me == "me") { if (request.AuthenticatorRole == AppRole.Employee) { query = new GetEmployeeQuery() { Id = request.AuthenticatorId, CompanyId = request.AuthenticatorCompanyId }; mapTypeObject = new EmployeeDto(); } else if (request.AuthenticatorRole == AppRole.Manager) { query = new GetManagerQuery() { Id = request.AuthenticatorId, CompanyId = request.AuthenticatorCompanyId }; mapTypeObject = new ManagerDto(); } else { return(new GetUserResponse() { Error = new ErrorModel(ErrorType.Unauthorized) }); } } else { return(new GetUserResponse() { Error = new ErrorModel(ErrorType.UnsupportedMethod) }); } var resorce = await queryExecutor.Execute(query); if (resorce == null) { return(new GetUserResponse() { Error = new ErrorModel(ErrorType.NotFound) }); } var mappedResorce = mapper.Map(resorce, mapTypeObject); return(new GetUserResponse() { Data = mappedResorce }); }
public async Task <PutManagerByIdResponse> Handle(PutManagerByIdRequest request, CancellationToken cancellationToken) { if (request.AuthenticatorRole == AppRole.Employee) { return(new PutManagerByIdResponse() { Error = new ErrorModel(ErrorType.Unauthorized) }); } var query = new GetManagerQuery() { Id = request.Id, CompanyId = request.AuthenticatorCompanyId }; var manager = await queryExecutor.Execute(query); if (request.Login == null || request.Password != null) { request.Login = manager.Login; var auth = passwordHasher.Hash(request.Password); request.Password = auth[0]; request.Salt = auth[1]; } if (request.Login == null || request.Password == null) { request.Login = manager.Login; request.Password = manager.Password; request.Salt = manager.Salt; } if (manager == null) { return(new PutManagerByIdResponse { Error = new ErrorModel(ErrorType.NotFound) }); } var updateManager = mapper.Map <Manager>(request); var command = new PutManagerCommand { Parameter = updateManager }; var updatedManager = await commandExecutor.Execute(command); var response = mapper.Map <ManagerDto>(updatedManager); return(new PutManagerByIdResponse { Data = response }); }
public async Task <PutCompanyByIdResponse> Handle(PutCompanyByIdRequest request, CancellationToken cancellationToken) { if (request.AuthenticatorRole == AppRole.Employee) { return(new PutCompanyByIdResponse() { Error = new ErrorModel(ErrorType.Unauthorized) }); } var query = new GetCompanyQuery() { Id = request.Id, CompanyId = request.AuthenticatorCompanyId }; var query2 = new GetManagerQuery() { Id = request.ManagerId, CompanyId = request.AuthenticatorCompanyId }; var company = await queryExecutor.Execute(query); var manager = await queryExecutor.Execute(query2); if (company == null || manager == null) { return(new PutCompanyByIdResponse() { Error = new ErrorModel(ErrorType.NotFound) }); } var updateCompany = mapper.Map <Company>(request); var command = new PutCompanyCommand { Parameter = updateCompany }; var updatedCompany = await commandExecutor.Execute(command); var response = mapper.Map <CompanyDto>(updatedCompany); return(new PutCompanyByIdResponse { Data = response }); }
public async Task <AddCompanyResponse> Handle(AddCompanyRequest request, CancellationToken cancellationToken) { if (request.AuthenticatorRole == AppRole.Employee) { return(new AddCompanyResponse() { Error = new ErrorModel(ErrorType.Unauthorized) }); } var query = new GetManagerQuery() { Id = request.ManagerId }; var manager = await queryExecutor.Execute(query); if (manager == null) { return(new AddCompanyResponse() { Error = new ErrorModel(ErrorType.NotFound) }); } var company = mapper.Map <Company>(request); company.Manager = manager; var command = new AddCompanyCommand() { Parameter = company }; var companyFromDb = await commandExecutor.Execute(command); return(new AddCompanyResponse() { Data = mapper.Map <CompanyDto>(companyFromDb) }); }
public async Task <GetManagerByIdResponse> Handle(GetManagerByIdRequest request, CancellationToken cancellationToken) { var query = new GetManagerQuery() { Id = request.ManagerId, CompanyId = request.AuthenticatorCompanyId }; var manager = await queryExecutor.Execute(query); if (manager == null) { return(new GetManagerByIdResponse { Error = new ErrorModel(ErrorType.NotFound) }); } var mappedManager = mapper.Map <ManagerDto>(manager); return(new GetManagerByIdResponse { Data = mappedManager }); }