public async Task <Response> GetAsync(string id)
        {
            var organisation = await _organisationRepository.GetAsync(Guid.Parse(id));

            if (organisation == default)
            {
                return(new Response(false, HttpStatusCode.NotFound, Messages.Org_NotExists));
            }

            var orgCounter = await _organisationCounterRepository.GetLastByOrganisation(organisation);

            var totalScans = _organisationCounterRepository.Count();

            return(new Response(new OrganisationDTO(organisation, orgCounter, totalScans), HttpStatusCode.OK));
        }
        public async Task <Response> GetAsync(string id)
        {
            var organisation = await _organisationRepository.GetAsync(Guid.Parse(id));

            if (organisation == default)
            {
                return(new Response(false, HttpStatusCode.NotFound, Messages.Org_NotExists));
            }

            var accessLogs = await _organisationAccessLogRepository.GetByCurrentDayByOrganisation(organisation);

            var orgCounter = accessLogs
                             .Where(oal => oal.Organisation == organisation)
                             .Where(oal => oal.CreatedAt.Value.Date == DateTime.UtcNow.Date)
                             .OrderByDescending(t => t.CreatedAt)
                             .FirstOrDefault();

            var totalScans = accessLogs.Count(oal => oal.Organisation == organisation && oal.CreatedAt.Value.Date == DateTime.UtcNow.Date);

            return(new Response(new OrganisationDTO(organisation, orgCounter, totalScans, GetAccessLogBalance(accessLogs)), HttpStatusCode.OK));
        }
示例#3
0
 public async Task<Credentials> CreateAsync(UserDto userDto)
 {
     var user = _mapper.Map<User>(userDto);
     user.Id = Guid.NewGuid();
     user.Role = userDto.Role;
     user.Status = UserStatus.Active;
     var generatedPassword = PasswordManager.GeneratePassword(PasswordManager.CharSet.All, 8);
     _passwordManager.SetHashedPassword(user, generatedPassword);
     user.OrganisationName = (await _organisationRepository.GetAsync(userDto.OrganisationId)).Name;
     await _repository.CreateAsync(user);
     try
     {
         _bus.Publish(new UserRegisteredMessage() {Email = userDto.Email, Password = generatedPassword});
     }
     catch(Exception ex)
     {
         throw new Exception(ex.Message);
     }
     return new Credentials()
     {
         Email = userDto.Email,
         Password = generatedPassword
     };
 }
 public async Task <OrganizationDto> GetAsync(Guid id)
 {
     return(_mapper.Map <OrganizationDto>(await _repository.GetAsync(id)));
 }