Exemplo n.º 1
0
        public async Task <WorkerModel> Handle(GetWorkerMyInfo request, CancellationToken cancellationToken)
        {
            var user = await userStore.FindByIdAsync(request.GetUser(), cancellationToken);

            if (user == null)
            {
                throw new UserDoesNotExistException();
            }

            var workerDb = await _workerRepository.GetWorkerByUserNameAsync(user.Email);

            if (workerDb == null)
            {
                return(new WorkerModel());
            }

            var workderDbteamList = await _workersByTeamRepository.GetWorkerTeamInfo(workerDb.WorkerId);

            var response = new WorkerModel()
            {
                WorkerId             = workerDb.WorkerId,
                FirstName            = workerDb.FirstName,
                LastName             = workerDb.LastName,
                Email                = workerDb.Email,
                Birthday             = workerDb.Birthday,
                PhotoUrl             = workerDb.PhotoUrl,
                Status               = workerDb.Status.Name,
                StatusId             = workerDb.Status.StatusId,
                Role                 = workerDb.Role.Name,
                RoleId               = workerDb.Role.RoleId,
                LastModificationTime = workerDb.LastModificationTime,
                IsBirthdayToday      = VerifyBirthday(DateTime.Now, workerDb.Birthday),
                Teams                = workderDbteamList != null
                    ? workderDbteamList.Select(x => new TeamModel(x.Team.TeamId, x.Team.Name)).ToList()
                    : new List <TeamModel>()
            };

            return(response);
        }