コード例 #1
0
        public WindowItem GetOrCreateWindowItemFromDB(int?appId, int?fileId, string windowText)
        {
            Dictionary <string, object> args = new Dictionary <string, object>();

            args.Add("ApplicationId", appId);
            args.Add("FileId", fileId);
            args.Add("WindowText", windowText);

            string selectSql = $"SELECT * FROM Window { GenerateWhereClauseWithNull(args) }";

            WindowItem windowItem = _DBConnection.QueryFirstOrDefault <WindowItem>(selectSql, new { ApplicationId = appId, FileId = fileId, WindowText = windowText });

            if (windowItem == null)
            {
                string insertSql = $"INSERT INTO Window { GenerateInsertClauseWithNull(args) }";
                _DBConnection.Execute(insertSql, new { ApplicationId = appId, FileId = fileId, WindowText = windowText });

                windowItem = _DBConnection.QueryFirst <WindowItem>(selectSql, new { ApplicationId = appId, FileId = fileId, WindowText = windowText });
            }

            return(windowItem);
        }