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))); }
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)); }
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); }
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); }
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); }
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(); }
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)); }
private void PersistEvent <T>(T entity) where T : class, INeonIoTEntity { entity.Id = EntitiesUtils.GenerateId(); _eventsConnector.Insert(GetCollectionName(entity.GetType()), entity); }
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()); }
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);
private void DestroyWorldTimeSingleton(World world) { var worldTimeType = EntitiesUtils.GetWorldTimeType(); world.EntityManager.DestroyEntity(world.EntityManager.CreateEntityQuery(worldTimeType)); }
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"); }