Exemple #1
0
        /// <summary>
        /// Метод добавления новой записи, создаёт новый файл с записью
        /// </summary>
        /// <param name="objectToAdd">Обьект для добавления</param>
        /// <returns>Обнвленная коллекция</returns>
        public ICollection <DataBaseObject> Add(DataBaseObject objectToAdd)
        {
            switch (mode)
            {
            case ("json"):
                string                   newFileNameJson  = path + "\\newRecordDB-" + objectToAdd.GetHashCode().ToString() + ".json";
                BinaryWriter             binaryWriterJson = new BinaryWriter(File.Create(newFileNameJson));
                DllFileInfo              writableObjJson  = (DllFileInfo)objectToAdd;
                LinkedList <DllFileInfo> listForWriting   = new LinkedList <DllFileInfo>();
                listForWriting.AddLast(writableObjJson);
                binaryWriterJson.Write(JsonConvert.SerializeObject(listForWriting));
                binaryWriterJson.Close();
                break;

            case ("bin"):
                string       newFileName  = path + "\\newRecordDB-" + objectToAdd.GetHashCode().ToString() + ".bin";
                BinaryWriter binaryWriter = new BinaryWriter(File.Create(newFileName));
                AccessInfo   writableObj  = (AccessInfo)objectToAdd;
                binaryWriter.Write(writableObj.SystemId.ToString());
                binaryWriter.Write(writableObj.Login);
                binaryWriter.Write(writableObj.Hashcode);
                binaryWriter.Write(writableObj.Password);
                binaryWriter.Write(writableObj.Email);
                binaryWriter.Close();
                break;
            }
            return(GetAll());
        }
 void OnEnable()
 {
     thisDataBaseObject = (DataBaseObject)target;
     selectedObjectType = thisDataBaseObject.oObjectType;
     dietIndex          = thisDataBaseObject.oDiet;
     behaviourIndex     = thisDataBaseObject.oBehaviourNumber;
     floraTypeIndex     = thisDataBaseObject.oFloraType;
 }
 /// <summary>
 /// Обновляет данные существующей записи в базе данных
 /// </summary>
 /// <param name="objectToAdd"> Объект наследуемый от DataBaseObject (Либо AccessInfo, либо DllFileInfo) </param>
 public ICollection <DataBaseObject> Update(DataBaseObject objectToAdd)
 {
     using (ISession session = HybernateHelper.OpenSession(path))
     {
         using (ITransaction transaction = session.BeginTransaction())
         {
             session.Update(objectToAdd);
             transaction.Commit();
         }
     }
     return(GetAll());
 }
Exemple #4
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseStaticFiles();
            app.UseRouting();
            app.UseCors();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllerRoute("default", "{controller=Games}/{action=List}");
            });
            using (var scope = app.ApplicationServices.CreateScope())
            {
                DateBaseContent content = app.ApplicationServices.GetRequiredService <Data.DateBaseContent>();
                DataBaseObject.Initial(content);
            }
        }
