protected async Task FillManager(SapPersonExcelRow contract, ExternalAccount externalAccount) { if (string.IsNullOrEmpty(contract.ManagerId)) { _searchVm.Subordinate = contract; if (!string.IsNullOrEmpty(contract.AmRestManagerName)) { _searchVm.ManagerName = contract.AmRestManagerName; } var view = new SearchPeople() { DataContext = _searchVm }; var result = (bool)await DialogHost.Show(view, "ControlDialog"); if (!result) { throw new ArgumentNullException(nameof(contract.ManagerId), string.Format(Resources.PeopleUploadManagerNotSetMessage, contract.Name, contract.Surname)); } externalAccount.ManagerId = _searchVm.SelectedUser.User.Id; } else { var manager = await _client.FindUserByIdentityNumber(contract.ManagerId); externalAccount.ManagerId = manager == null ? throw new ArgumentException(string.Format(Resources.PeopleUploadManagerNotFoundMessage, contract.Name, contract.Surname)) : manager.Id; } }
public void SapPersonExcelRow_Shoul_Be_Converted_To_ExternalAccount() { var input = new SapPersonExcelRow(); var result = _mapper.Map <ExternalAccount>(input); Assert.IsInstanceOf <ExternalAccount>(result); }
protected async Task <ExternalAccount> FillAccount(SapPersonExcelRow contract) { var externalAccount = _mapper.Map <ExternalAccount>(contract); await FillPosition(contract, externalAccount); await FillManager(contract, externalAccount); return(externalAccount); }
protected async Task FillPosition(SapPersonExcelRow contract, ExternalAccount externalAccount) { var positions = await _client.GetPositionsAsync(); var existingPosition = positions .FirstOrDefault(_ => string.Equals(_.Name, contract.Position, StringComparison.OrdinalIgnoreCase)); if (existingPosition == null) { externalAccount.PositionName = contract.Position; } else { externalAccount.PositionName = existingPosition.Name; externalAccount.PositionId = existingPosition.Id; } }