// Add a new training Camp // Body Fields: trainingID, trainingName, trainingUserCapacity // Response: Whole Training Document (Will populate _id, currentTrainingUserCount = 0 , empty usersList) // Notes: Check first if the Training already exists in the database with the same trainingID. If there is DO NOT ADD // POST api/<controller> public HttpResponseMessage Post([FromBody] Training training) { // training must have a trainingName if (string.IsNullOrEmpty(training?.trainingName)) { return(Request.CreateResponse(HttpStatusCode.BadRequest)); } // Get the master Info // Find the the master info deocument by hardcode 0000. (setup) var getFilterInfo = Builders <Info> .Filter.Eq("masterId", "0000"); // Get the Info, by the filter Info infoFound = MongoConnections.getMongoInfoCollection().Find(getFilterInfo).FirstOrDefault(); int nextTrainingID = infoFound.numberOfTrainings + 1; // prep the update of infoFound infoFound.numberOfTrainings = nextTrainingID; // hard code these fields to initalize in the database training.currentTrainingUserCount = 0; training.trainingID = nextTrainingID.ToString().PadLeft(4, '0'); training.signupList = new List <TrainingUserItem>(); MongoConnections.getMongoTrainingCollection().InsertOne(training); // Update Info with the new number of trainings var updateInfo = Builders <Info> .Update.Inc("numberOfTrainings", 1); MongoConnections.getMongoInfoCollection().UpdateOne(getFilterInfo, updateInfo); return(Request.CreateResponse(HttpStatusCode.OK, training)); }
// POST api/<controller> public void Post() { List <string> adminUsersList = new List <string>(); adminUsersList.Add("*****@*****.**"); MongoConnections.getMongoInfoCollection().InsertOne(new Info() { masterId = "0000", numberOfTrainings = 0, numberOfUsers = 0, listOfAdminEmailAddresses = adminUsersList }); }
// GET api/<controller> public HttpResponseMessage Get() { List <Info> listOfInfo = MongoConnections.getMongoInfoCollection().Find(new BsonDocument()).ToList(); return(Request.CreateResponse(HttpStatusCode.OK, listOfInfo[0])); }