private ConfigSingleton() { MongoDBConnector conn = MongoDBConnector.GetInstance(); TestCases = new List <TestCase>(); var db = conn.GetDatabase(); var colorSpace = JsonUtility.FromJson <ConfigContent>(File.ReadAllText("./server_config.json")).ColorSpace; var collection = db.GetCollection <BsonDocument>("testCases"); foreach (var item in collection.Find(new BsonDocument()).Project(Builders <BsonDocument> .Projection.Exclude("_id")).ToList()) { var jsonString = item.ToJson(); TestCases.Add(JsonUtility.FromJson <TestCase>(jsonString)); } collection = db.GetCollection <BsonDocument>("ColorSpaces"); var colorSpaceRaw = collection.Find(new BsonDocument { { "Name", colorSpace } }).Project(Builders <BsonDocument> .Projection.Exclude("_id").Exclude("Name")).First(); ColorSpaceContainer = JsonConvert.DeserializeObject <ColorSpaceContainer>(colorSpaceRaw.ToJson()); // Parsing ColorSpaceContainer to list of color ranges: ColorRanges = new List <ColorRange>(); int maax = ColorSpaceContainer.Labels.Count; for (int i = 0; i < maax; i++) { ColorRanges.Add(new ColorRange(ColorSpaceContainer.Labels[i], ColorSpaceContainer.Payload[i])); } }
public void GotTargetInfos(NetworkMessage message) { TargetInfosMessage msg = message.ReadMessage <TargetInfosMessage>(); List <List <TargetInfo> > targetInfos = msg.Content.TargetInfos; string user = msg.Content.User; var db = MongoDBConnector.GetInstance().GetDatabase(); var collection = db.GetCollection <BsonDocument>("TargetInfos"); var userCollection = db.GetCollection <BsonDocument>("Users"); BsonArray arr = new BsonArray(); foreach (var list in targetInfos) { BsonArray innerArr = new BsonArray(); foreach (var targetInfo in list) { innerArr.Add(new BsonDocument(targetInfo.ToBsonDocument())); } arr.Add(innerArr); } BsonDocument document = new BsonDocument { { "UserName", user }, { "TargetInfos", arr } }; collection.InsertOne(document); }
public void DataBroker(NetworkMessage message) { RequestMessage msg = message.ReadMessage <RequestMessage>(); switch (msg.Type) { case RequestType.UserList: List <User> userList = new List <User>(); var db = MongoDBConnector.GetInstance().GetDatabase(); var collection = db.GetCollection <BsonDocument>("Users"); foreach (var item in collection.Find(new BsonDocument { { "TestGroup", _config.TestGroup } }).Project(Builders <BsonDocument> .Projection.Exclude("_id").Include("Name")).ToList()) { var jsonString = item.ToJson(); userList.Add(JsonUtility.FromJson <User>(jsonString)); } NetworkServer.SendToClient(message.conn.connectionId, MyMsgType.UserList, new UserListMessage(userList)); break; case RequestType.ColorRanges: NetworkServer.SendToClient(message.conn.connectionId, MyMsgType.ColorRanges, new ColorRangesMessage(_config.ColorRanges)); break; } }
public SensorDataController() { _mqtt = new Mqtt(); _repository = new WeatherRepository(MongoDBConnector.GetInstance()); HttpClient httpClient = new HttpClient(); httpClient.PostAsync("http://sensoranalyticsservice/api/SensorAnalytics/CreateAnalyticsService", null); }
public void CheckDevice(NetworkMessage message) { DeviceDataMessage msg = message.ReadMessage <DeviceDataMessage>(); DeviceIdentification deviceIdentification = msg.DeviceIdentification; var db = MongoDBConnector.GetInstance().GetDatabase(); var collection = db.GetCollection <BsonDocument>("Devices"); var results = collection.Find(new BsonDocument { { "DevId", deviceIdentification.DevId } }).ToList(); int addr = -1; if (results.Count > 0) { foreach (var result in results) { if (result["ScreenWidth"].AsInt32 == deviceIdentification.ScreenWidth && result["ScreenHeight"].AsInt32 == deviceIdentification.ScreenHeight && result["DeviceClass"].AsInt32 == (int)deviceIdentification.DeviceClass) { addr = result["id"].AsInt32; } } } if (addr == -1) { var value = collection.Find(new BsonDocument()).Sort(new BsonDocument { { "id", -1 } }).Limit(1).Project(Builders <BsonDocument> .Projection.Exclude("_id").Include("id")); int maxid; if (value.Count() > 0) { maxid = JsonUtility.FromJson <int>(value.ToJson()); } else { maxid = 0; } var document = new BsonDocument { { "id", maxid + 1 }, { "DevId", deviceIdentification.DevId }, { "ScreenWidth", deviceIdentification.ScreenWidth }, { "ScreenHeight", deviceIdentification.ScreenHeight }, { "DeviceClass", deviceIdentification.DeviceClass } }; collection.InsertOne(document); addr = maxid; } NetworkServer.SendToClient(message.conn.connectionId, MyMsgType.DeviceId, new IntegerMessage(addr)); }
public void AddUser(NetworkMessage message) { StoredUserMessage msg = message.ReadMessage <StoredUserMessage>(); StoredUser user = msg.User; user.TestGroup = _config.TestGroup; //Generate random code: string code; var resultDb = MongoDBConnector.GetInstance().GetResultsDatabase(); var registeredUsersCollection = resultDb.GetCollection <BsonDocument>("Users"); int count; do { code = GenRandomCode(); count = registeredUsersCollection.Find(new BsonDocument { { "_id", code } }).Limit(1).ToList().Count; } while (count != 0); user.Code = code; var db = MongoDBConnector.GetInstance().GetDatabase(); var collection = db.GetCollection <BsonDocument>("Users"); var document = new BsonDocument { { "Name", user.Name }, { "TestGroup", user.TestGroup }, { "Code", user.Code }, { "Questionarie", new BsonDocument { { "AgeGroup", user.Results.AgeGroup }, { "TouchFrequency", user.Results.TouchFrequency }, { "None", user.Results.None }, { "Smaller5", user.Results.Smaller5 }, { "Smaller11", user.Results.Smaller11 }, { "Greater11", user.Results.Greater11 }, { "Activities", user.Results.Activities }, { "ColorPerception", user.Results.ColorPerception } } } }; collection.InsertOne(document); var devices = (user.Results.None.ToInt() << 3) + (user.Results.Smaller5.ToInt() << 2) + (user.Results.Smaller11.ToInt() << 1) + user.Results.Greater11.ToInt(); document = new BsonDocument { { "_id", code }, { "AgeGroup", user.Results.AgeGroup }, { "ColorPerception", user.Results.ColorPerception }, { "TouchFrequency", user.Results.TouchFrequency }, { "Activities", user.Results.Activities }, { "Devices", devices } }; registeredUsersCollection.InsertOne(document); var filter = Builders <BsonDocument> .Filter.Eq("_id", "UserCount"); var update = Builders <BsonDocument> .Update.Inc("Count", 1); resultDb.GetCollection <BsonDocument>("counters").FindOneAndUpdate(filter, update); }