Ejemplo n.º 1
0
        /// <summary>
        /// The Vm_DoneEditingRequested.
        /// </summary>
        /// <param name="sender">The sender<see cref="object"/>.</param>
        /// <param name="e">The e<see cref="EventArgs"/>.</param>
        private void Vm_DoneEditingRequested(object sender, EventArgs e)
        {
            DbCore.Update(viewModel);
            var win = Window.GetWindow(this);

            win.Close();
        }
Ejemplo n.º 2
0
        private async Task LogResponse(HttpResponse resp, RequestLog log, Stopwatch timer,
                                       DbCore dbc, string ExceptionMessage = null)
        {
            bool hasException = ExceptionMessage != null;

            dbc.Entry(log);
            log.ResponseStatus      = hasException ? 500 : resp.StatusCode;
            log.ResponseContentType = resp.Headers.GetValueOrDefault("Content-Type", "");
            //ContentLength not always set. Fallback to buffer length if unset
            log.ResponseSize = (int)(resp.ContentLength ?? resp.Body.Length);
            log.Location     = resp.Headers.GetValueOrDefault("Location", "");
            //TODO: log.ResponseType = ???!!!

            //Earlier, the response.body stream was replaced with one that allows rewinding
            //so rewind to beginning, read it, and rewind it again.
            resp.Body.Seek(0, SeekOrigin.Begin);
            string responseAsText = await new StreamReader(resp.Body).ReadToEndAsync();

            resp.Body.Seek(0, SeekOrigin.Begin);

            if (!responseAsText.IsNullOrWhitespace())
            {
                log.ResponseText = responseAsText.Left(ResponseLogLength);
            }
            else if (hasException)
            {
                log.ResponseText  = "Unhandled exception: ";
                log.ResponseText += ExceptionMessage.Left(ResponseLogLength - log.ResponseText.Length);
            }

            //Do as much work as possible before getting the time
            log.ResponseMs = (decimal)timer.Elapsed.TotalMilliseconds;

            await dbc.SaveChangesAsync();
        }
Ejemplo n.º 3
0
    /// <summary>
    /// 获取实体对应表的信息集,并以数据表的信息形式返回
    /// </summary>
    /// <param name="dbCore">数据库访问核心类DbCore实例(用于DbCore事务)</param>
    /// <param name="colNames">实体字段名数组</param>
    /// <param name="operates">比较操作符数组</param>
    /// <param name="colValues">实体字段名对应的值数组</param>
    /// <param name="orderColumns">排序字段数组</param>
    /// <param name="orderDirections">对应排序方向数组</param>
    /// <returns>返回符合条件的数据表信息</returns>
    public DataTable GetDataTable(DbCore dbCore, string[] colNames, Operation[] operates, object[] colValues,
                                  string[] orderColumns, OrderDirection[] orderDirections)
    {
        ORMap <BaseEntity> ormap = new ORMap <BaseEntity>(this);

        return(ormap.GetDataTable(dbCore, colNames, operates, colValues, orderColumns, orderDirections));
    }
Ejemplo n.º 4
0
        public static void Start()
        {
            _bot      = new TelegramBotClient(Config.BotToken);
            _db       = new DbCore();
            _commands = new CommandProcessor(_bot, _db);

            var me = _bot.GetMeAsync().Result;

            Console.WriteLine("Hello my name is " + me.FirstName);
            Console.WriteLine("Username is " + me.Username);
            Console.WriteLine("Press ctrl+c to kill me.");

            _bot.OnUpdate            += Bot_OnUpdate;
            _bot.OnMessage           += Bot_OnMessage;
            _bot.OnCallbackQuery     += Bot_OnCallbackQuery;
            _commands.OnAdminMessage += OnAdminCommandMessage;
            _commands.OnPollMessage  += OnPollCommandMessage;
            _username = me.Username;

            Console.WriteLine("StartReceiving...");
            _bot.StartReceiving();
            while (End)
            {
                //Nothing to do, just sleep 1 sec
                //ctrl+c break cycle
                Thread.Sleep(1000);
            }
            Console.WriteLine("StopReceiving...");
            _bot.StopReceiving();
        }
