Esempio n. 1
0
        public IActionResult GetUnclosedWorkingTime(int userId, int taskId)
        {
            if (_repo.GetUser(userId) == null)
            {
                return(NotFound());
            }
            if (_repo.GetTask(taskId) == null)
            {
                return(NotFound());
            }

            var userWorkTimes = _repo.GetWorkTimesForUser(userId);

            if (userWorkTimes == null || !userWorkTimes.Any())
            {
                return(NotFound());
            }

            var unfinishedWorkTime = userWorkTimes.FirstOrDefault(o => !EntitiesUtils.IsDateEmpty(o.WorkStartTime) && EntitiesUtils.IsDateEmpty(o.WorkEndTime));

            if (unfinishedWorkTime == null)
            {
                return(NotFound());
            }

            return(Ok(ModelsMapping.GetWorkTimeDto(unfinishedWorkTime)));
        }
Esempio n. 2
0
        public void Execute(IEntityGraphBuilder builder, EntityRegexMatchInfo info)
        {
            List <IEntity>[] match = info.GetMatch();

            builder.Add(new ConditionalRuleRelationship(
                            EntitiesUtils.PrepareToHandle(match[Arguments[0]][0]) as IClassEntity,
                            EntitiesUtils.PrepareToHandle(match[Arguments[1]][0]) as IPropertyEntity,
                            EntitiesUtils.PrepareToHandle(match[Arguments[2]][0]) as IPropertyEntity));
        }
Esempio n. 3
0
        public TEntity Insert <TEntity>(string collectionName, TEntity obj) where TEntity : class, IArgonEntity
        {
            if (obj.Id == null)
            {
                obj.Id = EntitiesUtils.GenerateId();
            }

            _mongoDatabase.GetCollection <TEntity>(collectionName).InsertOne(obj);
            return(obj);
        }
Esempio n. 4
0
        public void Execute(IEntityGraphBuilder builder, EntityRegexMatchInfo info)
        {
            List <IEntity>[] match          = info.GetMatch();
            PropertyEntity   propertyEntity = new PropertyEntity(EntitiesUtils.PrepareToHandle(match[Arguments[0]][0]).Value);

            propertyEntity.Range = new CustomRange(ArgumentsDescription[2]);
            builder.Add(propertyEntity);

            ClassEntity classEntity = match[Arguments[1]][0] as ClassEntity;

            PropertyRelationship propertyRelation = new PropertyRelationship(propertyEntity, classEntity);

            builder.Add(propertyRelation);
        }
Esempio n. 5
0
        public Task PersistEntity <T>(T entity) where T : class, INeonIoTEntity
        {
            T obj = default(T);

            entity.EventDateTime = DateTime.Now;
            entity.EntityType    = entity.GetType().FullName;

            if (string.IsNullOrEmpty(entity.Id))
            {
                entity.Id = EntitiesUtils.GenerateId();
            }

            if (string.IsNullOrEmpty(entity.Name))
            {
                obj = _entitiesConnector.Query <T>(EntitiesCollectionName).FirstOrDefault(e => e.EntityType == typeof(T).FullName && e.GroupName == entity.GroupName);
            }
            else
            {
                obj = _entitiesConnector.Query <T>(EntitiesCollectionName).FirstOrDefault(e => e.Name == entity.Name && e.GroupName == entity.GroupName);
            }

            if (obj == null)
            {
                _logger.LogDebug($"Inserting new entity type {entity.GetType().Namespace} - {entity.Name} {entity.GroupName}");
                entity = _entitiesConnector.Insert(EntitiesCollectionName, entity);
            }
            else
            {
                entity.Id = obj.Id;
                _entitiesConnector.Update(EntitiesCollectionName, entity);
            }

            if (!EntityHaveChanges(obj, entity))
            {
                return(Task.CompletedTask);
            }

            PersistEvent(entity);
            Publish(entity);

            return(Task.CompletedTask);
        }
Esempio n. 6
0
        private static void RestoreWorld(string saveDataSerializedWorld)
        {
            var worldSerializer = new WorldSerializer();

            var loadedWorld = worldSerializer.DeserializeWorld(saveDataSerializedWorld);

            var manager = World.DefaultGameObjectInjectionWorld.EntityManager;

            var query = manager.CreateEntityQuery(new EntityQueryDesc
            {
                None = new[]
                {
                    EntitiesUtils.GetWorldTimeType()
                }
            });

            manager.DestroyEntity(query);
            manager.MoveEntitiesFrom(loadedWorld.EntityManager);

            loadedWorld.Dispose();
        }
