Ejemplo n.º 1
0
        public async Task <bool> UpdateEntityByIdAsync(InstanceRequest request, int id)
        {
            var entity = _mapper.Map <InstanceRequest, Instance>(request);

            entity.Id = id;

            // In returns updated entity, you could do smth with it or just leave as it is
            var updated = await _uow.InstanceRepository.UpdateAsync(entity);

            var result = await _uow.SaveAsync();

            InstanceSettingsMessage message = new InstanceSettingsMessage()
            {
                InstanceId          = updated.GuidId,
                IsActive            = updated.IsActive,
                AggregationForHour  = updated.AggregationForHour,
                AggregationForDay   = updated.AggregationForDay,
                AggregationForWeek  = updated.AggregationForWeek,
                AggregationForMonth = updated.AggregationForMonth,
                CpuMaxPercent       = updated.CpuMaxPercent,
                RamMaxPercent       = updated.CpuMaxPercent,
                DiskMaxPercent      = updated.DiskMaxPercent
            };
            await _serviceBus.SendInstanceSettingsAsync(message);

            return(result);
        }
Ejemplo n.º 2
0
        public async Task <InstanceDto> CreateEntityAsync(InstanceRequest request)
        {
            var entity = _mapper.Map <InstanceRequest, Instance>(request);

            entity.GuidId = Guid.NewGuid();

            entity = await _uow.InstanceRepository.CreateAsync(entity);

            var result = await _uow.SaveAsync();

            if (!result)
            {
                return(null);
            }

            if (entity == null)
            {
                return(null);
            }

            InstanceSettingsMessage message = new InstanceSettingsMessage()
            {
                InstanceId          = entity.GuidId,
                IsActive            = entity.IsActive,
                AggregationForHour  = entity.AggregationForHour,
                AggregationForDay   = entity.AggregationForDay,
                AggregationForWeek  = entity.AggregationForWeek,
                AggregationForMonth = entity.AggregationForMonth,
                CpuMaxPercent       = entity.CpuMaxPercent,
                RamMaxPercent       = entity.CpuMaxPercent,
                DiskMaxPercent      = entity.DiskMaxPercent
            };
            await _serviceBus.SendInstanceSettingsAsync(message);

            var dto = _mapper.Map <Instance, InstanceDto>(entity);

            return(dto);
        }
Ejemplo n.º 3
0
        private async Task <MessageProcessResponse> onSettingsProcessAsync(InstanceSettingsMessage arg, CancellationToken stoppingToken)
        {
            if (stoppingToken.IsCancellationRequested)
            {
                return(MessageProcessResponse.Abandon);
            }

            InstanceSettingsDto dto = new InstanceSettingsDto()
            {
                ClientId = arg.InstanceId,
                IsActive = arg.IsActive,

                AggregationForHour  = arg.AggregationForHour,
                AggregationForDay   = arg.AggregationForDay,
                AggregationForWeek  = arg.AggregationForWeek,
                AggregationForMonth = arg.AggregationForMonth,

                CpuUsagePercentageMax       = arg.CpuMaxPercent,
                RamUsagePercentageMax       = arg.RamMaxPercent,
                LocalDiskUsagePercentageMax = arg.DiskMaxPercent,

                //validators are enabled by default
                //maybe in future we may add ability to change it
                CpuValidator        = true,
                RamValidator        = true,
                LocalDiskVallidator = true,
            };

            var x = await _instanceSettingsService.AddEntityAsync(dto);

            if (x == null)
            {
                return(MessageProcessResponse.Abandon);
            }
            return(MessageProcessResponse.Complete);
        }
Ejemplo n.º 4
0
 public Task SendInstanceSettingsAsync(InstanceSettingsMessage message)
 {
     return(_azureQueueSender.SendAsync(_instanceSettingsQueueClient, message));
 }