Exemple #5
0
        /// <summary>
        /// Удаление записи из файловой БД
        /// </summary>
        /// <param name="objectToDelete">Сущность для удаления</param>
        /// <returns>Обновлённая коллекция</returns>
        public ICollection <DataBaseObject> Delete(DataBaseObject objectToDelete)
        {
            string[] files;
            switch (mode)
            {
            case ("json"):
                files = Directory.GetFiles(path, "*.json");
                BinaryReader binaryReaderJson;
                DllFileInfo  objectToDeleteJson = (DllFileInfo)objectToDelete;
                bool         rewriteJson        = false;
                ICollection <DataBaseObject> rewriteCollection = new LinkedList <DataBaseObject>();
                for (int i = 0; i < files.Length; i++)
                {
                    binaryReaderJson  = new BinaryReader(File.OpenRead(files[i]));
                    rewriteCollection = new LinkedList <DataBaseObject>();
                    string jsonString = "";
                    while (binaryReaderJson.PeekChar() > -1)
                    {
                        jsonString = jsonString + binaryReaderJson.ReadString();
                    }
                    LinkedList <DllFileInfo> currObjects = new LinkedList <DllFileInfo>();
                    if (jsonString.Length > 2)
                    {
                        currObjects = JsonConvert.DeserializeObject <LinkedList <DllFileInfo> >(jsonString);
                        if (currObjects.Select(x => x.SystemId.Equals(objectToDeleteJson.SystemId)).Count() > 0)    //danger - lambda
                        {
                            currObjects.Remove(currObjects.First(x => x.SystemId.Equals(objectToDeleteJson.SystemId)));
                            rewriteJson = true;
                        }
                    }
                    binaryReaderJson.Close();
                    if (rewriteJson)
                    {
                        BinaryWriter binaryWriter = new BinaryWriter(File.Create(files[i]));
                        binaryWriter.Write(JsonConvert.SerializeObject(currObjects));
                        binaryWriter.Close();
                        break;
                    }
                }
                break;

            case ("bin"):
                files = Directory.GetFiles(path, "*.bin");
                BinaryReader binaryReader;
                AccessInfo   objectToDeleteBin = (AccessInfo)objectToDelete;
                bool         rewrite           = false;
                ICollection <DataBaseObject> rewriteCollectionBin = new LinkedList <DataBaseObject>();
                for (int i = 0; i < files.Length; i++)
                {
                    binaryReader         = new BinaryReader(File.OpenRead(files[i]));
                    rewriteCollectionBin = new LinkedList <DataBaseObject>();
                    while (binaryReader.PeekChar() > -1)
                    {
                        AccessInfo currentInfo = new AccessInfo(
                            Guid.Parse(binaryReader.ReadString()), //Guid
                            binaryReader.ReadString(),             //login
                            binaryReader.ReadString(),             //hash
                            binaryReader.ReadString(),             //pass
                            binaryReader.ReadString());            //email
                        if (objectToDeleteBin.SystemId.Equals(currentInfo.SystemId))
                        {
                            rewrite = true;
                        }
                        else
                        {
                            rewriteCollectionBin.Add(currentInfo);
                        }
                    }
                    binaryReader.Close();
                    if (rewrite)
                    {
                        BinaryWriter binaryWriter = new BinaryWriter(File.Create(files[i]));
                        for (int j = 0; j < rewriteCollectionBin.Count(); j++)
                        {
                            AccessInfo accessInfo = (AccessInfo)rewriteCollectionBin.ElementAt(j);
                            binaryWriter.Write(accessInfo.SystemId.ToString());
                            binaryWriter.Write(accessInfo.Login);
                            binaryWriter.Write(accessInfo.Hashcode);
                            binaryWriter.Write(accessInfo.Password);
                            binaryWriter.Write(accessInfo.Email);
                        }
                        binaryWriter.Close();
                        break;
                    }
                }
                break;
            }
            return(GetAll());
        }
