public HttpResponseMessage ConsulterStock(string centrale) { if (!isSessionExpired()) { _centrale = new utils.MongoDB().getCollection <Centrale>("Centrale"); _stock = new utils.MongoDB().getCollection <Stock>("Stock"); HttpResponseMessage response = new HttpResponseMessage(); User user = getUserFromCookies(); Centrale centraleDB = _centrale.AsQueryable(). FirstOrDefault(c => c.userId == user._id && c.reference == centrale); if (centraleDB == null) { return(Request.CreateErrorResponse(HttpStatusCode.NotFound, new Exception("La centrale " + centrale + " n'a pas été trouvée."))); } Stock stockDB = _stock.AsQueryable().OrderByDescending(s => s.dateCreation).First(s => s.idCentrale == centraleDB._id); if (stockDB == null) { return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, new Exception("La base de données est corrompue. Le stock de la centrale " + centrale + " est introuvable."))); } response.StatusCode = HttpStatusCode.OK; response.Content = new StringContent(stock(centraleDB, stockDB)); return(response); } else { return(Request.CreateErrorResponse(HttpStatusCode.Forbidden, new Exception("Session expirée, merci de vous reconnecter"))); } }
private string stock(Centrale centraleDB, Stock stockDB) { string reference = centraleDB.reference; double stock = stockDB.quantite; double capacite = centraleDB.capacite; double pourcentageOccupation = 100 * stock / capacite; return("Stock de la centrale " + reference + " : \n\t" + stock + " KW / " + capacite + " KW (" + pourcentageOccupation + " % utilisés)"); }
private HttpResponseMessage consume(Usage consumption) { HttpResponseMessage response = new HttpResponseMessage(); User user = getUserFromCookies(); Centrale centraleDB = _centrale.AsQueryable(). FirstOrDefault(c => c.userId == user._id && c.reference == consumption.reference); if (centraleDB == null) { return(Request.CreateErrorResponse(HttpStatusCode.NotFound, new Exception("La centrale " + consumption.reference + " n'a pas été trouvée."))); } Stock stockDB = _stock.AsQueryable().OrderByDescending(s => s.dateCreation).First(s => s.idCentrale == centraleDB._id); if (stockDB == null) { return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, new Exception("La base de données est corrompue. Le stock de la centrale " + centraleDB.reference + " est introuvable."))); } double quantiteDB = stockDB.quantite; double capaciteDB = centraleDB.capacite; double rechargeAcceptable = capaciteDB - quantiteDB; if (consumption.quantite > quantiteDB) { return(Request.CreateErrorResponse(HttpStatusCode.NotAcceptable, new Exception("La centrale n'a qu'un stock de " + quantiteDB + "KW."))); } Stock newStock = new Stock() { _id = Guid.NewGuid().ToString(), idCentrale = centraleDB._id, quantite = quantiteDB - consumption.quantite, dateCreation = DateTime.Now }; _stock.InsertOne(newStock); //refresh de la base pour actualiser le response.content stockDB = refreshStock(centraleDB); response.StatusCode = HttpStatusCode.OK; response.Content = new StringContent("La centrale " + centraleDB.reference + " a été vidée de " + consumption.quantite + " KW.\n" + stock(centraleDB, stockDB)); return(response); }
private HttpResponseMessage create(Centrale centraleRequest) { HttpResponseMessage response = new HttpResponseMessage(); User user = getUserFromCookies(); Centrale centraleDB = _centrale.AsQueryable().FirstOrDefault(c => c.reference == centraleRequest.reference && c.userId == user._id); if (centraleDB == null) { Centrale newCentrale = new Centrale() { _id = Guid.NewGuid().ToString(), userId = user._id, reference = centraleRequest.reference, type = centraleRequest.type, capacite = centraleRequest.capacite, dateCreation = DateTime.Now }; Stock newStock = new Stock() { _id = Guid.NewGuid().ToString(), idCentrale = newCentrale._id, quantite = 0, dateCreation = newCentrale.dateCreation }; _centrale.InsertOne(newCentrale); _stock.InsertOne(newStock); response.Content = new StringContent(newCentrale.reference + " a été créée."); response.StatusCode = HttpStatusCode.Created; return(response); } else { return(Request.CreateErrorResponse( HttpStatusCode.BadRequest, new HttpException("La centrale " + centraleRequest.reference + " existe déjà pour le user " + user.login + "."))); } }
public HttpResponseMessage CreateCentrale(Centrale centraleRequest) { LoginInfos loginInfos = new LoginInfos(); if (!isSessionExpired()) { if (ModelState.IsValid) { _centrale = new utils.MongoDB().getCollection <Centrale>("Centrale"); _stock = new utils.MongoDB().getCollection <Stock>("Stock"); return(create(centraleRequest)); } else { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState)); } } else { return(Request.CreateErrorResponse(HttpStatusCode.Forbidden, new Exception("Session expirée, merci de vous reconnecter."))); } }
private Stock refreshStock(Centrale centraleDB) { _stock = new utils.MongoDB().getCollection <Stock>("Stock"); return(_stock.AsQueryable().OrderByDescending(s => s.dateCreation).First(s => s.idCentrale == centraleDB._id)); }
private void btnNieuwCentraleAanmaken_Click(object sender, EventArgs e) { Centrale centrale = new Centrale(nudStartTarief.Value, nudPrijsPerLiter.Value); }