public override async Task GetEmployees(PersonIdInput request, IServerStreamWriter <UserData> responseStream, ServerCallContext context) { var result = await _userDataAccess.GetEmployeesDataAccessAsync(request.PersonId); if (result is null) { await responseStream.WriteAsync(new UserData()); return; } foreach (var person in result) { var user = new UserData { Id = person.Id, FirstName = person.FirstName, LastName = person.LastName, Email = person.Email, Permission = person.Permission, DirectManager = person.DirectManager, }; await responseStream.WriteAsync(user); } }
internal async Task DeleteEmployeeAsync(GrpcChannel channel, int employeeId) { var client = new Users.UsersClient(channel); var input = new PersonIdInput { PersonId = employeeId }; await client.DeleteEmployeeAsync(input); }
internal async Task <ObservableCollection <IPerson> > GetEmployeesAsync(GrpcChannel channel, int managerId) { var client = new Users.UsersClient(channel); var input = new PersonIdInput { PersonId = managerId }; using var result = client.GetEmployees(input); var employees = new ObservableCollection <IPerson>(); while (await result.ResponseStream.MoveNext()) { if (result.ResponseStream.Current.Id == 0) { return(null); } var permission = ConvertStringToPermissionsEnum(result.ResponseStream.Current.Permission); switch (permission) { case PermissionsEnum.Manager: employees.Add(new Manager(permission, result.ResponseStream.Current.Id, result.ResponseStream.Current.DirectManager, result.ResponseStream.Current.FirstName, result.ResponseStream.Current.LastName, result.ResponseStream.Current.Email)); break; case PermissionsEnum.Employee: employees.Add(new Employee(permission, result.ResponseStream.Current.Id, result.ResponseStream.Current.DirectManager, result.ResponseStream.Current.FirstName, result.ResponseStream.Current.LastName, result.ResponseStream.Current.Email)); break; } } return(employees); }
public override async Task <Empty> DeleteEmployee(PersonIdInput request, ServerCallContext context) { await _userDataAccess.DeleteEmployeeDataAccessAsync(request.PersonId); return(new Empty()); }