Exemple #6
0
        /// <summary>
        /// 创建数据库对象
        /// </summary>
        /// <param name="objName"></param>
        /// <returns></returns>
        public string GetCreateTableSql(DataBaseObject objName)
        {
            string createSql = "";
            switch (objName)
            {
                case DataBaseObject.TI18NMODULE:
                    createSql = "CREATE TABLE  TI18NMODULE "
                                + "( "
                                + "  NAME         VARCHAR(31)   NOT NULL,"
                                + "  DESCRIPTION  VARCHAR(127)  NOT NULL,"
                                + "  NEXT_SEQ     INTEGER    DEFAULT 0   NOT NULL "
                                + " )";
                    break;
                case DataBaseObject.TI18NCATALOG:
                    createSql = "CREATE TABLE  TI18NCATALOG "
                                + "( "
                                + "  ID           CHAR(50)   NOT NULL,"
                                + "  MODULE       VARCHAR(31)    NOT NULL,"
                                + "  NAME         VARCHAR(31)    NOT NULL,"
                                + "  KIND         CHAR(1 BYTE)    NOT NULL,"
                                + "  DESCRIPTION  VARCHAR(127),"
                                + "  NEXT_SEQ     INTEGER    DEFAULT 0     NOT NULL"
                                + ")";
                    break;
                case DataBaseObject.TI18NCULTURE:
                    createSql = " CREATE TABLE  TI18NCULTURE"
                                + "("
                                + "   NAME         VARCHAR(31)                NOT NULL,"
                                + "   DESCRIPTION  VARCHAR(63)                DEFAULT ' '                   NOT NULL,"
                                + "   ISDEFAULT    CHAR(1)                     DEFAULT 0                     NOT NULL,"
                                + "   ICUNAME      VARCHAR(31)                DEFAULT ' '                   NOT NULL"
                                + " )";
                    break;
                case DataBaseObject.TI18NRESKIND:
                    createSql = " CREATE TABLE  TI18NRESKIND"
                                + " ("
                                + "   NAME         CHAR(1 BYTE),"
                                + "   DESCRIPTION  VARCHAR2(63 BYTE)"
                                + " )";
                    break;
                case DataBaseObject.TI18NRESLEVEL:
                    createSql = " CREATE TABLE  TI18NRESLEVEL"
                                + " ("
                                + "   NAME         VARCHAR2(30 BYTE)    NOT NULL,"
                                + "   DESCRIPTION  VARCHAR2(100 BYTE)"
                                + " )";
                    break;
                //资源表
                case DataBaseObject.TI18NLOCAL:
                    createSql = " CREATE TABLE  TI18NLOCAL"
                                + " ("
                                + "   ID       CHAR(12)    NOT NULL,"
                                + "   CULTURE  VARCHAR(31)    NOT NULL,"
                                + "   CONTENT  VARCHAR(4000)   NOT NULL"
                                + " )";
                    break;

                //关系表(资源--等级)
                case DataBaseObject.TI18NRES:
                    createSql =  " CREATE TABLE  TI18NRES"
                                +" ("
                                +"   ID       CHAR(12 BYTE)                        NOT NULL,"
                                +"   \"LEVEL\"  VARCHAR(30 BYTE)"
                                +" )";
                    break;
                //关系表(资源--资源包)
                case DataBaseObject.TI18NRESCATALOG:
                    createSql = " CREATE TABLE  TI18NRESCATALOG"
                                +" ("
                                +"   CID  CHAR(50 BYTE),"
                                +"   RID  CHAR(12 BYTE)"
                                +" )";
                    break;

                    //用户
                case DataBaseObject.TI18NUSERINFO:
                    createSql = " CREATE TABLE  TI18NUSERINFO"
                                + " ("
                                + "   ID        VARCHAR2(50 BYTE)                   DEFAULT 0                     NOT NULL,"
                                + "   ENAME     VARCHAR2(18 BYTE)                   DEFAULT ' ',"
                                + "   CNAME     VARCHAR2(50 BYTE)                   DEFAULT ' ',"
                                + "   PASSWORD  VARCHAR2(50 BYTE)                   DEFAULT ' ',"
                                + "   ISADMIN   CHAR(1 BYTE)                        DEFAULT '0'"
                                + " )";
                    break;
                case DataBaseObject.TI18NUSERMODULE:
                    createSql = " CREATE TABLE  TI18NUSERMODULE"
                                + " ("
                                + "  USERID  VARCHAR2(50 BYTE),"
                                + "  NAME    VARCHAR2(31 BYTE)"
                                + " )";
                    break;

                    //日志
                case DataBaseObject.TI18NLOGEVENT:
                    createSql = " CREATE TABLE  TI18NLOGEVENT"
                                + " ("
                                + "   ID             VARCHAR(50)              NOT NULL,"
                                + "   LOG_TIME       VARCHAR(16),"
                                + "   LOG_USERID     VARCHAR(50),"
                                + "   LOG_USERCNAME  VARCHAR(50),"
                                + "   LOG_MESSAGE    VARCHAR(500)"
                                + " )";
                    break;

                case DataBaseObject.VI18NRESOURCES:
                    createSql = " CREATE   VIEW  VI18NRESOURCES"
                                +" ("
                                +"    ID,"
                                +"    CATALOGID,"
                                +"    MODULE,"
                                +"    CATALOGNAME,"
                                +"    KINDID,"
                                +"    KINDNAME,"
                                +"    DESCRIPTION,"
                                +"    RESKEY,"
                                +"    CULTUREID,"
                                +"    CULTURENAME,"
                                +"    RESCONTENT,"
                                +"    LEVELID,"
                                +"    LEVELNAME"
                                +" )"
                                +" AS"
                                +"    SELECT DISTINCT ti18nlocal.ID || '_' || ti18nlocal.CULTURE AS ID,"
                                +"                    ti18ncatalog.ID AS catalogID,"
                                +"                    ti18ncatalog.MODULE AS module,"
                                +"                    ti18ncatalog.NAME AS catalogName,"
                                +"                    ti18ncatalog.KIND AS kindID,"
                                +"                    ti18nreskind.description AS kindName,"
                                +"                    ti18ncatalog.DESCRIPTION,"
                                +"                    ti18nlocal.ID AS reskey,"
                                +"                    ti18nlocal.CULTURE AS cultureID,"
                                +"                    ti18nculture.name AS cultureNAME,"
                                +"                    ti18nlocal.CONTENT AS rescontent,"
                                +"                    ti18nres.\"LEVEL\" AS levelID,"
                                +"                    ti18nreslevel.description AS levelName"
                                +"      FROM ti18ncatalog,"
                                +"           ti18nlocal,"
                                +"           ti18nres,"
                                +"           ti18nrescatalog,"
                                +"           ti18nreslevel,"
                                +"           ti18nreskind,"
                                +"           ti18nculture"
                                +"     WHERE     ti18nlocal.id = ti18nres.id"
                                +"           AND ti18nlocal.id = ti18nrescatalog.rid"
                                +"           AND ti18nrescatalog.cid = ti18ncatalog.id"
                                +"           AND ti18ncatalog.KIND = ti18nreskind.name"
                                +"           AND ti18nlocal.culture = ti18nculture.name"
                                +"           AND ti18nres.\"LEVEL\" = ti18nreslevel.name;";
                    break;
                case DataBaseObject.TI18NANALYZERESULT:
                    createSql = " CREATE TABLE  TI18NANALYZERESULT"
                                + "("
                                + "  ID                VARCHAR(50)           NOT NULL,"
                                + "  ITEMNAME          VARCHAR(100)          DEFAULT '  ',"
                                + " ITEMTYPE          VARCHAR(2)            DEFAULT '  ',"
                                + "  ITEMRELATIVEPATH  VARCHAR(200)          DEFAULT '  ',"
                                + " PROJECT           VARCHAR(50)           DEFAULT 'XXXX',"
                                + "  RESNAME           VARCHAR(100)          DEFAULT ' ',"
                                + "  RESVALUE          VARCHAR(4000)         DEFAULT ' ',"
                                + "  ROWINDEXINITEM    NUMBER                      DEFAULT -1,"
                                + "  CULTURE           VARCHAR(31)           DEFAULT 'zh-CHS',"
                                + " GRIDNAME          VARCHAR(50)           DEFAULT ' '"
                                + ")";
                    break;
                case DataBaseObject.TI18NANALYZELOCAL:
                    createSql="CREATE TABLE  TI18NANALYZELOCAL"
                                +"("
                                +"  ID                VARCHAR(50)           NOT NULL,"
                                +" keyTo          VARCHAR(12)          DEFAULT '  ',"
                                +"  resContent          VARCHAR(4000)            DEFAULT '  ' "
                                +")";
                    break;

            }
            return createSql;
        }