Ejemplo n.º 5
0
    /// <summary>
    /// 获取实体对应表的信息集,并以数据表的信息形式返回
    /// </summary>
    /// <param name="dbCore">数据库访问核心类DbCore实例(用于DbCore事务)</param>
    /// <param name="colName">实体字段名</param>
    /// <param name="operate">比较操作符</param>
    /// <param name="colValue">实体字段名对应的值</param>
    /// <param name="orderColumn">排序字段</param>
    /// <param name="orderDirection">对应排序方向</param>
    /// <returns>返回符合条件的数据表信息</returns>
    public DataTable GetDataTable(DbCore dbCore, string colName, Operation operate, object colValue,
                                  string orderColumn, OrderDirection orderDirection)
    {
        ORMap <BaseEntity> ormap = new ORMap <BaseEntity>(this);

        return(ormap.GetDataTable(dbCore, colName, operate, colValue, orderColumn, orderDirection));
    }
Ejemplo n.º 6
0
        /// <summary>
        /// Handles the HideSelectedItemsRequested event.
        /// </summary>
        /// <param name="sender">The sender<see cref="object"/>.</param>
        /// <param name="e">The e<see cref="EventArgs"/>.</param>
        private void Vm_HideSelectedFoldersRequested(object sender, EventArgs e)
        {
            Debug.Assert(sender is MainViewModel);
            var vm = sender as MainViewModel;

            var selectedToHide = new List <FolderViewModel>();

            foreach (var item in vm.SelectedFoldersCollection)
            {
                if (item.IsHidden == false)
                {
                    selectedToHide.Add(item);
                }
            }

            if (selectedToHide.Count == 0)
            {
                App.Inform("No Folders to Hide", "There are no unhidden folders to hide in the current selection.");
                return;
            }

            var folderNames = Environment.NewLine +
                              Environment.NewLine;

            foreach (var item in selectedToHide)
            {
                folderNames += item.FolderName + Environment.NewLine;
            }

            var proceed = App.LastChance("Hide Folders Request", $"Hiding Selected Folders", $"This operation will move these (this) {selectedToHide.Count} folder(s) from the community directory to the hidden directory:" +
                                         folderNames +
                                         Environment.NewLine +
                                         "Is this what you want to do?");

            int count = 0;

            if (proceed)
            {
                var su = Locator.SetupViewModel;
                foreach (var item in selectedToHide)
                {
                    if (FileOps.Hide(item.FolderName, su.CommunityFolder, su.HiddenFilesFolder))
                    {
                        item.IsHidden = true;
                        count++;
                    }
                }

                DbCore.Update(selectedToHide);

                if (count == selectedToHide.Count)
                {
                    App.Inform("Hide Folders Request Results", "All unhidden folders were successfully hidden.");
                }
                else
                {
                    App.Inform("Hide Folders Request Results", $"{selectedToHide.Count - count} folder(s) could not be hidden. Synchronization may be necessary.");
                }
            }
        }
Ejemplo n.º 7
0
        /// <summary> GetAllAgeGroupsByIDs method for getting All AgeGroup Details </summary>
        /// <param name="objects">The objects.</param>
        /// <returns>  List of All AgeGroup Details  </returns>
        ///
        public List <AgeGroup> GetAllAgeGroupsByIDs(List <BusinessObjects.Objects> objects)
        {
            string CSVAgeGroup = string.Join(",", objects.Select(p => p.ID.ToString()));

            CSVAgeGroup = CSVAgeGroup.Trim(',');
            return(DbCore.ReadList <AgeGroup>(SPGetAllAgeGroupsByIDs, Make, ConnectionString, CommandType.StoredProcedure, DbCore.CreateParameter("@AgeGroupsIDs", CSVAgeGroup)));
        }
