public bool deleteMonthlySave(DateTime monthToDelete) { List<MonthlySave> allSaves = getMonthlySaves(); MonthlySave monthlySave = MonthlySave.findMonthlySave(allSaves, formatDate(monthToDelete)); bool ok = allSaves.Remove(monthlySave); Serialise.Save(Const.FILE_MONTHLYRECAP, allSaves); return ok; }
public void finalizeMonth(List <MonthlySave> allMonthlySaves, DateTime date) { MonthlySave montlySave = new MonthlySave(date, data.allBudgets); allMonthlySaves.Add(montlySave); Serialise.Save(Const.FILE_MONTHLYRECAP, allMonthlySaves); saveData(); }
/// <summary> /// Sauvegarde les données affichées par sérialisation. /// </summary> public void saveData() { try { data.storeUserData(); Serialise.Save(Const.FILE_DATA, data); } catch { MessageBox.Show(Const.MSG_ERR_SAVE, Const.MSG_TITLE_SAVE, MessageBoxButtons.OK); } setFlagChange(change: false); }
/// <summary> /// Charge les données enregistrées. /// Si aucun fichier enregistré, crée deux users. /// </summary> public void loadData() { Object obj = Serialise.Load(Const.FILE_DATA); if (obj != null) { data = (AppData)obj; User.initializeNames(data); } else // fichier vide { data = AppData.getAppData(); User.initializeDefaultNames(); } setFlagUserChange(change: false); }
private void buttonValider_Click(object sender, EventArgs e) { if ((DateTime.TryParse(textBoxDateDInscription.Text, out DateTime dateDInscription)) && (DateTime.TryParse(textBoxDateDeValidation.Text, out DateTime dateDeValidation))) { ProfilDemandeur profil = new ProfilDemandeur(textBoxNom.Text, textBoxPrenom.Text, dateDInscription, dateDeValidation, (EDiplome)comboBox1.SelectedItem); //instance d'un nouveau profil de chercheurDEmploi ChercheurDEmploi chercheurDEmploi = new ChercheurDEmploi(profil.GenererID(), profil); //instance d'un nouveau chercheurDEmploi if (chercheurDEmploi != null) { TrouveEmploi.ListeChercheursDEmploi.Add(chercheurDEmploi); // Serialise.Serialize(chercheurDEmploi, "chercheurDEmploiSerial.bin"); //sérialisation d'un seul demandeur d'emploi Serialise.Serialize(TrouveEmploi.ListeChercheursDEmploi, "listeDesChercheursDEmploi.bin"); MessageBox.Show("Ajout du demandeur d'emploi réalisé avec succès"); //confirmation de la réussite de l'ajout d'un chercheurDEmploi MessageBox.Show("Avec ce niveau d'étude vous avez un taux d'employabilité de " + profil.TauxDEmployabilite + "%"); } else { MessageBox.Show("Ce profil n'existe pas !"); } }
/** * <summary>Lance l'écoute sur le serveur</summary> * <returns>Les données wrappées dans le model T demandé, null si une erreur</returns> */ protected async Task <T> ReceiveAsync <T>(NetworkStream flux) where T : class, IModelReseau { T data = null; try { await Task.Run(() => { Catcher.LogInfo("En attente d'un message..."); byte[] buffer = new byte[1024]; using (MemoryStream ms = new MemoryStream()) { int numBytesRead = flux.Read(buffer, 0, buffer.Length); while (flux.DataAvailable || numBytesRead > 0) { if (numBytesRead == 0) { numBytesRead = flux.Read(buffer, 0, buffer.Length); } Catcher.LogInfo($"Réception de {numBytesRead} bytes"); ms.Write(buffer, 0, numBytesRead); numBytesRead = 0; } data = Serialise.MemoryStreamToObject <T>(ms); // converti les octets en un model demandé Catcher.LogInfo($"Message de longueur {ms.ToArray().Length} reçu"); } }); } catch (Exception e) { Catcher.LogError(@"Impossible de recevoir un message TCP : " + e.Message); } return(data); }
/** * <summary>Envoie un model au client</summary> * <param name="data">Model qui implémente <see cref="IModelReseau"/> à envoyer</param> * <param name="flux">Flux <see cref="NetworkStream"/> à envoyer</param> * <returns>true si tout s'est bien passé, false sinon</returns> */ protected virtual async Task <bool> SendAsync(IModelReseau data, NetworkStream flux) { try { await Task.Run(() => { BinaryWriter binaryWriter = new BinaryWriter(flux); // converti le flux en binaire byte[] byteData = Serialise.ObjectToByteArray(data); binaryWriter.Write(byteData); // envoie le model sous forme de bytes[] Catcher.LogInfo($"Message de longueur {byteData.Length} envoyé"); }); return(true); } catch (Exception e) { Catcher.LogError(@"Impossible d'envoyer un message TCP : " + e.Message); return(false); } }
/** * <summary>Envoie un message en UDP</summary> * <param name="model">Données à envoyer, implémentant <see cref="IModelReseau"/></param> * <param name="destination"><see cref="IPEndPoint"/> Données sur la destination des données (IP et port)</param> */ public async Task SendAsync(IModelReseau model, IPEndPoint destination) { byte[] data = Serialise.ObjectToByteArray(model); await _udp.SendAsync(data, data.Length, destination); }
/// <summary> /// Récupère les sauvegardes mensuelles sérialisées. /// </summary> /// <returns>Liste des sauvegardes mensuelles.</returns> public List <MonthlySave> getMonthlySaves() { return((List <MonthlySave>)Serialise.Load(Const.FILE_MONTHLYRECAP)); }