Bonjour à tous!

j'utilise la structure MVVM.

J'ai trois (3) tables Parametre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
1-parametre (pa_id, PA_DATEINC int , PA_QTEINC float , PA_DATEMIR int , PA_QTEMIECLO float, PA_DATESORPOU int , PA_QTESORTI  float , PA_SORTIPOU int)
 
2-OAC (OA_ID , OA_DATEDE  date , OA_QTEDEP float, OA_QTEREC float , OA_DATREC date
 
3- ECLOSION (EC_ID, #OA_ID, EC_QTEINC float , EC_DATEINC date, EC_DATEMIR date , EC_QTEECLO float , EC_DATEDEM  date , EC_DATESOPOUS date , EC_QTEESTIM float , EC_DATELIV date)
la table PARAMETRE est une table qui contient une ligne de chiffres permettant de faire les calculs.

la table OAC contient des valeurs saisis par l'utilisateur.

et la table ECLOSION est la table qui va contenir les résultats des calculs entre la table OAC et la table PARAMETRE.

mon problème est le suivant comment puis- je effectué le calcul à l'enregistrement de la table OAC pour que les resultats du calcul s'enregistre dans la table ECLOSION

voila le code de ma VM: OacsViewModel
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
public OacViewModel(Oac model= null)
        {
            var peuenr = this.WhenAny(vm => vm.Qtedep, vm => vm.Qterec, vm => vm.MaId, (qp, qr, m) => Qtedep != 0 && Qterec != 0 && MaId != 0);
            Enregistrer = ReactiveCommand.Create(peuenr);
            Enregistrer.Subscribe(_ =>
            {
                var mod = new Oac()
                {
                    Id = Id,
                    Datedep = Datedep,
                    Qtedep = Qtedep,
                    Qterec = Qterec,
                    Datrec = Datrec
                };
                var id=ServiceDonnees.Instance.EnregistrerOac(mod);
                //ServiceDonnees.Instance.EnregistrerEclosion(id);
                HostScreen.Router.NavigateBack.Execute(null);
            });
voila le code de lenregistrement:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
public long EnregistrerOac(Oac oac)
       {
           var cmd = new MySqlCommand("", Connection);
           if (oac.Id == 0)
           {
               cmd.CommandText =
                   string.Format(
                       "insert into oac (oa_datedep,oa_qtedep,oa_qterec,oa_datrec,ma_id) values ('{0:yyyy-MM-dd}', {1},{2},'{3:yyyy-MM-dd}',{4})", oac.Datedep, oac.Qtedep, oac.Qterec, oac.Qterec,oac.MaId);
               Connection.Open();
               cmd.ExecuteNonQuery();
               var id = (long) cmd.LastInsertedId;
               Connection.Close();
               ChargeOac();
               return oac.Id;
           }
           cmd.CommandText =
               string.Format(
                   "update Oac set oa_datedet='{0:yyyy-MM-dd}',oa_qtedep={1}, oa_qterec={2},oa_daterec='{3:yyyy-MM-dd}', ma_id={4} where oa_id={5}",oac.Datedep, oac.Qtedep, oac.Qterec, oac.Qterec, oac.MaId, oac.Id);
           Connection.Open();
           cmd.ExecuteNonQuery();
           Connection.Close();
           ChargeOac();
           return oac.Id;
       }
voila également le code pour le chargement de la ligne contenu dans la table PARAMETRE
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public IEnumerable<Parametre> ChargeParametre()
       {
           var rest = new List<Parametre>();
           var cmd = new MySqlCommand("select pa_id,pa_dateinc,pa_qteinc,pa_datemir, pa_qtemieclo,pa_datemireclo,pa_datesorpou,pa_qtesorti,pa_sortipou from parametre", Connection);
           Connection.Open();
           var reader = cmd.ExecuteReader();
           while (reader.Read())
           {
               var parametre = new Parametre();
               parametre.Id = reader.GetByte(0);
               parametre.Dateinc = reader.GetInt16(1);
               parametre.Qteinc = reader.GetFloat(2);
               parametre.Datemir = reader.GetInt16(3);
               parametre.Qtemieclo = reader.GetFloat(4);
               parametre.Datemireclo = reader.GetInt16(5);
               parametre.Datesorpou = reader.GetInt16(6);
               parametre.Qtesorti = reader.GetFloat(7);
               parametre.Sortipou = reader.GetInt16(8);
               rest.Add(parametre);
           }
           var c = ServiceCache.Instance["parametres"] as SourceCache<Parametre, byte>;
           if (c != null)
           { c.AddOrUpdate(rest); }
           Connection.Close();
           return rest;
       }
le problème est que je sais pas comment effectué le calcul de la table OAC avec les les données de la table PARAMETRE pour que les données s'enregistre dans la table ECLOSION à l'enregistrement de la table OAC.

SVP je suis vraiment bloqué.