Ejemplo n.º 8
0
        static void Main(string[] args)
        {
            //to ignore untrusted SSL certificates, linux and mono love it ;)
            ServicePointManager.ServerCertificateValidationCallback = Network.Ssl.Validator;
            Console.CancelKeyPress += Console_CancelKeyPress;
            if (!File.Exists(Config.DbFile) || InitFromCode || args.Length > 0 && args[0] == "init")
            {
                try
                {
                    DbCore.Initialization();
                }
                catch (Exception e)
                {
                    Console.WriteLine("Unknown DBCore exception: " + e.Message + "\n" + e.InnerException);
                }
            }

            Console.WriteLine("Starting Bot...");
            try
            {
                if (!Directory.Exists(Config.DbDirPath))
                {
                    Directory.CreateDirectory(Config.DbDirPath);
                }
                Bot.HockeyBot.Start();
            }
            catch (Exception e)
            {
                Console.WriteLine("Unknown KLHockey Bot exception: " + e.Message + "\n" + e.InnerException);
                Console.WriteLine("Bot will be terminated.");
            }
        }
Ejemplo n.º 9
0
 private void DeleteRowWorkTbl(DbCore db, string SN)
 {
     try
     {
         WorkTable workTable = new WorkTable(db);
         workTable.ExtractRow(SN);
     }
     catch
     {
         //Необязательная операция, добавить в лог программы, если ошибка
     }
 }
Ejemplo n.º 10
0
 private void ClearWorkTable(DbCore db)
 {
     try
     {
         WorkTable workTabl = new WorkTable(db);
         workTabl.ClearTable();
     }
     catch
     {
         //Необязательная операция, добавить в лог программы, если ошибка
     }
 }
Ejemplo n.º 11
0
        protected override void OnClosing(CancelEventArgs e)
        {
            var vm = this.DataContext as FolderViewModel;

            Debug.Assert(vm != null);

            if (!vm.DeleteScheduled)
            {
                DbCore.Update(vm);
            }

            base.OnClosing(e);
        }
Ejemplo n.º 12
0
 private void InpToWorkTable(InpProduct product, DbCore db)
 {
     try
     {
         WorkTable workTabl = new WorkTable(db);
         workTabl.WriteRow(product);
     }
     catch (Exception e)
     {
         string message = e.Message;
         //Необязательная операция, добавить в лог программы, если ошибка
     }
 }
Ejemplo n.º 13
0
 private Result ConnectDb(string path, out DbCore db)
 {
     db = null;
     try
     {
         db = new DbCore(_dbPath);
         db.Connect();
         return(new Result(ResultEnum.No_Error, ""));
     }
     catch (Exception e)
     {
         return(new Result(ResultEnum.Err_connect, e));
     }
 }
Ejemplo n.º 14
0
        private void ToClosedTbl(DbCore db, DateTime dtClosed, DateTime dtOpen, string SN, string dev, string name, int err)
        {
            ClosedTable closedTable;

            if (err == 0)
            {
                closedTable = new ClosedTable("Закрытые", db);
            }
            else
            {
                closedTable = new ClosedTable("Брак", db);
            }
            closedTable.AddProduct(dtClosed, dtOpen, SN, dev, name, err);
        }
Ejemplo n.º 15
0
        /// <summary>
        /// Handles the RestoreFolderRequested event.
        /// </summary>
        /// <param name="sender">The sender<see cref="object"/>.</param>
        /// <param name="e">The e<see cref="EventArgs"/>.</param>
        private void Vm_RestoreFolderRequested(object sender, EventArgs e)
        {
            Debug.Assert(sender is FolderViewModel);
            var vm = sender as FolderViewModel;

            var proceed = App.LastChance("Restore Folder Request", $"Restoring {vm.FolderName}", $"This operation will move {vm.FolderName} from the hidden directory to the community directory. Is this what you want to do?.");
            var su      = Locator.SetupViewModel;

            if (proceed)
            {
                vm.IsHidden = false;
                FileOps.Restore(vm.FolderName, su.CommunityFolder, su.HiddenFilesFolder);
                DbCore.Update(vm);
            }
        }
Ejemplo n.º 16
0
        public void DbCoreSchemaCheck()
        {
            //SETUP
            using (DbCore context = Util.BuildContext())
            {
                CompareEfSql comparer = new CompareEfSql();

                //ATTEMPT
                //This will compare EF Core model of the database with the database that the context's connection points to
                bool hasErrors = comparer.CompareEfWithDb(context);

                //VERIFY
                //The CompareEfWithDb method returns true if there were errors.
                //The comparer.GetAllErrors property returns a string, with each error on a separate line
                hasErrors.ShouldBeFalse(comparer.GetAllErrors);
            }
        }
