Exemple #1
0
        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);
            }
        }
Exemple #2
0
        internal async Task DeleteEmployeeAsync(GrpcChannel channel, int employeeId)
        {
            var client = new Users.UsersClient(channel);
            var input  = new PersonIdInput
            {
                PersonId = employeeId
            };

            await client.DeleteEmployeeAsync(input);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        public override async Task <Empty> DeleteEmployee(PersonIdInput request, ServerCallContext context)
        {
            await _userDataAccess.DeleteEmployeeDataAccessAsync(request.PersonId);

            return(new Empty());
        }