Exemplo n.º 1
0
        //-----------------------------------------------------------------------
        public CResultAErreur CanCreate(string strType, int nNbDemande)
        {
            CResultAErreur result = CResultAErreur.True;

            CLicenceTypePrtct type = m_LicenceLogiciel.GetTypeProtege(strType);

            int nNbUsed = 0;

            if (type != null)
            {
                foreach (CNombreUtilisePourTypeLicence record in m_listRecords)
                {
                    if (record.IdType.ToUpper() == strType.ToUpper())
                    {
                        nNbUsed += record.NombreUtilise;
                    }
                }


                int nEnCours = 0;
                m_CreationsEnCours.TryGetValue(strType, out nEnCours);

                if (nNbUsed + nNbDemande + nEnCours > type.Nombre)
                {
                    int nbPossibleToCreate = type.Nombre - nNbUsed - nEnCours;
                    result.EmpileErreur(I.T("Impossible to create @1 elements. Your licence allows you to create @2 ones |9",
                                            nNbDemande.ToString(), nbPossibleToCreate.ToString()));

                    return(result);
                }
            }

            return(result);
        }
Exemplo n.º 2
0
 //--------------------------------------------------------
 public void InitTypesProteges()
 {
     this.Types.Clear();
     foreach (Type tp in CContexteDonnee.GetAllTypes())
     {
         if (!typeof(CRelationElementAChamp_ChampCustom).IsAssignableFrom(tp))
         {
             string            strNomType = DynamicClassAttribute.GetNomConvivial(tp);
             CLicenceTypePrtct lc         = new CLicenceTypePrtct(strNomType,
                                                                  strNomType, "");
             lc.Nombre = 1000;
             Types.Add(lc);
         }
     }
 }
Exemplo n.º 3
0
        public IEnumerable <CAlerteLicence> GetAlertes()
        {
            List <CAlerteLicence> lst = new List <CAlerteLicence>();

            foreach (CNombreUtilisePourTypeLicence restant in GetNombreRestantParType())
            {
                CLicenceTypePrtct type = m_LicenceLogiciel.GetTypeProtege(restant.IdType);
                if (type != null && type.Nombre != 0)
                {
                    double fRatio = ((double)(type.Nombre - restant.NombreUtilise) / ((double)type.Nombre)) * 100;
                    if (fRatio < type.SeuilAlertePourcent ||
                        fRatio < type.SeuilCritiquePourcent)
                    {
                        CAlerteLicence alerte = new CAlerteLicence(
                            I.T("You will soon reach elements '@1' limit : @2% left|20004",
                                type.Nom, fRatio.ToString("0")),
                            fRatio < type.SeuilCritiquePourcent ? EGraviteAlerte.Critique : EGraviteAlerte.Info);
                        lst.Add(alerte);
                    }
                }
            }
            return(lst);
        }
Exemplo n.º 4
0
        //-----------------------------------------------------------------------------------------
        //write m_listRecords into the file m_stSaveFileFullName
        public CResultAErreur Save(Dictionary <string, int> dictionary)
        {
            CResultAErreur result = CResultAErreur.True;

            if (!m_bHasTypesLimites)
            {
                return(result);
            }
            DateTime dateNow = DateTime.Now;

            foreach (KeyValuePair <string, int> kvp in dictionary)
            {
                CLicenceTypePrtct type = m_LicenceLogiciel.GetTypeProtege(kvp.Key);

                if (type != null)//on sauvegarde que des types limités par la licence
                {
                    CNombreUtilisePourTypeLicence record = FindExistingRecord(type.Nom);
                    if (record == null)
                    {
                        CNombreUtilisePourTypeLicence addRecord = new CNombreUtilisePourTypeLicence(kvp.Key, kvp.Value);
                        m_listRecords.Add(addRecord);
                    }
                    else
                    {
                        int indx = m_listRecords.IndexOf(record);
                        m_listRecords.RemoveAt(indx);
                        record.NombreUtilise += kvp.Value;
                        m_listRecords.Add(record);
                    }
                    FreeElements(kvp.Key, kvp.Value);//les modif. sont commitées, on les efface de m_CreationsEnCours
                }
            }


            return(result);
        }