Ejemplo n.º 17
0
        /// <summary>
        /// The Vm_BrowseZipFileRequested.
        /// </summary>
        /// <param name="sender">The sender<see cref="object"/>.</param>
        /// <param name="e">The e<see cref="EventArgs"/>.</param>
        private void Vm_BrowseZipFileRequested(object sender, EventArgs e)
        {
            var vm = sender as ZipFileViewModel;

            Debug.Assert(vm != null);

            var dia = new OpenFileDialog
            {
                AddExtension     = false,
                CheckFileExists  = true,
                Multiselect      = false,
                Title            = "Find a Plugin Package to Add",
                DereferenceLinks = true,
                Filter           = "Zip files (*.zip, *.7z)|*.zip;*.7z|Exe files (*.exe)|*.exe|All files (*.*)|*.*",
                FilterIndex      = 1,
                InitialDirectory = Locator.SetupViewModel.ZipFilesFolder
            };

            var result = dia.ShowDialog();

            if (result == null || result == false)
            {
                return;
            }

            var fullpath = dia.FileName;
            var filename = Path.GetFileName(fullpath);
            var path     = Path.GetDirectoryName(fullpath);
            var fi       = new FileInfo(fullpath);

            if (vm.Filename != filename || vm.FileDate != fi.CreationTime)
            {
                vm.FileDate  = fi.CreationTime;
                vm.AddedDate = DateTime.Now;
                vm.Filename  = filename;
                vm.FileSize  = fi.Length;
            }

            vm.FilePath = path;

            DbCore.Update(vm);
        }
Ejemplo n.º 18
0
        /// <summary>
        /// Handles the HideFolderRequested event.
        /// </summary>
        /// <param name="sender">The sender<see cref="object"/>.</param>
        /// <param name="e">The e<see cref="EventArgs"/>.</param>
        private void Vm_HideFolderRequested(object sender, EventArgs e)
        {
            Debug.Assert(sender is FolderViewModel);
            var vm = sender as FolderViewModel;

            var proceed = App.LastChance("Hide Folder Request", $"Hiding {vm.FolderName}", $"This operation will move {vm.FolderName} from the community directory to the hidden directory. Is this what you want to do?.");
            var su      = Locator.SetupViewModel;

            if (proceed)
            {
                if (FileOps.Hide(vm.FolderName, su.CommunityFolder, su.HiddenFilesFolder))
                {
                    vm.IsHidden = true;
                    DbCore.Update(vm);
                    return;
                }

                App.Inform("Hide Folder Request Error", $"{vm.FolderName} could not be hidden. Synchronization may be necessary.");
            }
        }
Ejemplo n.º 19
0
        private static void OnAdminCommandMessage(object sender, AdminMessageEventArgs args)
        {
            var command   = args.Command;
            var messageId = args.CurrentPoll.MessageId;
            var chatId    = args.Chat.Id;

            if (command == "admin_init")
            {
                try
                {
                    _db.Disconnect();
                    DbCore.Initialization();
                    _db       = new DbCore();
                    _commands = new CommandProcessor(_bot, _db);
                }
                catch (Exception e)
                {
                    Console.WriteLine("Unknown DBCore exception: " + e.Message + "\n" + e.InnerException);
                }
            }
        }
Ejemplo n.º 20
0
    /// <summary>
    /// 快速执行一不带参数的存储过程
    /// </summary>
    /// <param name="strStoredProcedureName">存储过程名称</param>
    /// <returns>存储过程执行后受影响的行数</returns>
    public static int ExecuteStoredProcedure(string strStoredProcedureName)
    {
        DbCore dbCore = null;

        try
        {
            dbCore = new DbCore(GetDatabaseType(), GetConnectionString());
            dbCore.Open();
            return(dbCore.ExecuteStoredProcedure(strStoredProcedureName));
        }
        catch (Exception ex)
        {
            throw ex;
        }
        finally
        {
            if (dbCore != null)
            {
                dbCore.Close();
            }
        }
    }
