public Results OperateCar(ref Car item, DaoOperations operation) { return(loadedDriver.OperateCar(ref item, operation)); }
public Results OperateCar(ref Car item, DaoOperations operation) { //Resolve a conexão com o banco de dados if (this.connect()) { //pega a coleção do mongoDB var carsCollection = db.GetCollection <BsonDocument>("cars"); //verifica se está pesquisando if (operation == DaoOperations.Search) { List <Car> result = new List <Car>(); //prepara os campos da pesquisa JSON jm = new JSON(); if (item.veichle != "") { jm.setString("$or[" + jm.getChildsNames("$or").Count + "].veichle", "__regexs__" + item.veichle + "__regexe__"); } if (item.vendor != "") { jm.setString("$or[" + jm.getChildsNames("$or").Count + "].vendor", "__regexs__" + item.vendor + "__regexe__"); } if (item.description != "") { jm.setString("$or[" + jm.getChildsNames("$or").Count + "].description", "__regexs__" + item.description + "__regexe__"); } string json = jm.ToJson(); json = json.Replace("\"__regexs__", "/.*"); json = json.Replace("__regexe__\"", "*./"); if (!jm.contains("$or")) { json = "{}"; } //realiza a busca no banco de dados List <BsonDocument> cursor = carsCollection.Find(json).ToList(); //converte os dados retornados do banco de dados foreach (BsonDocument curr in cursor) { result.Add(BsonDocumentToCar(curr)); } return(new Results { sucess = true, message = "ok", data = result }); } //verifica se está solicitando a população do objeto Item else if (operation == DaoOperations.Populate) { List <Car> result = new List <Car>(); //prepara os campos da pesquisa JObject jm = new JObject(); jm.Add(new JProperty("_id", item.id)); //realiza a busca no banco de dados List <BsonDocument> cursor = carsCollection.Find(jm.ToJson()).ToList(); if (cursor.Count > 0) { item = BsonDocumentToCar(cursor[0]); return(new Results { sucess = true, message = "ok", data = item }); } else { return(new Results { sucess = false, message = "Object not found" }); } } //verifica se está tentando inserir else if (operation == DaoOperations.Insert) { //serializa o objeto string jsonItem = Newtonsoft.Json.JsonConvert.SerializeObject(item); //insere os dados no banco carsCollection.InsertOne(BsonDocument.Parse(jsonItem)); return(new Results { sucess = true, message = "ok" }); } else if (operation == DaoOperations.Update) { } else if (operation == DaoOperations.Delete) { } return(new Results { sucess = false, message = "Internal error" }); } else { return(new Results { sucess = false, message = "MongoDB Connection error" }); } }