Exemple #7
0
        /// <summary>
        /// 创建数据库对象
        /// </summary>
        /// <param name="objName"></param>
        /// <returns></returns>
        public string GetCreateTableSql(DataBaseObject objName)
        {
            string createSql = "";

            switch (objName)
            {
            case DataBaseObject.TI18NMODULE:
                createSql = "CREATE TABLE  TI18NMODULE "
                            + "( "
                            + "  NAME         VARCHAR(31)   NOT NULL,"
                            + "  DESCRIPTION  VARCHAR(127)  NOT NULL,"
                            + "  NEXT_SEQ     INTEGER    DEFAULT 0   NOT NULL "
                            + " )";
                break;

            case DataBaseObject.TI18NCATALOG:
                createSql = "CREATE TABLE  TI18NCATALOG "
                            + "( "
                            + "  ID           CHAR(50)   NOT NULL,"
                            + "  MODULE       VARCHAR(31)    NOT NULL,"
                            + "  NAME         VARCHAR(31)    NOT NULL,"
                            + "  KIND         CHAR(1 BYTE)    NOT NULL,"
                            + "  DESCRIPTION  VARCHAR(127),"
                            + "  NEXT_SEQ     INTEGER    DEFAULT 0     NOT NULL"
                            + ")";
                break;

            case DataBaseObject.TI18NCULTURE:
                createSql = " CREATE TABLE  TI18NCULTURE"
                            + "("
                            + "   NAME         VARCHAR(31)                NOT NULL,"
                            + "   DESCRIPTION  VARCHAR(63)                DEFAULT ' '                   NOT NULL,"
                            + "   ISDEFAULT    CHAR(1)                     DEFAULT 0                     NOT NULL,"
                            + "   ICUNAME      VARCHAR(31)                DEFAULT ' '                   NOT NULL"
                            + " )";
                break;

            case DataBaseObject.TI18NRESKIND:
                createSql = " CREATE TABLE  TI18NRESKIND"
                            + " ("
                            + "   NAME         CHAR(1 BYTE),"
                            + "   DESCRIPTION  VARCHAR2(63 BYTE)"
                            + " )";
                break;

            case DataBaseObject.TI18NRESLEVEL:
                createSql = " CREATE TABLE  TI18NRESLEVEL"
                            + " ("
                            + "   NAME         VARCHAR2(30 BYTE)    NOT NULL,"
                            + "   DESCRIPTION  VARCHAR2(100 BYTE)"
                            + " )";
                break;

            //资源表
            case DataBaseObject.TI18NLOCAL:
                createSql = " CREATE TABLE  TI18NLOCAL"
                            + " ("
                            + "   ID       CHAR(12)    NOT NULL,"
                            + "   CULTURE  VARCHAR(31)    NOT NULL,"
                            + "   CONTENT  VARCHAR(4000)   NOT NULL"
                            + " )";
                break;

            //关系表(资源--等级)
            case DataBaseObject.TI18NRES:
                createSql = " CREATE TABLE  TI18NRES"
                            + " ("
                            + "   ID       CHAR(12 BYTE)                        NOT NULL,"
                            + "   \"LEVEL\"  VARCHAR(30 BYTE)"
                            + " )";
                break;

            //关系表(资源--资源包)
            case DataBaseObject.TI18NRESCATALOG:
                createSql = " CREATE TABLE  TI18NRESCATALOG"
                            + " ("
                            + "   CID  CHAR(50 BYTE),"
                            + "   RID  CHAR(12 BYTE)"
                            + " )";
                break;

            //用户
            case DataBaseObject.TI18NUSERINFO:
                createSql = " CREATE TABLE  TI18NUSERINFO"
                            + " ("
                            + "   ID        VARCHAR2(50 BYTE)                   DEFAULT 0                     NOT NULL,"
                            + "   ENAME     VARCHAR2(18 BYTE)                   DEFAULT ' ',"
                            + "   CNAME     VARCHAR2(50 BYTE)                   DEFAULT ' ',"
                            + "   PASSWORD  VARCHAR2(50 BYTE)                   DEFAULT ' ',"
                            + "   ISADMIN   CHAR(1 BYTE)                        DEFAULT '0'"
                            + " )";
                break;

            case DataBaseObject.TI18NUSERMODULE:
                createSql = " CREATE TABLE  TI18NUSERMODULE"
                            + " ("
                            + "  USERID  VARCHAR2(50 BYTE),"
                            + "  NAME    VARCHAR2(31 BYTE)"
                            + " )";
                break;

            //日志
            case DataBaseObject.TI18NLOGEVENT:
                createSql = " CREATE TABLE  TI18NLOGEVENT"
                            + " ("
                            + "   ID             VARCHAR(50)              NOT NULL,"
                            + "   LOG_TIME       VARCHAR(16),"
                            + "   LOG_USERID     VARCHAR(50),"
                            + "   LOG_USERCNAME  VARCHAR(50),"
                            + "   LOG_MESSAGE    VARCHAR(500)"
                            + " )";
                break;

            case DataBaseObject.VI18NRESOURCES:
                createSql = " CREATE   VIEW  VI18NRESOURCES"
                            + " ("
                            + "    ID,"
                            + "    CATALOGID,"
                            + "    MODULE,"
                            + "    CATALOGNAME,"
                            + "    KINDID,"
                            + "    KINDNAME,"
                            + "    DESCRIPTION,"
                            + "    RESKEY,"
                            + "    CULTUREID,"
                            + "    CULTURENAME,"
                            + "    RESCONTENT,"
                            + "    LEVELID,"
                            + "    LEVELNAME"
                            + " )"
                            + " AS"
                            + "    SELECT DISTINCT ti18nlocal.ID || '_' || ti18nlocal.CULTURE AS ID,"
                            + "                    ti18ncatalog.ID AS catalogID,"
                            + "                    ti18ncatalog.MODULE AS module,"
                            + "                    ti18ncatalog.NAME AS catalogName,"
                            + "                    ti18ncatalog.KIND AS kindID,"
                            + "                    ti18nreskind.description AS kindName,"
                            + "                    ti18ncatalog.DESCRIPTION,"
                            + "                    ti18nlocal.ID AS reskey,"
                            + "                    ti18nlocal.CULTURE AS cultureID,"
                            + "                    ti18nculture.name AS cultureNAME,"
                            + "                    ti18nlocal.CONTENT AS rescontent,"
                            + "                    ti18nres.\"LEVEL\" AS levelID,"
                            + "                    ti18nreslevel.description AS levelName"
                            + "      FROM ti18ncatalog,"
                            + "           ti18nlocal,"
                            + "           ti18nres,"
                            + "           ti18nrescatalog,"
                            + "           ti18nreslevel,"
                            + "           ti18nreskind,"
                            + "           ti18nculture"
                            + "     WHERE     ti18nlocal.id = ti18nres.id"
                            + "           AND ti18nlocal.id = ti18nrescatalog.rid"
                            + "           AND ti18nrescatalog.cid = ti18ncatalog.id"
                            + "           AND ti18ncatalog.KIND = ti18nreskind.name"
                            + "           AND ti18nlocal.culture = ti18nculture.name"
                            + "           AND ti18nres.\"LEVEL\" = ti18nreslevel.name;";
                break;

            case DataBaseObject.TI18NANALYZERESULT:
                createSql = " CREATE TABLE  TI18NANALYZERESULT"
                            + "("
                            + "  ID                VARCHAR(50)           NOT NULL,"
                            + "  ITEMNAME          VARCHAR(100)          DEFAULT '  ',"
                            + " ITEMTYPE          VARCHAR(2)            DEFAULT '  ',"
                            + "  ITEMRELATIVEPATH  VARCHAR(200)          DEFAULT '  ',"
                            + " PROJECT           VARCHAR(50)           DEFAULT 'XXXX',"
                            + "  RESNAME           VARCHAR(100)          DEFAULT ' ',"
                            + "  RESVALUE          VARCHAR(4000)         DEFAULT ' ',"
                            + "  ROWINDEXINITEM    NUMBER                      DEFAULT -1,"
                            + "  CULTURE           VARCHAR(31)           DEFAULT 'zh-CHS',"
                            + " GRIDNAME          VARCHAR(50)           DEFAULT ' '"
                            + ")";
                break;

            case DataBaseObject.TI18NANALYZELOCAL:
                createSql = "CREATE TABLE  TI18NANALYZELOCAL"
                            + "("
                            + "  ID                VARCHAR(50)           NOT NULL,"
                            + " keyTo          VARCHAR(12)          DEFAULT '  ',"
                            + "  resContent          VARCHAR(4000)            DEFAULT '  ' "
                            + ")";
                break;
            }
            return(createSql);
        }