Ejemplo n.º 21
0
        /// <summary>
        /// Handles the DeleteSelectedItemsRequested event.
        /// </summary>
        /// <param name="sender">The sender<see cref="object"/>.</param>
        /// <param name="e">The e<see cref="EventArgs"/>.</param>
        private void Vm_DeleteSelectedFoldersRequested(object sender, EventArgs e)
        {
            Debug.Assert(sender is MainViewModel);
            var vm = sender as MainViewModel;

            var selectedToDelete = new List <FolderViewModel>();

            foreach (var item in vm.SelectedFoldersCollection)
            {
                selectedToDelete.Add(item);
            }

            var folderNames = Environment.NewLine +
                              Environment.NewLine;

            foreach (var item in selectedToDelete)
            {
                folderNames += item.FolderName + Environment.NewLine;
            }

            var proceed = App.LastChance("Delete Folders Request", $"Deleting Selected Folders", $"This operation will delete these (this) {selectedToDelete.Count} folder(s) from the community or hidden directories:" +
                                         folderNames +
                                         Environment.NewLine +
                                         "Is this what you want to do?");

            if (proceed)
            {
                var hiddenFolder    = AppSettings.Default.HiddenFilesFolder;
                var communityFolder = AppSettings.Default.CommunityFolder;

                foreach (var item in selectedToDelete)
                {
                    FileOps.Delete(item.FolderName, item.IsHidden ? hiddenFolder : communityFolder);
                    vm.FolderCollection.Remove(item);
                }

                DbCore.Delete(selectedToDelete);
            }
        }
Ejemplo n.º 22
0
        /// <summary>
        /// Initializes a new instance of the <see cref="App"/> class.
        /// </summary>
        public App()
        {
            var vm = Locator.SetupViewModel;

            vm.CommunityFolder           = AppSettings.Default.CommunityFolder;
            vm.ZipFilesFolder            = AppSettings.Default.ZipFilesFolder;
            vm.HiddenFilesFolder         = AppSettings.Default.HiddenFilesFolder;
            vm.LoggingLevel              = (LogLevel)AppSettings.Default.LogLevel;
            vm.LoggingEnabled            = AppSettings.Default.LoggingEnabled;
            vm.CheckForUpdates           = AppSettings.Default.VersionAutoCheck;
            vm.IncludePrereleaseVersions = AppSettings.Default.IncludePrereleaseVersions;

            FileLogProvider.Instance.LogLevel       = vm.LoggingLevel;
            FileLogProvider.Instance.LoggingEnabled = vm.LoggingEnabled;

            var log = FileLogProvider.Instance.GetLogFor <App>();

            log.Info("Wpf.App logging started.");
            log.Info("SetupViewModel initialized.");

            DbCore.Initialize();
        }
Ejemplo n.º 23
0
    /// <summary>
    /// 获取SQL语句执行的第一行第一列的值
    /// </summary>
    /// <param name="strSql">SQL语句</param>
    /// <returns>SQL语句执行的第一行第一列的值</returns>
    public static object ExecuteScalar(string strSql)
    {
        DbCore dbCore = null;
        object obj    = null;

        try
        {
            dbCore = new DbCore(GetDatabaseType(), GetConnectionString());
            dbCore.Open();
            obj = dbCore.ExecuteScalar(strSql);
            dbCore.Close();
            return(obj);
        }
        catch (Exception ex)
        {
            if (dbCore != null)
            {
                dbCore.Close();
            }
            throw ex;
        }
    }
Ejemplo n.º 24
0
 public ProductManager(DbCore db)
 {
     _db = db;
 }
Ejemplo n.º 25
0
    /// <summary>
    /// 通过实体映射及主键条件更新表中一条数据,更新全部字段
    /// </summary>
    /// <param name="dbCore">数据库访问核心类DbCore实例(用于DbCore事务,执行命令先打开(Open)数据库连接)</param>
    /// <returns>执行更新并返回受影响的行数</returns>
    public int UpdateAll(DbCore dbCore)
    {
        ORMap <BaseEntity> ormap = new ORMap <BaseEntity>(this);

        return(ormap.UpdateAll(dbCore));
    }