Esempio n. 7
0
        public IActionResult GetIUnclosedTaskForUser(int userId)
        {
            if (_repo.GetUser(userId) == null)
            {
                return(NotFound());
            }

            var userTasks = _repo.GetTasksForUser(userId).Select(o => ModelsMapping.GetTaskDto(o));

            if (userTasks == null || !userTasks.Any())
            {
                return(NotFound());
            }

            var userWorkTimes = _repo.GetWorkTimesForUser(userId);

            if (userWorkTimes == null || !userWorkTimes.Any())
            {
                return(NotFound());
            }

            var unfinishedWorkTime = userWorkTimes.FirstOrDefault(o => !EntitiesUtils.IsDateEmpty(o.WorkStartTime) && EntitiesUtils.IsDateEmpty(o.WorkEndTime));

            if (unfinishedWorkTime == null)
            {
                return(NotFound());
            }
            var unfinishedTask = userTasks.FirstOrDefault(o => o.Id == unfinishedWorkTime.TaskId);

            if (unfinishedTask == null)
            {
                return(NotFound());
            }

            return(Ok(unfinishedTask));
        }
Esempio n. 8
0
        private void PersistEvent <T>(T entity) where T : class, INeonIoTEntity
        {
            entity.Id = EntitiesUtils.GenerateId();

            _eventsConnector.Insert(GetCollectionName(entity.GetType()), entity);
        }
Esempio n. 9
0
 private int GetWorkHoursForUser(int userId, int year, int month)
 {
     return((int)repo.GetWorkTimesForUser(userId)
            .Where(o => o.WorkStartTime.Year == year && o.WorkStartTime.Month == month && !EntitiesUtils.IsDateEmpty(o.WorkStartTime) && !EntitiesUtils.IsDateEmpty(o.WorkStartTime))
            .Select(o => o.WorkEndTime.Subtract(o.WorkStartTime).TotalSeconds / 3600)
            .Sum());
 }
Esempio n. 10
0
 public TelegramNotifierEntity()
 {
     Id        = EntitiesUtils.GenerateId();
     IsEnabled = true;
 }
 public List <string> FilterEntitiesGetId(FilterEntitiesModel model)
 => EntitiesUtils <TTable, TBusinessComponent, TDataBUSFactory, TContext> .FilterEntities(context, model, orderedEntities).Select(I => I.Id.ToString()).ToList();
 public List <TTable> FilterEntities(FilterEntitiesModel model)
 => EntitiesUtils <TTable, TBusinessComponent, TDataBUSFactory, TContext> .FilterEntities(context, model, orderedEntities);
Esempio n. 13
0
        private void DestroyWorldTimeSingleton(World world)
        {
            var worldTimeType = EntitiesUtils.GetWorldTimeType();

            world.EntityManager.DestroyEntity(world.EntityManager.CreateEntityQuery(worldTimeType));
        }
Esempio n. 14
0
        private async Task ConnectToServer()
        {
            var clientOptions = new MqttClientOptionsBuilder().WithClientId($"Neon-Server-{EntitiesUtils.GenerateId()}");

            if (_config.UseEmbeddedServer)
            {
                clientOptions = clientOptions.WithTcpServer("127.0.0.1", _config.EmbeddedServerPort);
            }
            else
            {
                clientOptions = clientOptions.WithTcpServer(_config.Client.Hostname, _config.Client.Port);
            }

            _mqttClient = new MqttFactory().CreateMqttClient();
            var options = clientOptions.Build();

            _logger.LogInformation($"Connecting to server ");

            _mqttClient.UseDisconnectedHandler(async args =>
            {
                _logger.LogInformation($"Disconnected from server, will retry in 5 seconds");
                await Task.Delay(5000);

                if (_clientConnectionRetryNum <= 3)
                {
                    if (_mqttClient != null)
                    {
                        await _mqttClient.ConnectAsync(options);
                        _logger.LogInformation($"Reconnected to server...");
                        _clientConnectionRetryNum++;
                    }
                }
            });

            _mqttClient.UseApplicationMessageReceivedHandler(args =>
            {
                if (args.ApplicationMessage.Payload == null)
                {
                    args.ApplicationMessage.Payload = Encoding.UTF8.GetBytes("");
                }
                OnMessageReceived(args.ApplicationMessage.Topic, Encoding.UTF8.GetString(args.ApplicationMessage.Payload));
            });

            await _mqttClient.ConnectAsync(options);

            await SubscribeTopic("/neon");

            _logger.LogInformation($"MQTT Client Connected");
        }