Ejemplo n.º 26
0
 /// <summary> GetAllAgeGroups method for getting All Age groups </summary>
 /// <returns> List of AllAgeGroups</returns>
 /// <remarks>  </remarks>
 public List <AgeGroup> GetAllAgeGroups()
 {
     return(DbCore.ReadList <AgeGroup>(SPGetAllAgeGroups, Make, ConnectionString, CommandType.StoredProcedure));
 }
Ejemplo n.º 27
0
        /// <summary>
        /// The InstallButtonClick.
        /// </summary>
        /// <param name="sender">The sender<see cref="object"/>.</param>
        /// <param name="e">The e<see cref="RoutedEventArgs"/>.</param>
        private void InstallButtonClick(object sender, RoutedEventArgs e)
        {
            var vm        = DataContext as IArchiveViewModel;
            var directory = vm.SelectedDirectory;

            if (directory.Entries.Any(m => m.WillInstall) == false)
            {
                return;
            }

            var installFolder = Locator.SetupViewModel.CommunityFolder;

            Debug.Assert(string.IsNullOrEmpty(installFolder) == false);

            // var wd = App.WaitDialog("Your selected contents are being installed.");
            IEnumerable <string> installedFolders;

            if (vm.AreAnyCheckedEntriesInstalled(installFolder))
            {
                if (App.LastChance("Overwrite Files?", "This operation will require some files and folders to be overwritten.", "Do you want to do this?", true))
                {
                    // #Note This should on a background thread
                    // wd.Show();
                    installedFolders = vm.InstallCheckedEntries(installFolder, true);
                }
                else
                {
                    return;
                }
            }
            else
            {
                // #Note See note above.
                // wd.Show();
                installedFolders = vm.InstallCheckedEntries(installFolder);
            }

            var mainVm    = Locator.MainViewModel;
            var packageId = vm.PackageId;

            // This will update the DB for the new folders
            foreach (var folderName in installedFolders)
            {
                var fullName    = Path.Combine(installFolder, folderName);
                var di          = new DirectoryInfo(fullName);
                var installDate = di.CreationTime;

                if (mainVm.FolderCollection.Any(e => e.FolderName.ToLower() == folderName.ToLower()))
                {
                    var oldFe = mainVm.FolderCollection.First(e => e.FolderName.ToLower() == folderName.ToLower());
                    oldFe.PackageId = packageId;
                    DbCore.Update(oldFe);
                    continue;
                }

                var newFe = new FolderViewModel()
                {
                    FolderName  = folderName,
                    PackageId   = packageId,
                    InstallDate = installDate
                };

                DbCore.Add(newFe);
                mainVm.FolderCollection.Add(newFe);
            }

            // wd.Close();
            App.Inform("Zip Contents Installed", "The selected contents have been installed in your community folder.");
        }
Ejemplo n.º 28
0
 public ClosedTable(string name, DbCore db) : base(name, db)
 {
 }
Ejemplo n.º 29
0
 /// <summary>
 /// 获取SQL语句执行的第一行第一列的值
 /// </summary>
 /// <param name="dbCore">数据库访问核心类DbCore实例(用于DbCore事务)</param>
 /// <param name="strSql">SQL语句</param>
 /// <returns>SQL语句执行的第一行第一列的值</returns>
 public object GetSqlValue(DbCore dbCore, string strSql)
 {
     return(new ORMap <BaseEntity>(this).GetSqlValue(dbCore, strSql));
 }
Ejemplo n.º 30
0
    /// <summary>
    /// 保存 比较实体(EntitysCodeGenerate生成带数据访问的实体)前后的值,若有与主键记录相同的就更新,没有就插入
    /// 保存所有字段,其中若与实体字段初始值相同则置该字段为空
    /// </summary>
    /// <param name="dbCore">数据库访问核心类DbCore实例(用于DbCore事务,执行命令先打开(Open)数据库连接)</param>
    /// <returns>执行更新或插入数据操作并返回受影响的行数</returns>
    public int SaveEx(DbCore dbCore)
    {
        ORMap <BaseEntity> ormap = new ORMap <BaseEntity>(this);

        return(ormap.SaveEx(dbCore));
    }