Inheritance: MonoBehaviour
        private DataProviderManager()
        {
            dbManager = MovingPicturesCore.DatabaseManager;

            detailSources = new List<DBSourceInfo>();
            coverSources = new List<DBSourceInfo>();
            backdropSources = new List<DBSourceInfo>();
            allSources = new List<DBSourceInfo>();

            sorters = new Dictionary<DataType, DBSourceInfoComparer>();
            sorters[DataType.DETAILS] = new DBSourceInfoComparer(DataType.DETAILS);
            sorters[DataType.COVERS] = new DBSourceInfoComparer(DataType.COVERS);
            sorters[DataType.BACKDROPS] = new DBSourceInfoComparer(DataType.BACKDROPS);

            debugMode = MovingPicturesCore.Settings.DataSourceDebugActive;

            logger.Info("DataProviderManager Starting");
            loadProvidersFromDatabase();

            // if we have already done an initial load, set an internal flag to do updates only
            // when loading internal scripts. We dont want to load in previously deleted scripts
            // during the internal provider loading process.
            updateOnly = MovingPicturesCore.Settings.DataProvidersInitialized;
            LoadInternalProviders();

            updateOnly = false;
            MovingPicturesCore.Settings.DataProvidersInitialized = true;
        }
        public void ComputeMainUserLevel()
        {
            var database = new DatabaseManager().GetDatabase();
            var collection = database                
                .GetCollection<IUser>(typeof(IUser).Name);

            Experience xp = null;
            foreach (var user in collection.FindAll())
            {              
                if(user.ExperiencePoints.ContainsKey("Experience"))
                {
                    xp = user.ExperiencePoints["Experience"];
                }
                else
                {
                    xp = new Experience(user.Name, ".\\Experience\\UserLevel.prop", "User Experience");
                    user.ExperiencePoints.Add("Experience", xp);
                }
                foreach (var exp in user.ExperiencePoints)
                {
                    if (user.ExperiencePoints[exp.Key].LevelPropertiesFile != null
                        && exp.Key != "Experience")
                    {
                        xp.AddPluginExperience(exp.Value);
                    }
                            
                }
                user.ExperiencePoints["Experience"] = xp;
                new DatabaseManager().Update<IUser>(user);
            }


        }
        public override void Execute(string line)
        {
            var databaseManager = new DatabaseManager(Runner.Variables, Runner.QuietMode);

            var match = DatabaseCommandDefinination.Match(line);
            if (match.Success)
            {
                if (Runner.DemoMode) return;

                databaseManager.ExecUpdateCommand(
                    match.Groups["table"].Value,
                    match.Groups["filter"].Value,
                    match.Groups["field"].Value,
                    match.Groups["value"].Value);
                return;
            }

            match = ExecCommandDefinination.Match(line);
            if (match.Success)
            {
                if (Runner.DemoMode) return;

                databaseManager.ExecDatabaseScriptFile(match.Groups["filename"].Value);
                return;
            }

            throw new ScriptException(Runner.ScriptName, Runner.CurrentLine, "Unknown database format:" + line);
        }
        public void Compute()
        {
            var fileprop = ".\\Experience\\UserLevel.prop";
            var users = DatabaseUsers.GetAllUsers();
            var db = new DatabaseManager();
            foreach (var user in users)
            {
                if (!user.ExperiencePoints.ContainsKey(typeof(LanguageExperience).Name))
                {
                    user.ExperiencePoints.Add(typeof(LanguageExperience).Name, null);
                }
                var exp = new LanguageExperience(user.Name, fileprop, "Language Experience");
                exp.AddModel((LanguageBuilder)user.ExtensionPoint["LanguageExtension"]);
                user.ExperiencePoints[typeof(LanguageExperience).Name] = exp;
                

                var builder = (LanguageBuilder)user.ExtensionPoint["LanguageExtension"];

                foreach(var lang in builder.LanguageAttributes)
                {
                    if (!user.ExperiencePoints.ContainsKey(lang.Key))
                    {
                        user.ExperiencePoints.Add(lang.Key, new LanguageExperience(lang.Value.Name, fileprop, lang.Value.Name));
                    }
                    user.ExperiencePoints[lang.Key].AddExperience(builder.LanguageAttributes[lang.Key].Count);
                }

                user.ExperiencePoints.Remove("LanguageExperience");
                db.Update<IUser>(user);

            }
        }
        private DataProviderManager()
        {
            dbManager = mvCentralCore.DatabaseManager;

              trackDetailSources = new List<DBSourceInfo>();
              artistDetailSources = new List<DBSourceInfo>();
              albumDetailSources = new List<DBSourceInfo>();
              trackArtSources = new List<DBSourceInfo>();
              albumArtSources = new List<DBSourceInfo>();
              artistArtSources = new List<DBSourceInfo>();
              allSources = new List<DBSourceInfo>();

              sorters = new Dictionary<DataType, DBSourceInfoComparer>();
              sorters[DataType.TRACKDETAIL] = new DBSourceInfoComparer(DataType.TRACKDETAIL);
              sorters[DataType.ARTISTDETAIL] = new DBSourceInfoComparer(DataType.ARTISTDETAIL);
              sorters[DataType.ALBUMDETAIL] = new DBSourceInfoComparer(DataType.ALBUMDETAIL);
              sorters[DataType.ALBUMART] = new DBSourceInfoComparer(DataType.ALBUMART);
              sorters[DataType.ARTISTART] = new DBSourceInfoComparer(DataType.ARTISTART);
              sorters[DataType.TRACKART] = new DBSourceInfoComparer(DataType.TRACKART);

              debugMode = mvCentralCore.Settings.DataSourceDebugActive;

              logger.Info("DataProviderManager Starting");
              loadProvidersFromDatabase();

              // if we have already done an initial load, set an internal flag to do updates only
              // when loading internal scripts. We dont want to load in previously deleted scripts
              // during the internal provider loading process.
              updateOnly = mvCentralCore.Settings.DataProvidersInitialized;
              LoadInternalProviders();

              updateOnly = false;
              mvCentralCore.Settings.DataProvidersInitialized = true;
        }
        public void SimpleBadgeEarned()
        {
            var plugin = new SVNPlugin();
            new LanguagePlugin().LoadDBMaps();
            plugin.LoadDBMaps();
            plugin.LoadBadges();
            plugin.Analyze();
            plugin.Compute();
            plugin.ComputeBadges();

            var manager = new DatabaseManager();
            var collection = manager.GetDatabase()
                .GetCollection<IUser>(typeof(IUser).Name)
                .FindAll()
                .ToList();

            Assert.AreEqual(1, collection.Count);

            foreach (var user in collection)
            {
                var badges = user.Badges;
                Assert.AreEqual(1, badges.Count);
                foreach (var badge in badges)
                {
                    Assert.AreEqual("Add!", badge.Name);
                }
            }

            
        }
 private void CleanDatabase()
 {
     var dbManager = new DatabaseManager();
     var testDatabase = dbManager.GetDatabase();
     testDatabase.DropCollection(typeof(IUser).Name);
     testDatabase.DropCollection(typeof(SVNRepository).Name);
 }
        public void TestSimplyAnalyze()
        {            
            var dbUsers = new DatabaseUsers();            
            var plugin = new SVNPlugin();
            var plugin2 = new LanguageExtension.LanguagePlugin();
            new LanguageExtension.LanguagePlugin().LoadDBMaps();            
            plugin.LoadDBMaps();
            plugin.Analyze();
            var manager = new DatabaseManager();
            var db = manager.GetDatabase();
            var collection = db.GetCollection<IUser>(typeof(IUser).Name);
            foreach (var user in collection.FindAll())
            {
                Assert.AreEqual(Environment.UserName, user.Name);
                Assert.AreEqual(20, ((SVNModel)user.ExtensionPoint["SVNExtension"]).Add);
                Assert.AreEqual(0, ((SVNModel)user.ExtensionPoint["SVNExtension"]).Modified);
                Assert.AreEqual(0, ((SVNModel)user.ExtensionPoint["SVNExtension"]).Deleted);
            }

            var repos = db.GetCollection<SVNRepository>(typeof(SVNRepository).Name);
            foreach (var repo in repos.FindAll())
            {
                Assert.AreEqual(2, repo.CurrentVersion);
            }
        }
 public static MSPADatabase Initialize(DbConnection existingConnection, bool r, DatabaseManager.DBType dbtype)
 {
     if(dbtype == DatabaseManager.DBType.MYSQL)
         DbConfiguration.SetConfiguration(new MySql.Data.Entity.MySqlEFConfiguration());
     var db = new MSPADatabase(existingConnection, r, dbtype);
     db.Database.Initialize(false);
     return db;
 }
 public MSPADatabase(DbConnection existingConnection, bool r, DatabaseManager.DBType dbtype)
     : base(existingConnection, false)
 {
     isSqlite = dbtype == DatabaseManager.DBType.SQLITE;
     reset = r;
     if (reset)
         Database.SetInitializer<MSPADatabase>(new DropCreateDatabaseAlways<MSPADatabase>());
 }
 public static void Connect()
 {
     _database = new DatabaseManager(ConfigurationManager.Instance.DatabaseHost,
                                    ConfigurationManager.Instance.DatabaseName,
                                     ConfigurationManager.Instance.DatabaseUser,
                                    ConfigurationManager.Instance.DatabasePassword);
     _database.UseProvider();
 }
Exemple #12
0
        public void Configure()
        {
            CommandManager.Instance.Bootstrap(new TestBootstrapper());

            DatabaseManager = new DatabaseManager("Susanoo");

            //By explicitly opening the connection, it becomes a shared connection.
            DatabaseManager.OpenConnection();
        }
Exemple #13
0
    protected void Page_Load(object sender, EventArgs e)
    {
        for (int i = 1; i <= 12; i++)
        {
            ratingDetailsTable.Rows[i].Cells[1].InnerHtml = "<img src=\"Images/arrow.gif\" />"; ratingDetailsTable.Rows[i].Cells[1].Attributes["class"] = "left";
        }

        if (!this.IsPostBack)
        {
            if (Request.QueryString["id"] != null)
            {
                int companyID = int.Parse(Request.QueryString["id"]);
                DatabaseManager db = new DatabaseManager();
                DataSet ratDS = db.GetDataSet("SELECT * FROM MainTable,CompanyRatings WHERE MainTable.CompanyId=" + companyID + " AND CompanyRatings.CompanyRId=" + companyID);
                DataSet revDS = db.GetDataSet("SELECT * FROM Reviews WHERE Reviews.CompanyIDRev=" + companyID);

                string company = (string)ratDS.Tables[0].Rows[0]["CompanyName"];
                int[] ratingInfo = new int[2] { (int)ratDS.Tables[0].Rows[0]["AverageRating"], (int)ratDS.Tables[0].Rows[0]["NumReviews"] };
                int[] indvRating = new int[12] { (int)ratDS.Tables[0].Rows[0]["InterviewAtmosphere"], (int)ratDS.Tables[0].Rows[0]["Recruitment"], (int)ratDS.Tables[0].Rows[0]["LevelOfStress"], (int)ratDS.Tables[0].Rows[0]["PhysicalCondition"], (int)ratDS.Tables[0].Rows[0]["HRPractices"], (int)ratDS.Tables[0].Rows[0]["SalaryBenefits"], (int)ratDS.Tables[0].Rows[0]["Schedule"], (int)ratDS.Tables[0].Rows[0]["Promotion"], (int)ratDS.Tables[0].Rows[0]["Recognition"], (int)ratDS.Tables[0].Rows[0]["SatisfactionLevel"], (int)ratDS.Tables[0].Rows[0]["LifeBalance"], (int)ratDS.Tables[0].Rows[0]["Recommendation"] };
                Session["company"] = company;

                rate.InnerHtml = "<a title=\"Rate " + company + " Now and leave a review.\" class=\"rateBtn\" href=\"SubmitReview/Default.aspx?company=" + company + "\">Rate Now</a>";
                companyName.InnerHtml = "<b>" + company + "</b>";
                companyLogo.Src = "../Images/Logos/logo_" + companyID + ".png";
                rating.setRating(ratingInfo[0]); rating.disable(2);
                numRatings.InnerHtml = " Based On " + ratingInfo[1] + " Ratings.";
                Rating10[] ratCol = new Rating10[12] { dRating1, dRating2, dRating3, dRating4, dRating5, dRating6, dRating7, dRating8, dRating9, dRating10, dRating11, dRating12 };
                for (int i = 0; i < 12; i++)
                { ratCol[i].Visible = true; ratCol[i].setRating(indvRating[i]); ratCol[i].disable(1); }

                if (revDS.Tables[0].Rows.Count != 0)
                {
                    //27 characters.
                    numReviewsTotal.Visible = true; numReviewsTotal.InnerHtml = "Total " + revDS.Tables[0].Rows.Count + " Review(s) Available.<br/><a title=\"View all reviews for " + company + "\" class=\"viewAll\" href=\"View/Reviews.aspx?id=" + ((int)revDS.Tables[0].Rows[0]["Id"]) + "&mode=all&page=1\">View All</a>";
                    int times = revDS.Tables[0].Rows.Count; if (times > 3) times = 3;
                    for (int a = 1; a <= times; a++)
                    {
                        string comment = ((string)revDS.Tables[0].Rows[a - 1]["ReviewText"]);
                        comment.Replace("&apos;", "'");
                        if (comment.Length <= 30)
                        { reviewTable.Rows[(2 * a) - 1].Cells[0].InnerHtml = comment; }
                        else
                        {
                            reviewTable.Rows[(2 * a) - 1].Cells[0].InnerHtml = comment.Substring(0, 30) + "...";
                        }
                        reviewTable.Rows[(2 * a) - 1].Cells[0].InnerHtml += "<br/> <a title=\"Read the full comment\" class=\"more\" href=\"../View/Reviews.aspx?id=" + ((int)revDS.Tables[0].Rows[a - 1]["Id"]) + "\">Read More</a>";
                        reviewTable.Rows[(2 * a) - 1].Cells[0].Attributes["class"] = "border , centerAlign";
                    }
                }
                else
                {
                    reviewTable.Rows[1].Cells[0].InnerHtml = "NO REVIEWS!";
                    reviewTable.Rows[1].Cells[0].Attributes["class"] = "centerAlign";
                }
            }
          }
    }
 void InitializeSyllable()
 {
     db = GameObject.FindGameObjectWithTag(Constants.Tags.DatabaseManager).GetComponent<DatabaseManager>();
     am = GameObject.FindGameObjectWithTag(Constants.Tags.AudioManager).GetComponent<AudioManager>();
     //uic = GameObject.FindObjectOfType<UiController>().GetComponent<UiController>();
     //if (ID == 48)
     //{
     //    return;
     //}
     GetComponent<Image>().sprite = db.GetImage(db.GetSyllable(ID).ImageName);
     //GetComponent<Image>().transform.localScale = new Vector3(1.2f,1.2f,1.2f);
 }
Exemple #15
0
    protected void Page_Load(object sender, EventArgs e)
    {
        // Generates tables
        DatabaseManager dbManager = new DatabaseManager();
        dbManager.GenerateTable("SELECT * FROM tblBird", tblBird);
        dbManager.GenerateTable("SELECT * FROM tblMember", tblMember);
        dbManager.GenerateTable("SELECT * FROM tblBirdMember", tblBirdMember);

        // Required query
        String testQuery = "SELECT tblBird.englishName AS English, tblBird.maoriName AS Maori, tblMember.first AS Firstname, tblMember.last AS Lastname FROM tblBird INNER JOIN tblBirdMember ON tblBird.birdID = tblBirdMember.birdID INNER JOIN tblMember ON tblBirdMember.memberID = tblMember.memberID";
        dbManager.GenerateTable(testQuery, tblTestQuery);
    }
Exemple #16
0
 public void Bind()
 {
     DatabaseManager db = new DatabaseManager();
     if (Cache["CompanyList"] != null)
     {
         lock (Cache["CompanyList"])
         { Cache["CompanyList"] = db.GetUpdatedData(); }
     }
     else
     {
         Cache["CompanyList"] = db.GetUpdatedData();
     }
 }
Exemple #17
0
        /// <summary>
        /// Constructs a new database client with a given handle to a given database proxy.
        /// </summary>
        /// <param name="Handle">The identifier of this database client as an unsigned 32 bit integer.</param>
        /// <param name="pManager">The instance of the DatabaseManager that manages the database proxy of this database client.</param>
        public DatabaseClient(uint Handle, DatabaseManager pManager)
        {
            if (pManager == null)
                throw new ArgumentNullException("pManager");

            mHandle = Handle;
            mManager = pManager;

            mConnection = new MySqlConnection(mManager.CreateConnectionString());
            mCommand = mConnection.CreateCommand();

            UpdateLastActivity();
        }
        public void New_connection_is_not_opened_by_default()
        {
            // Arrange
            var databaseName = $"UnitTestDb-{Guid.NewGuid()}.sqlite";
            var manager = new DatabaseManager(databaseName, Enumerable.Empty<IMigration>());

            // Act
            DbConnection connection = manager.CreateSqliteConnection();

            // Assert
            Assert.True(connection.State == System.Data.ConnectionState.Closed);
            Assert.False(File.Exists(databaseName), "Database was created");
        }
Exemple #19
0
    protected void viewMore_ServerClick(object sender, EventArgs e)
    {
        viewMore.Disabled = true; viewMore.Attributes["class"] = "btnDisable";
        int revId = int.Parse(Request["id"]); DataSet ds;
        DatabaseManager db = new DatabaseManager();
        string query = "SELECT Id, CompanyIDRev FROM Reviews WHERE Reviews.Id=" + revId;
        ds = db.GetDataSet(query);

        int id = (int)ds.Tables[0].Rows[0]["CompanyIDRev"];
        query = "SELECT ReviewText, Id FROM Reviews WHERE Reviews.CompanyIDRev=" + id;
        ds = db.GetDataSet(query); ds.Tables[0].PrimaryKey = new DataColumn[1] {ds.Tables[0].Columns["Id"]};
        FillReviewsTable(ds,revId);
    }
Exemple #20
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!this.IsPostBack)
        {
            Bind();
            string topReviewQuery = "SELECT TOP 4 * FROM Reviews ORDER BY Reviews.CalcRating DESC";
            string topRatedCompanies = "SELECT TOP 4 CompanyRId, AverageRating, CompanyName, CompanyId FROM CompanyRatings, MainTable WHERE CompanyRatings.CompanyRId=MainTable.CompanyId ORDER BY CompanyRatings.AverageRating DESC";
            string recentReviewsQuery = "SELECT TOP 4 ReviewText, Id, DateAdded FROM Reviews ORDER BY DateAdded DESC";

            DatabaseManager db = new DatabaseManager();
            DataSet[] queryRes = new DataSet[3];
            queryRes[0] = db.GetDataSet(topReviewQuery); queryRes[1] = db.GetDataSet(topRatedCompanies);
            queryRes[2] = db.GetDataSet(recentReviewsQuery);
            Rating10[] ratCol = new Rating10[4] {Rating, Rating1, Rating2, Rating3};

            for (int a = 1; a <= queryRes[0].Tables[0].Rows.Count; a++)
            {
                string comment = ((string)queryRes[0].Tables[0].Rows[a-1]["ReviewText"]);
                comment.Replace("&apos;", "'");
                if (comment.Length <= 27)
                  table1in3.Rows[a].Cells[0].InnerHtml = comment;
                else
                  table1in3.Rows[a].Cells[0].InnerHtml = comment.Substring(0, 27) + "...";

                table1in3.Rows[a].Cells[0].InnerHtml += "<br/> <a title=\"Read the full comment\" class=\"more\" href=\"../View/Reviews.aspx?id=" + queryRes[0].Tables[0].Rows[a - 1]["Id"] + "\">Read More</a>";
                table1in3.Rows[a].Cells[0].Attributes["class"] = "border";
            }

            for (int a = 1; a <= queryRes[1].Tables[0].Rows.Count; a++)
            {
                table2in3.Rows[(2 * a) - 1].Cells[0].InnerHtml = "<a title=\"Click here to see detailed ratings for " + (string)queryRes[1].Tables[0].Rows[a - 1]["CompanyName"] + "\" class=\"sideLinks , links\" href=\"CompanyDetails.aspx?id=" + queryRes[1].Tables[0].Rows[a - 1]["CompanyId"] + "\">" + (string)queryRes[1].Tables[0].Rows[a - 1]["CompanyName"] + "</a>";
                ratCol[a - 1].Visible = true; ratCol[a - 1].setRating((int)queryRes[1].Tables[0].Rows[a - 1]["AverageRating"]); ratCol[a - 1].disable(1);
            }

            for (int a = 1; a <= queryRes[2].Tables[0].Rows.Count; a++)
            {
                string comment = ((string)queryRes[2].Tables[0].Rows[a-1]["ReviewText"]);
                comment.Replace("&apos;", "'");
                if (comment.Length <= 27)
                    table3in3.Rows[a].Cells[0].InnerHtml = comment;
                else
                    table3in3.Rows[a].Cells[0].InnerHtml = comment.Substring(0, 27) + "...";

                table3in3.Rows[a].Cells[0].InnerHtml += "<br/> <a title=\"Read the full comment\" class=\"more\" href=\"../View/Reviews.aspx?id=" + queryRes[2].Tables[0].Rows[a - 1]["Id"] + "\">Read More</a>";
                table3in3.Rows[a].Cells[0].Attributes["class"] = "border";
            }

        }
        like_message = Get_Message();
    }
        // Use this for initialization
        void Start()
        {
            _sideKick = GameObject.FindGameObjectWithTag(Constants.Tags.SideKick);
            _sideKickAgent = _sideKick.GetComponent<NavMeshAgent>();
            _sideKickMovement = _sideKick.GetComponent<AiMovement>();
            _player = GameObject.FindGameObjectWithTag(Constants.Tags.Player);
            _sidekickPickupHandler = _sideKick.GetComponent<PickupHandler>();

            var db = GameObject.FindGameObjectWithTag(Constants.Tags.DatabaseManager);
            if (db != null)
                _dbManager = db.GetComponent<DatabaseManager>();
            else
                Debug.Log("No dbmanager in scene!! - Problem?");
        }
        private void manageMoviesButton_Click(object sender, RoutedEventArgs e)
        {
            // RAII.
            DatabaseManager<MovieDatabase> databaseManager = new DatabaseManager<MovieDatabase>(StringConsts.MovieDatabaseLocation);

            MovieDatabase movieDatabase = databaseManager.Locate();

            MovieManagerWindow manageMoviesWindow = new MovieManagerWindow(movieDatabase)
            {
                Topmost = true
            };

            manageMoviesWindow.ShowDialog();
        }
 private void PopulateTable()
 {
     DatabaseManager dm = new DatabaseManager("estimatedDeliveryTime.txt");
     for (int i = 0; i < dm.Count; ++i)
     {
         String s = (String) dm.GetObject(i);
         String[] arr = s.Split('\t');
         foreach (String st in arr)
         {
             TextBox tb = MakeNewTextBox();
             tb.Text = st;
             this.Controls.Add(tb);
         }
     }
 }
        public async Task Open_connection_provides_opened_connection_to_new_database()
        {
            // Arrange
            var manager = new DatabaseManager(databaseName, Enumerable.Empty<IMigration>());

            // Act
            ConnectionState? state = null;
            using (DbConnection connection = await manager.OpenSqliteConnectionAsync())
            {
                state = connection.State;
            }

            // Assert
            Assert.True(state.Value == System.Data.ConnectionState.Open);
            Assert.True(File.Exists(databaseName), "Database was not created");
        }
        public async Task Upgrade_database_configures_migrations()
        {
            // Act
            bool configured = false;
            var completionSource = new TaskCompletionSource<bool>();
            IMigration initialMigration = new InitialDatabaseMigrationMock(() => configured = true, completionSource);
            var manager = new DatabaseManager(databaseName, new IMigration[] { initialMigration });

            // Arrange
            Task upgradeTask = manager.UpgradeDatabase();
            await completionSource.Task;
            await upgradeTask;

            // Assert
            Assert.True(configured);
        }
 public void VerifyAndMerge()
 {         
     var dbManager = new DatabaseManager();
     var database = dbManager.GetDatabase();
     var collection = database.GetCollection<IUser>(typeof(IUser).Name);
     var config = (MapUserConfiguration)ConfigurationManager.GetSection("databasemap");
                   
     foreach (UserMap user in config.Users)
     {
         var names = user.SubNames.Split(',');
         foreach (var name in names)
         {
             var query = Query.EQ("Name", name);                    
             IUser subUser = collection.FindOne(query);                    
             if (subUser != null)
             {
                 query = Query.EQ("Name", user.MainName);
                 IUser mainUser =    collection.FindOne(query);
                 if (mainUser == null)
                 {
                     subUser.Name = user.MainName;
                     mainUser = subUser;
                 }
                 else
                 {
                     foreach (var key in subUser.ExtensionPoint.Keys)
                     {
                         IExtension value = null;
                         if (mainUser.ExtensionPoint.TryGetValue(key, out value))
                         {
                             var merge = value.Merge(subUser.ExtensionPoint[key]);
                             mainUser.ExtensionPoint[key] = merge;
                         }
                         else
                         {
                             mainUser.ExtensionPoint.Add(key, subUser.ExtensionPoint[key]);
                         }
                     }
                 }
                 dbManager.Delete<IUser>(subUser.Id);
                 dbManager.Update<IUser>(mainUser);                        
             }
         }
     }
 }
Exemple #27
0
    protected void Button1_Click(object sender, EventArgs e)
    {
        DatabaseManager dbManager = new DatabaseManager();

        // Gets the ids of the member and bird
        int memberID = Convert.ToInt16(ddlMember.SelectedValue);
        int birdID = Convert.ToInt16(ddlBird.SelectedValue);

        // Adds the record
        dbManager.InsertBirdMemberRecord(birdID, memberID);

        // Feedback to the user
        lbResult.ForeColor = Color.FromArgb(204, 102, 0);
        lbResult.Text = "Sighting added to database";

        // redirects to the Sigthings display to view entry
        Response.Redirect("Sightings.aspx");
    }
 public void SVNWeekendIntegrationEarnedTest()
 {
     new SVNPlugin().LoadDBMaps();
     var db = new DatabaseManager();           
     var svnInfo = new SVNInfo("user1", DateTime.Now, SVNType.Add);
     db.Insert<SVNInfo>(svnInfo);
     svnInfo = new SVNInfo("user1", DateTime.Now.AddDays(1), SVNType.Add);
     db.Insert<SVNInfo>(svnInfo);
     svnInfo = new SVNInfo("user1", DateTime.Now.AddDays(2), SVNType.Add);
     db.Insert<SVNInfo>(svnInfo);
     svnInfo = new SVNInfo("user1", DateTime.Now.AddDays(3), SVNType.Add);
     db.Insert<SVNInfo>(svnInfo);
     svnInfo = new SVNInfo("user1", DateTime.Now.AddDays(4), SVNType.Add);
     db.Insert<SVNInfo>(svnInfo);
     var badge = new SVNWeekendIntegration();
     badge.Compute(null);
     Assert.IsTrue(badge.Gained);
 }
 private void BtnUpdateList(object sender, EventArgs e)
 {
     string ButtonText = (sender as Button).Text;
     
     if (ButtonText == "Software")
     {
         DatabaseManager objDM = new DatabaseManager();
         var dt = objDM.GetSoftware(listComputerName);
         if (dt != null)
         {
             lstItems.Adapter = new DataAdapter(this, dt);
         }
         else
         {
             Toast.MakeText(this, "No records found", ToastLength.Short).Show();
         }            
     }
     else if (ButtonText == "Network")
     {
         DatabaseManager objDM = new DatabaseManager();
         var dt = objDM.GetMultiItemList(listComputerName);
         if (dt != null)
         {
             lstItems.Adapter = new DataAdapterMulti(this, dt);
         }
         else
         {
             Toast.MakeText(this, "No records found", ToastLength.Short).Show();
         }
     }
     else
     {
         DatabaseManager objDM = new DatabaseManager();
         var dt = objDM.GetSingleItemList(listComputerName, ButtonText);
         if (dt != null)
         {
             lstItems.Adapter = new DataAdapterSingle(this, dt);
         }
         else
         {
             Toast.MakeText(this, "No records found", ToastLength.Short).Show();
         }
     }
 }
        private void manageRentsButton_Click(object sender, RoutedEventArgs e)
        {
            /*
                    Initialize new movie management window and
                    present known movies to the user.
             */

            // RAII.
            DatabaseManager<TenantDatabase> databaseManager = new DatabaseManager<TenantDatabase>(StringConsts.TenantDatabaseLocation);

            TenantDatabase tenantDatabase = databaseManager.Locate();

            RentManagerWindow rentManagerWindow = new RentManagerWindow(tenantDatabase)
            {
                Topmost = true
            };

            rentManagerWindow.ShowDialog();
        }
Exemple #31
0
    public int AddItemToInventory <T>(string _itemId, int _quantity = 1) where T : HarvestableData
    {
        if (IsInventoryFull(_itemId, _quantity))
        {
            return(0);
        }

        int returnValue = _quantity;

        InventoryItem itemInInventory = Inventory.Find(x => x.itemData.id == _itemId && x.quantity < GlobalDesigner.maxInventoryStack);
        int           remaining       = _quantity;

        if (itemInInventory != null)
        {
            remaining = itemInInventory.quantity + _quantity - GlobalDesigner.maxInventoryStack;
            itemInInventory.quantity = Mathf.Clamp(itemInInventory.quantity + _quantity, 0, GlobalDesigner.maxInventoryStack);

            while (remaining > 0 && Inventory.Count < GetInventorySize())
            {
                InventoryItem newItem;
                if (remaining > GlobalDesigner.maxInventoryStack)
                {
                    newItem   = new InventoryItem((T)itemInInventory.itemData, GlobalDesigner.maxInventoryStack);
                    remaining = remaining - GlobalDesigner.maxInventoryStack;
                }
                else
                {
                    newItem   = new InventoryItem((T)itemInInventory.itemData, remaining);
                    remaining = 0;
                }
                Inventory.Add(newItem);
            }

            if (Inventory.Count == GetInventorySize())
            {
                returnValue -= remaining;
            }
        }
        else
        {
            remaining = _quantity - GlobalDesigner.maxInventoryStack;

            if (remaining < 0)
            {
                if (Inventory.Count < GetInventorySize())
                {
                    InventoryItem newItem = new InventoryItem(DatabaseManager.GetRowFromId <T>(_itemId), _quantity);
                    Inventory.Add(newItem);
                }
            }
            else
            {
                if (Inventory.Count < GetInventorySize())
                {
                    InventoryItem newItem = new InventoryItem(DatabaseManager.GetRowFromId <T>(_itemId), GlobalDesigner.maxInventoryStack);
                    Inventory.Add(newItem);

                    while (remaining > 0 && Inventory.Count < GetInventorySize())
                    {
                        InventoryItem itemToAdd;
                        if (remaining > GlobalDesigner.maxInventoryStack)
                        {
                            itemToAdd = new InventoryItem(DatabaseManager.GetRowFromId <T>(_itemId), GlobalDesigner.maxInventoryStack);
                            remaining = remaining - GlobalDesigner.maxInventoryStack;
                        }
                        else
                        {
                            itemToAdd = new InventoryItem(DatabaseManager.GetRowFromId <T>(_itemId), remaining);
                            remaining = 0;
                        }
                        Inventory.Add(itemToAdd);
                    }

                    if (Inventory.Count == GetInventorySize())
                    {
                        returnValue -= remaining;
                    }
                }
                else
                {
                    returnValue = 0;
                }
            }
        }

        if (OnUpdateInventoryCallback != null)
        {
            OnUpdateInventoryCallback();
        }

        return(returnValue);
    }
 // GET: api/AllSoilsXMLForApsoil
 //nb. Web API serialises the List of strings into JSON not xml by default.
 //    It is ok though because the strings themselves are still xml
 //    it is only the list itself that is turned into JSON
 public List <string> Get()
 {
     return(DatabaseManager.GetEachSoilsXMLfromDB());
 }
Exemple #33
0
 public void AfterScenario()
 {
     DatabaseManager.Truncate();
     _systemUnderTest.Dispose();
 }
        /// <summary>
        /// Gathers user account details on OS X. Uses dscacheutil.
        /// </summary>
        private void ExecuteOsX()
        {
            Dictionary <string, GroupAccountObject> Groups = new Dictionary <string, GroupAccountObject>();

            // Admin user details
            var result = ExternalCommandRunner.RunExternalCommand("dscacheutil", "-q group -a name admin");

            var lines = result.Split('\n');

            // The fourth line is a list of usernames
            // Formatted like: 'users: root gabe'
            var admins = (lines[3].Split(':')[1]).Split(' ');

            // details for all users
            result = ExternalCommandRunner.RunExternalCommand("dscacheutil", "-q user");

            var accountDetails = new Dictionary <string, UserAccountObject>();

            //  We initialize a new object.  We know by the formatting of
            //  dscacheutil that we will never have a user without the name coming
            //  first, but we don't know the name yet.
            var newUser = new UserAccountObject("");

            foreach (var _line in result.Split('\n'))
            {
                var parts = _line.Split(':');
                if (parts.Length < 2)
                {
                    // There is a blank line separating each grouping of user data
                    continue;
                }
                // There is one space of padding, which we strip off here
                var value = parts[1].Substring(1);

                // dscacheutil prints the user information on multiple lines
                switch (parts[0])
                {
                case "name":
                    accountDetails[value] = new UserAccountObject(value)
                    {
                        AccountType = (admins.Contains(value)) ? "administrator" : "standard",
                        Privileged  = (admins.Contains(value))
                    };
                    newUser = accountDetails[value];

                    break;

                case "password":
                    break;

                case "uid":
                    newUser.UID = value;
                    break;

                case "gid":
                    newUser.GID = value;
                    break;

                case "dir":
                    newUser.HomeDirectory = value;
                    break;

                case "shell":
                    newUser.Shell = value;
                    break;

                case "gecos":
                    newUser.FullName = value;
                    break;

                default:
                    break;
                }
            }
            foreach (var username in accountDetails.Keys)
            {
                // Admin user details
                string groupsRaw = string.Empty;

                try
                {
                    groupsRaw = ExternalCommandRunner.RunExternalCommand("groups", username);
                }
                catch (Exception)
                {
                }

                var groups = groupsRaw.Split(' ');
                foreach (var group in groups)
                {
                    accountDetails[username].Groups.Add(group);
                    if (Groups.ContainsKey(group))
                    {
                        Groups[group].Users.Add(username);
                    }
                    else
                    {
                        Groups[group] = new GroupAccountObject(group);
                        Groups[group].Users.Add(username);
                    }
                }
                accountDetails[username].Groups.AddRange(groups);
                DatabaseManager.Write(accountDetails[username], RunId);
            }
            foreach (var group in Groups)
            {
                DatabaseManager.Write(group.Value, RunId);
            }
        }
Exemple #35
0
 private void searchRadiusTrackBar_Scroll(object sender, EventArgs e)
 {
     searchRadiusLabel.Text = searchRadiusTrackBar.Value.ToString() + " м.";
     addMarks(DatabaseManager.getBankDepartmentsMarks(UserLocation, searchRadiusTrackBar.Value));
 }
Exemple #36
0
        public override void Execute()
        {
            if (!CanRunOnPlatform())
            {
                return;
            }

            Start();
            _ = DatabaseManager.Transaction;

            // On Windows we can use the .NET API to iterate through all the stores.
            if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
            {
                foreach (StoreLocation storeLocation in (StoreLocation[])Enum.GetValues(typeof(StoreLocation)))
                {
                    foreach (StoreName storeName in (StoreName[])Enum.GetValues(typeof(StoreName)))
                    {
                        try
                        {
                            X509Store store = new X509Store(storeName, storeLocation);
                            store.Open(OpenFlags.ReadOnly);

                            foreach (X509Certificate2 certificate in store.Certificates)
                            {
                                var obj = new CertificateObject()
                                {
                                    StoreLocation         = storeLocation.ToString(),
                                    StoreName             = storeName.ToString(),
                                    CertificateHashString = certificate.GetCertHashString(),
                                    Subject = certificate.Subject,
                                    Pkcs12  = certificate.HasPrivateKey ? "redacted" : certificate.Export(X509ContentType.Pkcs12).ToString()
                                };
                                DatabaseManager.Write(obj, this.runId);
                            }
                            store.Close();
                        }
                        catch (Exception e)
                        {
                            Logger.DebugException(e);
                            Telemetry.TrackTrace(Microsoft.ApplicationInsights.DataContracts.SeverityLevel.Error, e);
                        }
                    }
                }
            }
            // On linux we check the central trusted root store (a folder), which has symlinks to actual cert locations scattered across the db
            // We list all the certificates and then create a new X509Certificate2 object for each by filename.
            else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
            {
                try
                {
                    var result = ExternalCommandRunner.RunExternalCommand("ls", new string[] { "/etc/ssl/certs", "-A" });

                    foreach (var _line in result.Split('\n'))
                    {
                        Log.Debug("{0}", _line);
                        try
                        {
                            X509Certificate2 certificate = new X509Certificate2("/etc/ssl/certs/" + _line);

                            var obj = new CertificateObject()
                            {
                                StoreLocation         = StoreLocation.LocalMachine.ToString(),
                                StoreName             = StoreName.Root.ToString(),
                                CertificateHashString = certificate.GetCertHashString(),
                                Subject = certificate.Subject,
                                Pkcs12  = certificate.HasPrivateKey ? "redacted" : certificate.Export(X509ContentType.Pkcs12).ToString()
                            };
                            DatabaseManager.Write(obj, this.runId);
                        }
                        catch (Exception e)
                        {
                            Log.Debug("{0} {1} Issue creating certificate based on /etc/ssl/certs/{2}", e.GetType().ToString(), e.Message, _line);
                            Log.Debug("{0}", e.StackTrace);
                        }
                    }
                }
                catch (Exception e)
                {
                    Log.Error("Failed to dump certificates from 'ls /etc/ssl/certs -A'.");
                    Logger.DebugException(e);
                }
            }
            // On macos we use the keychain and export the certificates as .pem.
            // However, on macos Certificate2 doesn't support loading from a pem,
            // so first we need pkcs12s instead, we convert using openssl, which requires we set a password
            // we import the pkcs12 with all our certs, delete the temp files and then iterate over it the certs
            else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
            {
                try
                {
                    var    result  = ExternalCommandRunner.RunExternalCommand("security", new string[] { "find-certificate", "-ap", "/System/Library/Keychains/SystemRootCertificates.keychain" });
                    string tmpPath = Path.Combine(Directory.GetCurrentDirectory(), "tmpcert.pem");
                    string pkPath  = Path.Combine(Directory.GetCurrentDirectory(), "tmpcert.pk12");

                    File.WriteAllText(tmpPath, result);
                    _ = ExternalCommandRunner.RunExternalCommand("openssl", new string[] { "pkcs12", "-export", "-nokeys", "-out", pkPath, "-passout pass:pass", "-in", tmpPath });

                    X509Certificate2Collection xcert = new X509Certificate2Collection();
                    xcert.Import(pkPath, "pass", X509KeyStorageFlags.DefaultKeySet);

                    File.Delete(tmpPath);
                    File.Delete(pkPath);

                    var X509Certificate2Enumerator = xcert.GetEnumerator();

                    while (X509Certificate2Enumerator.MoveNext())
                    {
                        var obj = new CertificateObject()
                        {
                            StoreLocation         = StoreLocation.LocalMachine.ToString(),
                            StoreName             = StoreName.Root.ToString(),
                            CertificateHashString = X509Certificate2Enumerator.Current.GetCertHashString(),
                            Subject = X509Certificate2Enumerator.Current.Subject,
                            Pkcs12  = X509Certificate2Enumerator.Current.HasPrivateKey? "redacted":X509Certificate2Enumerator.Current.Export(X509ContentType.Pkcs12).ToString()
                        };
                        DatabaseManager.Write(obj, this.runId);
                    }
                }
                catch (Exception e)
                {
                    Log.Error("Failed to dump certificates from 'security' or 'openssl'.");
                    Logger.DebugException(e);
                }
            }

            DatabaseManager.Commit();
            Stop();
        }
            public async Task PreloadOldMessages(ulong channelId, int count = 1000)
            {
                Stopwatch watch = new Stopwatch();

                watch.Start();
                // new column preloaded
                var author = Context.Message.Author;

                if (author.Id != ETHDINFKBot.Program.Owner)
                {
                    Context.Channel.SendMessageAsync("You aren't allowed to run this command", false);
                    return;
                }
                var dbManager     = DatabaseManager.Instance();
                var channel       = Program.Client.GetChannel(channelId) as ISocketMessageChannel;
                var oldestMessage = dbManager.GetOldestMessageAvailablePerChannel(channelId);

                if (oldestMessage == null)
                {
                    return;
                }

                //var messages = channel.GetMessagesAsync(100000).FlattenAsync(); //default is 100

                var messagesFromMsg = await channel.GetMessagesAsync(oldestMessage.Value, Direction.Before, count).FlattenAsync();

                LogManager logManager = new LogManager(dbManager);
                int        success    = 0;
                int        tags       = 0;
                int        newUsers   = 0;

                try
                {
                    foreach (var message in messagesFromMsg)
                    {
                        var dbUser = dbManager.GetDiscordUserById(message.Author.Id);

                        if (dbUser == null)
                        {
                            var user            = message.Author;
                            var socketGuildUser = user as SocketGuildUser;


                            var dbUserNew = dbManager.CreateDiscordUser(new ETHBot.DataLayer.Data.Discord.DiscordUser()
                            {
                                DiscordUserId      = user.Id,
                                DiscriminatorValue = user.DiscriminatorValue,
                                AvatarUrl          = user.GetAvatarUrl(),
                                IsBot     = user.IsBot,
                                IsWebhook = user.IsWebhook,
                                Nickname  = socketGuildUser?.Nickname,
                                Username  = user.Username,
                                JoinedAt  = socketGuildUser?.JoinedAt
                            });

                            if (dbUserNew != null)
                            {
                                newUsers++;
                            }
                        }

                        var newMessage = dbManager.CreateDiscordMessage(new ETHBot.DataLayer.Data.Discord.DiscordMessage()
                        {
                            //Channel = discordChannel,
                            DiscordChannelId = channelId,
                            //DiscordUser = dbAuthor,
                            DiscordUserId    = message.Author.Id,
                            DiscordMessageId = message.Id,
                            Content          = message.Content,
                            //ReplyMessageId = message.Reference.MessageId,
                            Preloaded = true
                        });


                        if (newMessage)
                        {
                            success++;
                        }
                        if (message.Reactions.Count > 0)
                        {
                            if (newMessage && message.Tags.Count > 0)
                            {
                                tags += message.Tags.Count;
                                logManager.ProcessEmojisAndPings(message.Tags, message.Author.Id, message as SocketMessage, message.Author as SocketGuildUser);
                            }
                        }
                    }
                    watch.Stop();

                    Context.Channel.SendMessageAsync($"Processed {messagesFromMsg.Count()} Added: {success} TagsCount: {tags} From: {SnowflakeUtils.FromSnowflake(messagesFromMsg.First()?.Id ?? 1)} To: {SnowflakeUtils.FromSnowflake(messagesFromMsg.Last()?.Id ?? 1)}" +
                                                     $" New Users: {newUsers} In: {watch.ElapsedMilliseconds}ms", false);
                }
                catch (Exception ex)
                {
                }
            }
 public override void Install()
 {
     DatabaseManager.UpgradeDatabase(PluginInfo.SystemName);
 }
Exemple #39
0
 public WitnessController(DatabaseManager db_manager)
 {
     this.db_manager = db_manager;
 }
        public override void Execute()
        {
            if (!this.CanRunOnPlatform())
            {
                return;
            }
            Start();
            _ = DatabaseManager.Transaction;

            RegistryKey SearchKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Default).OpenSubKey("SOFTWARE\\Classes\\CLSID");

            foreach (string SubKeyName in SearchKey.GetSubKeyNames())
            {
                try
                {
                    RegistryKey CurrentKey = SearchKey.OpenSubKey(SubKeyName);

                    var RegObj = RegistryWalker.RegistryKeyToRegistryObject(CurrentKey);

                    ComObject comObject = new ComObject()
                    {
                        Key     = RegObj,
                        Subkeys = new List <RegistryObject>()
                    };

                    foreach (string ComDetails in CurrentKey.GetSubKeyNames())
                    {
                        var ComKey = CurrentKey.OpenSubKey(ComDetails);
                        comObject.Subkeys.Add(RegistryWalker.RegistryKeyToRegistryObject(ComKey));
                    }

                    //Get the information from the InProcServer32 Subkey (for 32 bit)
                    if (comObject.Subkeys.Where(x => x.Key.Contains("InprocServer32")).Count() > 0 && comObject.Subkeys.Where(x => x.Key.Contains("InprocServer32")).First().Values.ContainsKey(""))
                    {
                        comObject.Subkeys.Where(x => x.Key.Contains("InprocServer32")).First().Values.TryGetValue("", out string BinaryPath32);

                        // Clean up cases where some extra spaces are thrown into the start (breaks our permission checker)
                        BinaryPath32 = BinaryPath32.Trim();
                        // Clean up cases where the binary is quoted (also breaks permission checker)
                        if (BinaryPath32.StartsWith("\"") && BinaryPath32.EndsWith("\""))
                        {
                            BinaryPath32 = BinaryPath32.Substring(1, BinaryPath32.Length - 2);
                        }
                        // Unqualified binary name probably comes from Windows\System32
                        if (!BinaryPath32.Contains("\\") && !BinaryPath32.Contains("%"))
                        {
                            BinaryPath32 = Path.Combine(Environment.SystemDirectory, BinaryPath32.Trim());
                        }


                        comObject.x86_Binary     = FileSystemCollector.FileSystemInfoToFileSystemObject(new FileInfo(BinaryPath32.Trim()), true);
                        comObject.x86_BinaryName = BinaryPath32;
                    }
                    // And the InProcServer64 for 64 bit
                    if (comObject.Subkeys.Where(x => x.Key.Contains("InprocServer64")).Count() > 0 && comObject.Subkeys.Where(x => x.Key.Contains("InprocServer64")).First().Values.ContainsKey(""))
                    {
                        comObject.Subkeys.Where(x => x.Key.Contains("InprocServer64")).First().Values.TryGetValue("", out string BinaryPath64);

                        // Clean up cases where some extra spaces are thrown into the start (breaks our permission checker)
                        BinaryPath64 = BinaryPath64.Trim();
                        // Clean up cases where the binary is quoted (also breaks permission checker)
                        if (BinaryPath64.StartsWith("\"") && BinaryPath64.EndsWith("\""))
                        {
                            BinaryPath64 = BinaryPath64.Substring(1, BinaryPath64.Length - 2);
                        }
                        // Unqualified binary name probably comes from Windows\System32
                        if (!BinaryPath64.Contains("\\") && !BinaryPath64.Contains("%"))
                        {
                            BinaryPath64 = Path.Combine(Environment.SystemDirectory, BinaryPath64.Trim());
                        }
                        comObject.x64_Binary     = FileSystemCollector.FileSystemInfoToFileSystemObject(new FileInfo(BinaryPath64.Trim()), true);
                        comObject.x64_BinaryName = BinaryPath64;
                    }

                    DatabaseManager.Write(comObject, runId);
                }
                catch (Exception e)
                {
                    Log.Debug(e, "Couldn't parse {0}", SubKeyName);
                }
            }

            DatabaseManager.Commit();
            Stop();
        }
Exemple #41
0
        //private delegate void SetTextDelegate(ProgressBar pb, double msg);

        public Program()
        {
            dm = new DatabaseManager("PDB");
            ha = new HashAnalyzer();
        }
Exemple #42
0
        public DataTable GetList()
        {
            ArrayList altParams = new ArrayList();

            return(DatabaseManager.GetInstance().ExecuteStoredProcedureDataTable("usp_PhotoGallery_getall", altParams));
        }
Exemple #43
0
 public async Task CacheTrackUnlove(string artist, string track)
 {
     await DatabaseManager.UpdateFavoriteAsync("track.unlove", artist, track);
 }
 public CharacterSearchPopup(DatabaseManager dbManager, Anime anime, Action <Character> setCharacterCallback)
 {
     BindingContext        = new CharacterSearchPopupViewModel(dbManager, anime);
     mSetCharacterCallback = setCharacterCallback;
     InitializeComponent();
 }
            public async Task GetChannelInfoAsync(bool all = false)
            {
                var guildUser = Context.Message.Author as SocketGuildUser;
                var author    = Context.Message.Author;

                if (!(author.Id == ETHDINFKBot.Program.Owner || guildUser.GuildPermissions.ManageChannels))
                {
                    Context.Channel.SendMessageAsync("You aren't allowed to run this command", false);
                    return;
                }

                if (Context.Message.Channel is SocketGuildChannel guildChannel)
                {
                    if (!all)
                    {
                        var channelInfo = DatabaseManager.Instance().GetChannelSetting(guildChannel.Id);
                        var botSettings = DatabaseManager.Instance().GetBotSettings();

                        if (channelInfo == null)
                        {
                            Context.Channel.SendMessageAsync("channelInfo is null bad admin", false);
                            return;
                        }

                        EmbedBuilder builder = new EmbedBuilder();
                        builder.WithTitle($"Channel Info for {guildChannel.Name}");
                        builder.WithDescription($"Global Channel position lock active: {botSettings.ChannelOrderLocked} for " +
                                                $"{(botSettings.ChannelOrderLocked ? Program.ChannelPositions.Count : -1)} channels");
                        builder.WithColor(255, 0, 0);
                        builder.WithThumbnailUrl(Program.Client.CurrentUser.GetAvatarUrl());

                        builder.WithCurrentTimestamp();

                        builder.AddField("Permission flag", channelInfo.ChannelPermissionFlags);

                        foreach (BotPermissionType flag in Enum.GetValues(typeof(BotPermissionType)))
                        {
                            var hasFlag = ((BotPermissionType)channelInfo.ChannelPermissionFlags).HasFlag(flag);
                            builder.AddField(flag.ToString() + $" ({(int)flag})", $"```diff\r\n{(hasFlag ? "+ YES" : "- NO")}```", true);
                        }


                        Context.Channel.SendMessageAsync("", false, builder.Build());
                    }
                    else
                    {
                        var botChannelSettings = DatabaseManager.Instance().GetAllChannelSettings();

                        List <string> header = new List <string>()
                        {
                            "Channel Id",
                            "Channel Name",
                            "Permission value",
                            "Permission string",
                            "Preload old",
                            "Preload new",
                            "Reached oldest"
                        };


                        List <List <string> > data = new List <List <string> >();


                        foreach (var channelSetting in botChannelSettings)
                        {
                            List <string> channelInfoRow = new List <string>();

                            var discordChannel = DatabaseManager.Instance().GetDiscordChannel(channelSetting.DiscordChannelId);

                            if (discordChannel.DiscordServerId != guildChannel.Guild.Id)
                            {
                                break; // dont show other server
                            }
                            channelInfoRow.Add(discordChannel.DiscordChannelId.ToString());
                            channelInfoRow.Add(discordChannel.ChannelName);
                            channelInfoRow.Add(channelSetting.ChannelPermissionFlags.ToString());
                            List <string> permissionFlagNames = new List <string>();
                            foreach (BotPermissionType flag in Enum.GetValues(typeof(BotPermissionType)))
                            {
                                var hasFlag = ((BotPermissionType)(channelSetting.ChannelPermissionFlags)).HasFlag(flag);

                                if (hasFlag)
                                {
                                    permissionFlagNames.Add($"{flag} ({(int)flag})");
                                }
                            }

                            channelInfoRow.Add(string.Join(", " + Environment.NewLine, permissionFlagNames));
                            channelInfoRow.Add(channelSetting.OldestPostTimePreloaded?.ToString());
                            channelInfoRow.Add(channelSetting.NewestPostTimePreloaded?.ToString());
                            channelInfoRow.Add(channelSetting.ReachedOldestPreload.ToString());
                            data.Add(channelInfoRow);
                        }

                        var drawTable = new DrawTable(header, data, "");

                        var stream = await drawTable.GetImage();

                        if (stream == null)
                        {
                            return;// todo some message
                        }
                        await Context.Channel.SendFileAsync(stream, "graph.png", "", false, null, null, false, null, new Discord.MessageReference(Context.Message.Id));

                        stream.Dispose();
                    }
                }
            }
        public override void ExecuteCommand(EvtChatCommandArgs args)
        {
            List <string> arguments = args.Command.ArgumentsAsList;

            if (arguments.Count != 1)
            {
                QueueMessage(UsageMessage);
                return;
            }

            //Start off getting the credits name
            string creditsName    = DataHelper.GetCreditsName();
            string userName       = args.Command.ChatMessage.Username;
            long   curUserCredits = 0;

            using (BotDBContext context = DatabaseManager.OpenContext())
            {
                //Get the user
                User user = DataHelper.GetUserNoOpen(userName, context);

                if (user == null)
                {
                    QueueMessage("You're somehow not in the database!");
                    return;
                }

                //Can't play without the ability
                if (user.HasEnabledAbility(PermissionConstants.SLOTS_ABILITY) == false)
                {
                    QueueMessage("You don't have the ability to play the slots!");
                    return;
                }

                //Check for opt-out
                if (user.IsOptedOut == true)
                {
                    QueueMessage("You cannot play the slots while opted out of stats.");
                    return;
                }

                curUserCredits = user.Stats.Credits;
            }

            string buyInStr = arguments[0];

            //If the user asks for info, print the infom essage
            if (buyInStr == INFO_ARG)
            {
                PrintInfoMessage();
                return;
            }

            //Validate argument
            if (long.TryParse(buyInStr, out long buyInAmount) == false)
            {
                QueueMessage(UsageMessage);
                return;
            }

            if (buyInAmount <= 0)
            {
                QueueMessage("Buy-in amount must be greater than 0!");
                return;
            }

            if (buyInAmount > curUserCredits)
            {
                QueueMessage($"Buy-in amount is greater than {creditsName.Pluralize(false, 0)}!");
                return;
            }

            //Roll the slots!
            StringBuilder strBuilder = new StringBuilder(128);

            strBuilder.Append('(').Append(' ');

            SlotInternalNames[] slotsChosen = new SlotInternalNames[WeightTable.Count];
            int i = 0;

            foreach (KeyValuePair <int, List <ReelWeight> > weight in WeightTable)
            {
                SlotInternalNames chosenSlot = ChooseSlot(weight.Value);
                slotsChosen[i] = chosenSlot;

                strBuilder.Append(SlotToEmoteMap[chosenSlot]).Append(' ').Append('|').Append(' ');

                i++;
            }

            strBuilder.Remove(strBuilder.Length - 3, 3);
            strBuilder.Append(' ').Append(')').Append(" = ");

            //Evaluate the reward based on what we got
            double rewardModifier = EvaluateReward(slotsChosen, out SlotResults slotResult);

            //Intentionally floor the reward - slots are like that :P
            long reward = (long)(buyInAmount * rewardModifier);

            //Change the message based on the result
            switch (slotResult)
            {
            case SlotResults.Nothing:
                strBuilder.Append(userName).Append(" didn't win BibleThump Better luck next time!");
                break;

            case SlotResults.Standard:
                strBuilder.Append(userName).Append(" won ").Append(reward).Append(' ').Append(creditsName.Pluralize(false, reward)).Append(", nice! SeemsGood");
                break;

            case SlotResults.Jackpot:
                strBuilder.Append(userName).Append(" hit the JACKPOT and won ").Append(reward).Append(' ').Append(creditsName.Pluralize(false, reward)).Append("!! Congratulations!! PogChamp PogChamp PogChamp");
                break;
            }

            using (BotDBContext context = DatabaseManager.OpenContext())
            {
                //Modify credits
                User user = DataHelper.GetUserNoOpen(userName, context);

                //Adjust credits and save
                user.Stats.Credits -= buyInAmount;
                user.Stats.Credits += reward;

                context.SaveChanges();
            }

            QueueMessage(strBuilder.ToString());
        }
        public async Task EmoteDump()
        {
            var author = Context.Message.Author;

            if (author.Id != ETHDINFKBot.Program.Owner)
            {
                await Context.Channel.SendMessageAsync("You aren't allowed to run this command", false);

                return;
            }

            var allEmotes = DatabaseManager.Instance().GetEmotes().OrderBy(i => i.DiscordEmoteId).ToList(); // sort it to ensure they are chronologically in there

            await Context.Channel.SendMessageAsync($"Successfully retreived {allEmotes.Count} emotes", false);

            var emotesPath  = Path.Combine(Program.BasePath, "Emotes");
            var archivePath = Path.Combine(emotesPath, "Archive");

            try
            {
                // If the directory exists clean it up
                if (Directory.Exists(archivePath))
                {
                    Directory.Delete(archivePath, true);
                }

                // Create dir
                Directory.CreateDirectory(archivePath);

                List <EmoteInfo> emoteInfos = new List <EmoteInfo>();

                foreach (var emote in allEmotes)
                {
                    var folder = GetEmoteFolder(emote.LocalPath);
                    emoteInfos.Add(new EmoteInfo()
                    {
                        Id        = emote.DiscordEmoteId,
                        Name      = emote.EmoteName,
                        Animated  = emote.Animated,
                        CreatedAt = emote.CreatedAt,
                        Url       = emote.Url,
                        Folder    = folder
                    });
                }

                var emoteFolders = Directory.GetDirectories(emotesPath);

                foreach (var emoteFolder in emoteFolders.ToList().OrderBy(i => i))
                {
                    // Needs to contain - else its not an active folder
                    if (emoteFolder.Contains("-"))
                    {
                        string tarGZFile = $"{new DirectoryInfo(emoteFolder).Name}.tar.gz";
                        CreateTarGZ(Path.Combine(archivePath, tarGZFile), emoteFolder);
                    }
                }

                var archiveFiles = Directory.GetFiles(archivePath);
                await Context.Channel.SendMessageAsync($"Created {archiveFiles.Length} archives", false);

                // Send file infos

                var json   = JsonConvert.SerializeObject(emoteInfos, Formatting.Indented);
                var stream = new MemoryStream(Encoding.UTF8.GetBytes(json));
                await Context.Channel.SendFileAsync(stream, "EmoteInfo.json", "Emote Infos");

                foreach (var archiveFile in archiveFiles.ToList().OrderBy(i => i))
                {
                    await Context.Channel.SendFileAsync(archiveFile, new DirectoryInfo(archiveFile).Name);
                }

                // In the end clean up the archive folder again
                if (Directory.Exists(archivePath))
                {
                    Directory.Delete(archivePath, true);
                }

                await Context.Channel.SendMessageAsync($"Done", false);
            }
            catch (Exception ex)
            {
                string error = $"Error: {ex.ToString()}";
                await Context.Channel.SendMessageAsync(error.Substring(0, Math.Min(2000, error.Length)), false);
            }
        }
        public static List <DCMemo> GetDCMemo(string criteria, int branchID)
        {
            var dbUtil  = new DatabaseManager();
            var dcMemos = new List <DCMemo>();

            using (var conn = new SqlConnection(dbUtil.getSQLConnectionString("MainDB")))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandType    = CommandType.StoredProcedure;
                    cmd.CommandText    = "spAcctDCMGetDebitCreditMemo";
                    cmd.CommandTimeout = 180;
                    cmd.Parameters.Clear();
                    cmd.Parameters.AddWithValue("@strCriteria", criteria);
                    cmd.Parameters.AddWithValue("@intBranchID", branchID);

                    using (SqlDataReader reader = cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            var drcrMemo = new DCMemo
                            {
                                DCMemoID            = ReferenceEquals(reader["intDCMemoID"], DBNull.Value) ? 0 : Convert.ToInt32(reader["intDCMemoID"]),
                                BranchID            = ReferenceEquals(reader["intBranchID"], DBNull.Value) ? 0 : Convert.ToInt32(reader["intBranchID"]),
                                ReceivingBranchID   = ReferenceEquals(reader["intReceivingBranchID"], DBNull.Value) ? 0 : Convert.ToInt32(reader["intReceivingBranchID"]),
                                OriginatingBranchID = ReferenceEquals(reader["intOriginatingBranchID"], DBNull.Value) ? 0 : Convert.ToInt32(reader["intOriginatingBranchID"]),
                                BranchName          = ReferenceEquals(reader["strBranchName"], DBNull.Value) ? String.Empty : Convert.ToString(reader["strBranchName"]),
                                AdjustmentTypeID    = ReferenceEquals(reader["intAdjustmentTypeID"], DBNull.Value) ? 0 : Convert.ToInt32(reader["intAdjustmentTypeID"]),
                                AdjustmentType      = ReferenceEquals(reader["strAdjustmentType"], DBNull.Value) ? String.Empty : Convert.ToString(reader["strAdjustmentType"]),
                                MemoType            = ReferenceEquals(reader["strMemoType"], DBNull.Value) ? String.Empty : Convert.ToString(reader["strMemoType"]),
                                AdjustmentDate      = ReferenceEquals(reader["datAdjustmentDate"], DBNull.Value) ? String.Empty : Convert.ToString(reader["datAdjustmentDate"]),
                                AdjustmentNo        = ReferenceEquals(reader["strAdjustmentNo"], DBNull.Value) ? String.Empty : Convert.ToString(reader["strAdjustmentNo"]),
                                Remarks             = ReferenceEquals(reader["strRemarks"], DBNull.Value) ? String.Empty : Convert.ToString(reader["strRemarks"]),

                                SaleID       = ReferenceEquals(reader["intSaleID"], DBNull.Value) ? 0 : Convert.ToInt32(reader["intSaleID"]),
                                ProductID    = ReferenceEquals(reader["intIDMCStock"], DBNull.Value) ? 0 : Convert.ToInt32(reader["intIDMCStock"]),
                                AccountCode  = ReferenceEquals(reader["strAccountCode"], DBNull.Value) ? String.Empty : Convert.ToString(reader["strAccountCode"]),
                                CustomerName = ReferenceEquals(reader["strCustomerName"], DBNull.Value) ? String.Empty : Convert.ToString(reader["strCustomerName"]),
                                DRNo         = ReferenceEquals(reader["intDRNo"], DBNull.Value) ? 0 : Convert.ToInt32(reader["intDRNo"]),
                                ORNo         = ReferenceEquals(reader["intORNo"], DBNull.Value) ? 0 : Convert.ToInt32(reader["intORNo"]),
                                RRNo         = ReferenceEquals(reader["intRRNo"], DBNull.Value) ? 0 : Convert.ToInt32(reader["intRRNo"]),
                                ADBNo        = ReferenceEquals(reader["intADBNo"], DBNull.Value) ? 0 : Convert.ToInt32(reader["intADBNo"]),
                                SINo         = ReferenceEquals(reader["strSINo"], DBNull.Value) ? String.Empty : Convert.ToString(reader["strSINo"]),
                                SIStatusID   = ReferenceEquals(reader["intSIStatusID"], DBNull.Value) ? 0 : Convert.ToInt32(reader["intSIStatusID"]),
                                SIStatus     = ReferenceEquals(reader["strSIStatus"], DBNull.Value) ? String.Empty : Convert.ToString(reader["strSIStatus"]),
                                AmountAdjust = ReferenceEquals(reader["curAmountAdjust"], DBNull.Value) ? 0 : Convert.ToDecimal(reader["curAmountAdjust"]),

                                SIDate = ReferenceEquals(reader["datSIDate"], DBNull.Value) ? String.Empty : Convert.ToString(reader["datSIDate"]),
                                //NewFirstDueDate = ReferenceEquals(reader["datNewFirstDueDate"], DBNull.Value) ? String.Empty : Convert.ToString(reader["datNewFirstDueDate"]),
                                Rebate            = ReferenceEquals(reader["curRebate"], DBNull.Value) ? 0 : Convert.ToDecimal(reader["curRebate"]),
                                Penalty           = ReferenceEquals(reader["curPenalty"], DBNull.Value) ? 0 : Convert.ToDecimal(reader["curPenalty"]),
                                TotalAmountAdjust = ReferenceEquals(reader["curTotalAmountAdjust"], DBNull.Value) ? 0 : Convert.ToDecimal(reader["curTotalAmountAdjust"]),

                                NewTerm            = ReferenceEquals(reader["intNewTerm"], DBNull.Value) ? 0 : Convert.ToInt32(reader["intNewTerm"]),
                                NewMI              = ReferenceEquals(reader["curNewMI"], DBNull.Value) ? 0 : Convert.ToDecimal(reader["curNewMI"]),
                                NewPN              = ReferenceEquals(reader["curNewPN"], DBNull.Value) ? 0 : Convert.ToDecimal(reader["curNewPN"]),
                                NewUII             = ReferenceEquals(reader["curNewUII"], DBNull.Value) ? 0 : Convert.ToDecimal(reader["curNewUII"]),
                                DeferredBalance    = ReferenceEquals(reader["curDeferredBalance"], DBNull.Value) ? 0 : Convert.ToDecimal(reader["curDeferredBalance"]),
                                NewProductStatusID = ReferenceEquals(reader["intIDMasNewProductStatus"], DBNull.Value) ? 0 : Convert.ToInt32(reader["intIDMasNewProductStatus"]),

                                NewCustomerID      = ReferenceEquals(reader["intMasNewCustomer"], DBNull.Value) ? 0 : Convert.ToInt32(reader["intMasNewCustomer"]),
                                NewCustomerCode    = ReferenceEquals(reader["strNewCustomerCode"], DBNull.Value) ? String.Empty : Convert.ToString(reader["strNewCustomerCode"]),
                                NewCustomerName    = ReferenceEquals(reader["strNewCustomerName"], DBNull.Value) ? String.Empty : Convert.ToString(reader["strNewCustomerName"]),
                                NewCustomerAddress = ReferenceEquals(reader["strNewCustomerAddr"], DBNull.Value) ? String.Empty : Convert.ToString(reader["strNewCustomerAddr"]),
                                ChangedDueDate     = ReferenceEquals(reader["datNewDueDate"], DBNull.Value) ? String.Empty : Convert.ToString(reader["datNewDueDate"]),

                                CorrectSaleID      = ReferenceEquals(reader["intCorrectSalesID"], DBNull.Value) ? 0 : Convert.ToInt32(reader["intCorrectSalesID"]),
                                CorrectAccountCode = ReferenceEquals(reader["strCorrectAccountCode"], DBNull.Value) ? String.Empty : Convert.ToString(reader["strCorrectAccountCode"]),
                                CorrectCustName    = ReferenceEquals(reader["strCorrectCustName"], DBNull.Value) ? String.Empty : Convert.ToString(reader["strCorrectCustName"]),

                                WrongAccountCode = ReferenceEquals(reader["strWrongAccountCode"], DBNull.Value) ? String.Empty : Convert.ToString(reader["strWrongAccountCode"]),
                                WrongCustName    = ReferenceEquals(reader["strWrongCustName"], DBNull.Value) ? String.Empty : Convert.ToString(reader["strWrongCustName"]),

                                InvMCStockOldID = ReferenceEquals(reader["intIDInvMCStockOld"], DBNull.Value) ? 0 : Convert.ToInt32(reader["intIDInvMCStockOld"]),
                                OldChassisNo    = ReferenceEquals(reader["strOldChassisNo"], DBNull.Value) ? String.Empty : Convert.ToString(reader["strOldChassisNo"]),
                                OldEngineNo     = ReferenceEquals(reader["strOldEngineNo"], DBNull.Value) ? String.Empty : Convert.ToString(reader["strOldEngineNo"]),

                                InvMCStockNewID = ReferenceEquals(reader["intIDInvMCStockNew"], DBNull.Value) ? 0 : Convert.ToInt32(reader["intIDInvMCStockNew"]),
                                NewChassisNo    = ReferenceEquals(reader["strNewChassisNo"], DBNull.Value) ? String.Empty : Convert.ToString(reader["strNewChassisNo"]),
                                NewEngineNo     = ReferenceEquals(reader["strNewEngineNo"], DBNull.Value) ? String.Empty : Convert.ToString(reader["strNewEngineNo"]),

                                MCModelName = ReferenceEquals(reader["strMCModel"], DBNull.Value) ? String.Empty : Convert.ToString(reader["strMCModel"]),

                                BankInvdSubsidiaryID = ReferenceEquals(reader["intIDMasCOABankInvdSubsidiary"], DBNull.Value) ? 0 : Convert.ToInt32(reader["intIDMasCOABankInvdSubsidiary"]),
                                OldNR                          = ReferenceEquals(reader["curOldNR"], DBNull.Value) ? 0 : Convert.ToDecimal(reader["curOldNR"]),
                                NDD                            = ReferenceEquals(reader["NDD"], DBNull.Value) ? String.Empty : Convert.ToString(reader["NDD"]),
                                NLCP                           = ReferenceEquals(reader["NLCP"], DBNull.Value) ? 0 : Convert.ToDecimal(reader["NLCP"]),
                                Balance                        = ReferenceEquals(reader["curBalance"], DBNull.Value) ? 0 : Convert.ToDecimal(reader["curBalance"]),
                                NR                             = ReferenceEquals(reader["curNR"], DBNull.Value) ? 0 : Convert.ToDecimal(reader["curNR"]),
                                LCP                            = ReferenceEquals(reader["curLCP"], DBNull.Value) ? 0 : Convert.ToDecimal(reader["curLCP"]),
                                RNLCP                          = ReferenceEquals(reader["curRNLCP"], DBNull.Value) ? 0 : Convert.ToDecimal(reader["curRNLCP"]),
                                SRP                            = ReferenceEquals(reader["curSRP"], DBNull.Value) ? 0 : Convert.ToDecimal(reader["curSRP"]),
                                APVal                          = ReferenceEquals(reader["curAP"], DBNull.Value) ? 0 : Convert.ToDecimal(reader["curAP"]),
                                datMTDate                      = ReferenceEquals(reader["datMTDate"], DBNull.Value) ? String.Empty : Convert.ToString(reader["datMTDate"]),
                                intReason                      = ReferenceEquals(reader["intReason"], DBNull.Value) ? 0 : Convert.ToInt32(reader["intReason"]),
                                Particulars                    = ReferenceEquals(reader["strParticulars"], DBNull.Value) ? String.Empty : Convert.ToString(reader["strParticulars"]),
                                intIDMasEmployeeCCO            = ReferenceEquals(reader["intIDMasEmployeeCCO"], DBNull.Value) ? 0 : Convert.ToInt32(reader["intIDMasEmployeeCCO"]),
                                strMasEmployeeCCO              = ReferenceEquals(reader["strMasEmployeeCCO"], DBNull.Value) ? String.Empty : Convert.ToString(reader["strMasEmployeeCCO"]),
                                intIDAcctAccountAdjustmentForm = ReferenceEquals(reader["intIDAcctAccountAdjustmentForm"], DBNull.Value) ? 0 : Convert.ToInt32(reader["intIDAcctAccountAdjustmentForm"]),
                                strAAFDescription              = ReferenceEquals(reader["strAAFDescription"], DBNull.Value) ? String.Empty : Convert.ToString(reader["strAAFDescription"]),
                                curOB                          = ReferenceEquals(reader["curOB"], DBNull.Value) ? 0 : Convert.ToDecimal(reader["curOB"]),
                                intIDMasRepoCategory           = ReferenceEquals(reader["intIDMasRepoCategory"], DBNull.Value) ? false : Convert.ToBoolean(reader["intIDMasRepoCategory"]),
                                curPercentageRate              = ReferenceEquals(reader["curPercentageRate"], DBNull.Value) ? 0 : Convert.ToDecimal(reader["curPercentageRate"]),
                                strRequestStatus               = ReferenceEquals(reader["strRequestStatus"], DBNull.Value) ? String.Empty : Convert.ToString(reader["strRequestStatus"]),
                            };

                            dcMemos.Add(drcrMemo);
                        }

                        return(dcMemos);
                    }
                }
            }
        }
 public TracingDatabaseAppender(string connStr, bool enabled)
 {
     Enabled    = enabled;
     _db        = DatabaseManager.GetDatabase(IICDbType.SqlServer2005, connStr);
     _protector = new RetryProtector("TracingDatabaseAppender", new int[] { 0, 10, 30, 300 });
 }
Exemple #50
0
 public SubmissionManager(DatabaseManager database) : base(database)
 {
 }
        /// <summary>
        /// Executes the UserAccountCollector on Windows. Uses WMI to gather local users.
        /// </summary>
        public void ExecuteWindows()
        {
            Dictionary <string, UserAccountObject>  users  = new Dictionary <string, UserAccountObject>();
            Dictionary <string, GroupAccountObject> groups = new Dictionary <string, GroupAccountObject>();

            GroupAccountObject?GetGroup(string groupName)
            {
                //Get the group details
                if (!groups.ContainsKey($"{Environment.MachineName}\\{groupName}"))
                {
                    SelectQuery query = new SelectQuery("SELECT * FROM Win32_Group where Name='" + groupName + "' AND Domain='" + Environment.MachineName + "'");
                    using ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);

                    // TODO: Improve this
                    foreach (ManagementObject gmo in searcher.Get())
                    {
                        return(new GroupAccountObject(groupName)
                        {
                            Caption = Convert.ToString(gmo["Caption"], CultureInfo.InvariantCulture),
                            Description = Convert.ToString(gmo["Description"], CultureInfo.InvariantCulture),
                            InstallDate = Convert.ToString(gmo["InstallDate"], CultureInfo.InvariantCulture),
                            Status = Convert.ToString(gmo["Status"], CultureInfo.InvariantCulture),
                            LocalAccount = Convert.ToBoolean(gmo["LocalAccount"], CultureInfo.InvariantCulture),
                            SID = Convert.ToString(gmo["SID"], CultureInfo.InvariantCulture),
                            SIDType = Convert.ToInt32(gmo["SIDType"], CultureInfo.InvariantCulture),
                            Domain = Convert.ToString(gmo["Domain"], CultureInfo.InvariantCulture),
                        });
                    }
                }
                else
                {
                    return(groups[$"{Environment.MachineName}\\{groupName}"]);
                }
                return(null);
            }

            try
            {
                List <string> lines = new List <string>(ExternalCommandRunner.RunExternalCommand("net", "localgroup").Split('\n'));

                lines.RemoveRange(0, 4);

                foreach (string line in lines)
                {
                    if (line.Contains('*'))
                    {
                        var groupName = line.Substring(1).Trim();
                        var group     = GetGroup(groupName);

                        if (group != null)
                        {
                            group.Users = new List <string>();

                            //Get the members of the group
                            var           args      = $"/Node:\"{Environment.MachineName}\" path win32_groupuser where (groupcomponent=\"win32_group.name=\\\"{groupName}\\\",domain=\\\"{Environment.MachineName}\\\"\")";
                            List <string> lines_int = new List <string>(ExternalCommandRunner.RunExternalCommand("wmic", args).Split('\n'));
                            lines_int.RemoveRange(0, 1);

                            foreach (string line_int in lines_int)
                            {
                                var userName = line_int.Trim();
                                if (string.IsNullOrEmpty(userName) || !userName.Contains("Domain"))
                                {
                                    continue;
                                }
                                else
                                {
                                    Regex r = new Regex(@".*Win32_UserAccount.Domain=""(.*?)"",Name=""(.*?)""");

                                    var domain = r.Match(userName).Groups[1].Value;
                                    userName = r.Match(userName).Groups[2].Value;

                                    if (string.IsNullOrEmpty(userName))
                                    {
                                        continue;
                                    }

                                    Log.Verbose("Found {0}\\{1} as member of {2}", domain, userName, groupName);
                                    if (!group.Users.Contains($"{domain}\\{userName}"))
                                    {
                                        group.Users.Add($"{domain}\\{userName}");
                                    }

                                    var query = new SelectQuery($"SELECT * FROM Win32_UserAccount where Domain='{domain}' and Name='{userName}'");
                                    using var searcher = new ManagementObjectSearcher(query);
                                    foreach (ManagementObject user in searcher.Get())
                                    {
                                        if (users.ContainsKey(userName))
                                        {
                                            if (!users[userName].Groups.Contains($"{domain}\\{groupName}"))
                                            {
                                                users[userName].Groups.Add(groupName);
                                            }

                                            if (groupName.Equals("Administrators"))
                                            {
                                                users[userName].Privileged = true;
                                            }
                                        }
                                        else
                                        {
                                            var name = Convert.ToString(user["Name"], CultureInfo.InvariantCulture);
                                            if (name is string UserName)
                                            {
                                                var obj = new UserAccountObject(UserName)
                                                {
                                                    AccountType        = Convert.ToString(user["AccountType"], CultureInfo.InvariantCulture),
                                                    Caption            = Convert.ToString(user["Caption"], CultureInfo.InvariantCulture),
                                                    Description        = Convert.ToString(user["Description"], CultureInfo.InvariantCulture),
                                                    Disabled           = Convert.ToString(user["Disabled"], CultureInfo.InvariantCulture),
                                                    Domain             = Convert.ToString(user["Domain"], CultureInfo.InvariantCulture),
                                                    InstallDate        = Convert.ToString(user["InstallDate"], CultureInfo.InvariantCulture),
                                                    LocalAccount       = Convert.ToString(user["LocalAccount"], CultureInfo.InvariantCulture),
                                                    Lockout            = Convert.ToString(user["Lockout"], CultureInfo.InvariantCulture),
                                                    FullName           = Convert.ToString(user["FullName"], CultureInfo.InvariantCulture),
                                                    PasswordChangeable = Convert.ToString(user["PasswordChangeable"], CultureInfo.InvariantCulture),
                                                    PasswordExpires    = Convert.ToString(user["PasswordExpires"], CultureInfo.InvariantCulture),
                                                    PasswordRequired   = Convert.ToString(user["PasswordRequired"], CultureInfo.InvariantCulture),
                                                    SID        = Convert.ToString(user["SID"], CultureInfo.InvariantCulture),
                                                    Privileged = groupName.Equals("Administrators"),
                                                    Hidden     = IsHiddenWindowsUser(UserName)
                                                };
                                                obj.Groups.Add(groupName);
                                                users.Add(userName, obj);
                                            }
                                        }
                                    }
                                }
                                groups[$"{Environment.MachineName}\\{groupName}"] = group;
                            }
                        }
                    }
                }
            }
            catch (Exception e) when(
                e is TypeInitializationException ||
                e is PlatformNotSupportedException)
            {
                Log.Warning(Strings.Get("CollectorNotSupportedOnPlatform"), GetType().ToString());
            }
            catch (ExternalException)
            {
                Log.Error("Failed to run {0}", "net localgroup");
            }


            foreach (var user in users)
            {
                DatabaseManager.Write(user.Value, RunId);
            }

            foreach (var group in groups)
            {
                DatabaseManager.Write(group.Value, RunId);
            }
        }
        /// <summary>
        /// Executes the User account collector on Linux. Reads /etc/passwd and /etc/shadow.
        /// </summary>
        private void ExecuteLinux()
        {
            var etc_passwd_lines = File.ReadAllLines("/etc/passwd");
            var etc_shadow_lines = File.ReadAllLines("/etc/shadow");

            Dictionary <string, GroupAccountObject> Groups = new Dictionary <string, GroupAccountObject>();

            var accountDetails = new Dictionary <string, UserAccountObject>();

            foreach (var _line in etc_passwd_lines)
            {
                var parts = _line.Split(':');

                if (!accountDetails.ContainsKey(parts[0]))
                {
                    accountDetails[parts[0]] = new UserAccountObject(parts[0])
                    {
                        UID           = parts[2],
                        GID           = parts[3],
                        FullName      = parts[4],
                        HomeDirectory = parts[5],
                        Shell         = parts[6]
                    };
                }
            }

            foreach (var _line in etc_shadow_lines)
            {
                var parts    = _line.Split(':');
                var username = parts[0];

                if (!accountDetails.ContainsKey(username))
                {
                    accountDetails[username] = new UserAccountObject(username)
                    {
                    };
                }
                var tempDict = accountDetails[username];

                if (parts[1].Contains("$"))
                {
                    tempDict.PasswordStorageAlgorithm = parts[1].Split('$')[1];
                }
                tempDict.PasswordExpires = parts[4];
                tempDict.Inactive        = parts[6];
                tempDict.Disabled        = parts[7];

                accountDetails[username] = tempDict;
            }

            foreach (var username in accountDetails.Keys)
            {
                // Admin user details
                var groupsRaw = ExternalCommandRunner.RunExternalCommand("groups", username);

                var groups = groupsRaw.Split(' ');
                foreach (var group in groups)
                {
                    if (group.Equals("sudo"))
                    {
                        accountDetails[username].Privileged = true;
                    }
                    accountDetails[username].Groups.Add(group);
                    if (Groups.ContainsKey(group))
                    {
                        Groups[group].Users.Add(username);
                    }
                    else
                    {
                        Groups[group] = new GroupAccountObject(group);
                        Groups[group].Users.Add(username);
                    }
                }
                DatabaseManager.Write(accountDetails[username], RunId);
            }
            foreach (var group in Groups)
            {
                DatabaseManager.Write(group.Value, RunId);
            }
        }
        public override void ExecuteInternal()
        {
            if (!roots.Any())
            {
                if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
                {
                    foreach (var driveInfo in DriveInfo.GetDrives())
                    {
                        if (driveInfo.IsReady && driveInfo.DriveType == DriveType.Fixed)
                        {
                            roots.Add(driveInfo.Name);
                        }
                    }
                }
                else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
                {
                    roots.Add("/");
                }
                else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
                {
                    roots.Add("/");
                }
            }

            Action <string> IterateOn = Path =>
            {
                Log.Verbose("Started parsing {0}", Path);
                FileSystemObject obj = FilePathToFileSystemObject(Path, downloadCloud, INCLUDE_CONTENT_HASH);
                if (obj != null)
                {
                    DatabaseManager.Write(obj, RunId);
                    if (examineCertificates &&
                        Path.EndsWith(".cer", StringComparison.CurrentCulture) ||
                        Path.EndsWith(".der", StringComparison.CurrentCulture) ||
                        Path.EndsWith(".p7b", StringComparison.CurrentCulture))
                    {
                        try
                        {
                            var certificate = X509Certificate.CreateFromCertFile(Path);
                            var certObj     = new CertificateObject(
                                StoreLocation: Path,
                                StoreName: "Disk",
                                CertificateHashString: certificate.GetCertHashString())
                            {
                                Subject = certificate.Subject,
                                Pkcs7   = certificate.Export(X509ContentType.Cert).ToString()
                            };
                            DatabaseManager.Write(certObj, RunId);
                        }
                        catch (Exception e) when(
                            e is System.Security.Cryptography.CryptographicException ||
                            e is ArgumentException)
                        {
                            Log.Verbose($"Could not parse certificate from file: {Path}");
                        }
                    }
                }
                Log.Verbose("Finished parsing {0}", Path);
            };

            foreach (var root in roots)
            {
                Log.Information("{0} root {1}", Strings.Get("Scanning"), root);
                var filePathEnumerable = DirectoryWalker.WalkDirectory(root);

                if (parallel)
                {
                    Parallel.ForEach(filePathEnumerable,
                                     (filePath =>
                    {
                        IterateOn(filePath);
                    }));
                }
                else
                {
                    foreach (var filePath in filePathEnumerable)
                    {
                        IterateOn(filePath);
                    }
                }
            }
        }
 public override void Uninstall()
 {
     DatabaseManager.CleanupDatabase(PluginInfo.SystemName);
 }
Exemple #55
0
        public PictureView()
        {
            InitializeComponent();
            InitSettings();

            Util myFunctions = new Util();

            string[] args = Environment.GetCommandLineArgs();
            if (args.Length > 1 && args[1].ToString().ToLower() == "sportvisionbih")
            {
                //Step01:btnScanFTP_Click
                lSource = Util.scanFTP(tbFTPIP1.Text, tbFTPUser1.Text, tbFTPPassword1.Text);
                //lSource = Util.scanFTP(lFTPIP, lFTPUser, lFTPPassword);

                //Step02:btnScanDestination_Click
                lDestination = Util.scanDestination(tbDestination.Text, "jpg");

                //Step03:btnDifference_Click
                lDiff = Util.DifferenceSourceDestination(lSource, lDestination);

                //Step04:btnERPItem_Click
                DatabaseManager dbManager = new DatabaseManager();
                lERPItem = dbManager.LoadData();

                //Step05:btnDifferenceERP_Click
                lFTP = Util.DifferenceERPDifference(lERPItem, lDiff);

                //Step06:btnDownloadFTP_Click
                int i = Util.DownloadFromFTP(lSource, lFTP, tbFTPUser1.Text, tbFTPPassword1.Text, tbDestinationFTP.Text);

                //Step07:btnResizePicture_Click
                int j = Util.ResizePicture(tbDestinationFTP.Text, "jpg", tbResizePicture.Text, Convert.ToInt32(tbResWidth.Text), Convert.ToInt32(tbResHeight.Text));
                int k = Util.CopyResizedPicture(tbResizePicture.Text, tbDestination.Text, "jpg");

                //myToAL.Add(tbTo.Text);
                //myFunctions.SendMail(tbFrom.Text, tbFromName.Text, myToAL, tbSubject.Text + " SportVision", tbBody.Text + " " + k.ToString());
                myFunctions.SendMail(tbFrom.Text, tbFromName.Text, tbTo.Text, tbSubject.Text + " SportVision", tbBody.Text + " " + k.ToString());

                Environment.Exit(0);
            }

            if (args.Length > 1 && args[1].ToString().ToLower() == "buzz")
            {
                //Step01:btnScanFTP_Click
                lSource = Util.scanFTP(tbFTPIP.Text, tbFTPUser.Text, tbFTPPassword.Text);
                //lSource = Util.scanFTP(lFTPIP, lFTPUser, lFTPPassword);

                //Step02:btnScanDestination_Click
                lDestination = Util.scanDestination(tbDestination.Text, "jpg");

                //Step03:btnDifference_Click
                lDiff = Util.DifferenceSourceDestination(lSource, lDestination);

                //Step04:btnERPItem_Click
                DatabaseManager dbManager = new DatabaseManager();
                lERPItem = dbManager.LoadData();

                //Step05:btnDifferenceERP_Click
                lFTP = Util.DifferenceERPDifference(lERPItem, lDiff);

                //Step06:btnDownloadFTP_Click
                int i = Util.DownloadFromFTP(lSource, lFTP, tbFTPUser.Text, tbFTPPassword.Text, tbDestinationFTP.Text);

                //Step07:btnResizePicture_Click
                int j = Util.ResizePicture(tbDestinationFTP.Text, "jpg", tbResizePicture.Text, Convert.ToInt32(tbResWidth.Text), Convert.ToInt32(tbResHeight.Text));
                int k = Util.CopyResizedPicture(tbResizePicture.Text, tbDestination.Text, "jpg");

                myToAL.Add(tbTo.Text);
                //myFunctions.SendMail(tbFrom.Text, tbFromName.Text, myToAL, tbSubject.Text + " BUZZ", tbBody.Text + " " + k.ToString());
                myFunctions.SendMail(tbFrom.Text, tbFromName.Text, tbTo.Text, tbSubject.Text + " BUZZ", tbBody.Text + " " + k.ToString());

                Environment.Exit(0);
            }
        }
        public void Notify(params object[] args)
        {
            if (args == null || args.Length == 0 || !(args[0] is UFSoft.UBF.Business.EntityEvent))
            {
                return;
            }

            //将入口参数列表中第一个参数,转成EntityEvent,并取EntityKey存入key
            UFSoft.UBF.Business.BusinessEntity.EntityKey key = ((UFSoft.UBF.Business.EntityEvent)args[0]).EntityKey;
            //key的有效性判断
            if (key == null)
            {
                return;
            }
            //转成所需实体,同时判断有效性
            UFIDA.U9.InvDoc.MiscShip.MiscShipment miscShip = (UFIDA.U9.InvDoc.MiscShip.MiscShipment)key.GetEntity();

            if (miscShip == null)
            {
                return;
            }
            else
            {
                if (miscShip.SysState == UFSoft.UBF.PL.Engine.ObjectState.Updated)
                {
                    ILogger log = LoggerManager.GetLogger(typeof(CacheManager));
                    //单据从开立状态->审核中(提交审核操作),调用OA接口,创建审批流
                    if (miscShip.OriginalData.Status == INVDocStatus.Open && miscShip.Status == INVDocStatus.Approving && miscShip.DocType.DescFlexField.PrivateDescSeg1 == "1")
                    {
                        //查询OA的流程ID
                        string  sql = string.Format(@"SELECT DescFlexField_PrivateDescSeg4 AS IsOAtoU9
                        FROM dbo.InvDoc_MiscShip WHERE ID={0}", miscShip.ID);
                        DataSet ds  = new DataSet();
                        DataAccessor.RunSQL(DatabaseManager.GetCurrentConnection(), sql, null, out ds);
                        string IsOAtoU9 = "";
                        foreach (DataRow row in ds.Tables[0].Rows)
                        {
                            IsOAtoU9 = row["IsOAtoU9"].ToString();
                        }
                        if (IsOAtoU9 == "1")//OA触发到U9的杂发单,不触发U9到OA
                        {
                            return;
                        }

                        List <MishShipDoc> list     = new List <MishShipDoc>(); //杂发单集合
                        MishShipDoc        doc      = new MishShipDoc();        //杂发单数据
                        BaseInfo           baseInfo = new BaseInfo();           //OA上下文数据

                        ValueTrans vt   = new ValueTrans();
                        User       user = User.Finder.FindByID(Context.LoginUserID);
                        vt.value     = user.Code;
                        vt.transrule = "getUseridByWorkcode";
                        #region   文基础信息
                        baseInfo.creator = vt;
                        baseInfo.fpkid   = miscShip.ID.ToString();//单据ID
                        //baseInfo.isnextflow = 0;
                        //baseInfo.requestid = "1025";
                        //baseInfo.requestlevel = 1;
                        baseInfo.isnextflow = 1;

                        baseInfo.requestname = "杂发单审批-订单号:" + miscShip.DocNo;     //审批流标题
                        baseInfo.workflowid  = PubFunction.GetMiscShipWorkFlow(); //固定值,取数逻辑看文档
                        //baseInfo.workflowid = "1025";//固定值,取数逻辑看文档
                        #endregion

                        doc.@base = baseInfo;
                        #region 表头信息
                        //表头信息
                        MishShipHeadDto main = new MishShipHeadDto();

                        Value v = new Value();
                        if (miscShip.DescFlexField.PrivateDescSeg3 != "")
                        {
                            //OA弃审后,U9重新提交流程,应该走更细OA流程接口
                            //if (miscShip.DescFlexField.PrivateDescSeg4 == "1")
                            //{
                            v.value   = miscShip.DescFlexField.PrivateDescSeg3;
                            main.gllc = v;
                            //main.requestid = miscShip.DescFlexField.PrivateDescSeg3; //requestid不为空,则为更新流程接口
                            //string sql = string.Format(@"UPDATE dbo.InvDoc_MiscShip SET DescFlexField_PrivateDescSeg4='0' WHERE ID = {0}", miscShip.ID);
                            //DataAccessor.RunSQL(DatabaseManager.GetCurrentConnection(), sql, null);
                            //}
                        }
                        //申请人
                        vt           = new ValueTrans();
                        vt.value     = user.Code;
                        vt.transrule = "getUseridByWorkcode";
                        main.sqr     = vt;
                        //申请人工号
                        vt           = new ValueTrans();
                        vt.value     = user.Code;
                        vt.transrule = "getWorkcodeByU9code";
                        main.sqrgh   = vt;
                        //申请人部门
                        vt           = new ValueTrans();
                        vt.value     = user.Code;
                        vt.transrule = "getDeptidByWorkcode";
                        main.ssbm    = vt;
                        //申请人岗位
                        vt           = new ValueTrans();
                        vt.value     = user.Code;
                        vt.transrule = "getJobidByWorkcode";
                        main.sqrgw   = vt;
                        //申请人分部
                        vt           = new ValueTrans();
                        vt.value     = user.Code;
                        vt.transrule = "getSubcomidByWorkcode";
                        main.ssgs    = vt;
                        //申请日期
                        v         = new Value();
                        v.value   = DateTime.Now.ToString("yyyy-MM-dd");
                        main.sqrq = v;
                        //流程编号lcbh
                        //单据类型
                        v         = new Value();
                        v.value   = miscShip.DocType.Code;
                        main.djlx = v;
                        //单号
                        v       = new Value();
                        v.value = miscShip.DocNo;
                        main.dh = v;
                        //存储地点
                        if (miscShip.MiscShipLs[0].Wh != null)
                        {
                            v         = new Value();
                            v.value   = miscShip.MiscShipLs[0].Wh.Name;
                            main.ccdd = v;
                        }
                        //受益存储地点
                        if (miscShip.MiscShipLs[0].BenefitWh != null)
                        {
                            v.value     = miscShip.MiscShipLs[0].BenefitWh.Name;
                            main.syccdd = v;
                        }
                        //受益人
                        if (miscShip.BenefitPsn != null)
                        {
                            v        = new Value();
                            v.value  = miscShip.BenefitPsn.Name;
                            main.syr = v;
                        }

                        //受益部门
                        if (miscShip.MiscShipLs[0].BenefitDept != null)
                        {
                            v         = new Value();
                            v.value   = miscShip.MiscShipLs[0].BenefitDept.Name;
                            main.sybm = v;
                        }

                        //记账时间jzsj
                        v         = new Value();
                        v.value   = miscShip.MiscShipAccountPeriods[0].SOBAccountPeriod.DisplayName;
                        main.jzsj = v;
                        //供应商gys
                        if (miscShip.MiscShipLs[0].SupplierInfo != null)
                        {
                            v        = new Value();
                            v.value  = miscShip.MiscShipLs[0].SupplierInfo.Name;
                            main.gys = v;
                        }
                        //客户kh
                        if (miscShip.MiscShipLs[0].CustomerInfo != null)
                        {
                            v       = new Value();
                            v.value = miscShip.MiscShipLs[0].CustomerInfo.Name;
                            main.kh = v;
                        }

                        //库管员
                        if (miscShip.WhMan != null)
                        {
                            v       = new Value();
                            v.value = miscShip.WhMan.Name;
                            //vt.transrule = "";
                            main.kgy = v;
                        }

                        //高新项目gxxm
                        v         = new Value();
                        v.value   = miscShip.DescFlexField.PrivateDescSeg1;
                        main.gxxm = v;
                        //研发项目yfxm
                        v         = new Value();
                        v.value   = miscShip.DescFlexField.PrivateDescSeg2;
                        main.yfxm = v;
                        //U9组织
                        v       = new Value();
                        v.value = miscShip.Org.ID.ToString();
                        //vt.transrule = "getUseridByWorkcode";
                        main.u9zz1 = v;
                        //关联流程gllc
                        #endregion

                        doc.main = main;

                        #region 行信息
                        //行信息
                        List <MishShipLineDto> lines = new List <MishShipLineDto>();
                        foreach (MiscShipmentL item in miscShip.MiscShipLs)
                        {
                            MishShipLineDto l = new MishShipLineDto();
                            //料号
                            v       = new Value();
                            v.value = item.ItemInfo.ItemCode;
                            l.lh    = v;
                            //品名
                            v       = new Value();
                            v.value = item.ItemInfo.ItemName;
                            l.pm    = v;
                            //存储地点
                            v       = new Value();
                            v.value = item.Wh.Name;
                            l.ccdd  = v;
                            //杂发量
                            v       = new Value();
                            v.value = item.CostUOMQty.ToString("0.00");
                            l.zfl   = v;
                            //成本cb
                            v       = new Value();
                            v.value = item.CostMny.ToString("f4");
                            l.cb    = v;
                            //批号ph
                            if (item.LotInfo != null)
                            {
                                v       = new Value();
                                v.value = item.LotInfo.LotCode;
                                l.ph    = v;
                            }
                            //生产订单号scddh
                            v       = new Value();
                            v.value = item.MoDocNo;
                            l.scddh = v;
                            //生产相关scxg
                            v = new Value();
                            if (item.IsMFG)
                            {
                                v.value = "1";
                            }
                            else
                            {
                                v.value = "0";
                            }
                            l.scxg = v;
                            //零成本
                            v = new Value();
                            if (item.IsZeroCost)
                            {
                                v.value = "1";
                            }
                            else
                            {
                                v.value = "0";
                            }
                            l.lcb = v;
                            //受益人
                            if (item.BenefitPsn != null)
                            {
                                v       = new Value();
                                v.value = item.BenefitPsn.Name;
                                //vt.transrule = "getUseridByWorkcode";
                                l.syr = v;
                            }
                            //受益部门
                            if (item.BenefitDept != null)
                            {
                                v       = new Value();
                                v.value = item.BenefitDept.Name;
                                //vt.transrule = "getDeptidByWorkcode";
                                l.sybm = v;
                            }
                            //供应商gys
                            if (item.SupplierInfo != null)
                            {
                                v       = new Value();
                                v.value = item.SupplierInfo.Name;
                                l.gys   = v;
                            }
                            //备注
                            v       = new Value();
                            v.value = item.Memo;
                            l.bz    = v;
                            lines.Add(l);
                        }
                        #endregion
                        doc.dt1 = new List <MishShipLineDto>();
                        doc.dt1 = lines;

                        //添加
                        list.Add(doc);
                        string json = "";
                        json = JsonHelper.GetJson <List <MishShipDoc> >(list);
                        log.Error("杂发单JSON数据为:" + json);
                        PubFunction pubFun = new PubFunction();
                        //调用OA接口
                        string OAFlowID = pubFun.OAService(json);
                        //更新返回的流程ID
                        string UpSQL = string.Format(@"UPDATE dbo.InvDoc_MiscShip SET DescFlexField_PrivateDescSeg3='{0}' WHERE ID = {1}", OAFlowID, miscShip.ID.ToString());
                        DataAccessor.RunSQL(DatabaseManager.GetCurrentConnection(), UpSQL, null);
                        log.Error("结束调用OA审批接口");
                    }
                    //单据从已核准状态到开立(弃审操作)
                    if (miscShip.OriginalData.Status == INVDocStatus.Approved && miscShip.Status == INVDocStatus.Open)
                    {
                        log.Error(miscShip.DocNo + "弃审了");
                        //if (miscShip.DocType.DescFlexField.PrivateDescSeg1 == "1")//继承OA流程的单据类型
                        //{
                        //    string UpSQL = string.Format(@"UPDATE dbo.InvDoc_MiscShip SET DescFlexField_PrivateDescSeg4='1' WHERE ID = {0}", miscShip.ID);
                        //    DataAccessor.RunSQL(DatabaseManager.GetCurrentConnection(), UpSQL, null);
                        //}
                        bool IsNeedCreateOA = true;
                        try
                        {
                            //300组织不允许“生产制损领料”弃审
                            if (miscShip.Org.Code == "300" && miscShip.MiscShipDocType.Name.Trim() == "生产制损领料")
                            {
                                //存储过程控制取消退料操作是否开启
                                DataParamList dpL = new DataParamList();
                                dpL.Add(DataParamFactory.Create("Type", "MiscShipBtnUnDoApprove", ParameterDirection.Input, DbType.String, 50));//禁用杂收单弃审功能
                                dpL.Add(DataParamFactory.CreateOutput("IsOpen", DbType.String));
                                DataAccessor.RunSP("sp_Auctus_BEPlugin_Control", dpL);
                                string isOpen = dpL["IsOpen"].Value.ToString();
                                if (isOpen == "1")
                                {
                                    DataParamList dp = new DataParamList();
                                    dp.Add(DataParamFactory.Create("DocNo", miscShip.DocNo, ParameterDirection.Input, DbType.String, 50));//禁用杂收单弃审功能
                                    dp.Add(DataParamFactory.CreateOutput("Result", DbType.String));
                                    DataAccessor.RunSP("sp_Auctus_BE_MiscShip", dp);
                                    string result = dp["Result"].Value.ToString();
                                    if (result != "1")//存在下游杂收单
                                    {
                                        IsNeedCreateOA = false;
                                        throw new Exception(result);
                                    }
                                    else
                                    {
                                        IsNeedCreateOA = true;
                                    }
                                }
                            }

                            if (IsNeedCreateOA)//需要发起OA弃审,调用删除OA流程接口
                            {
                                //TODO:调用OA弃审接口
                            }
                        }
                        catch (Exception ex)
                        {
                            throw new Exception(ex.Message);
                        }
                    }//end if
                    else if (miscShip.OriginalData.Status == INVDocStatus.Approving && miscShip.Status == INVDocStatus.Open)
                    {
                        log.Error(miscShip.DocNo + "从核准中变成了开立");
                    }
                }
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            PersonnelSystem ps          = PersonnelSystem.GetPersonnelSystem(this);
            Person          loginPerson = ps.LoginPerson;

            ps.LoginPerson = DatabaseManager.GetPerson(loginPerson.PS_CITIZEN_ID);


            lbMasterName.Text       = loginPerson.FirstNameAndLastName;
            lbMasterHeaderName.Text = loginPerson.FirstNameAndLastName;

            string name = loginPerson.FirstNameAndLastName;

            //profile_name.InnerText = name;

            if (loginPerson.PERSON_ROLE_ID == "1")
            {
                hv5.Visible = true;
                hv7.Visible = true;
                hv6.Visible = true;
            }
            else if (loginPerson.PERSON_ROLE_ID == "2")
            {
                hv1.Visible = true;
                hv7.Visible = true;
                hv6.Visible = true;
            }
            else if (loginPerson.PERSON_ROLE_ID == "3")
            {
                hv5.Visible = true;
                hv2.Visible = true;
                hv6.Visible = true;
            }
            else if (loginPerson.PERSON_ROLE_ID == "4")
            {
                hv5.Visible = true;
                hv7.Visible = true;
                hv3.Visible = true;
            }
            else if (loginPerson.PERSON_ROLE_ID == "5")
            {
            }
            else if (loginPerson.PERSON_ROLE_ID == "99")
            {
                hv4.Visible = true;
            }

            if (loginPerson.ST_LOGIN_ID == "0")
            {
                hv1.Visible = false;
                hv2.Visible = false;
                hv3.Visible = false;
                hv4.Visible = false;
                hv5.Visible = false;
                hv6.Visible = false;
                hv7.Visible = false;
            }

            //---------
            int count_approve      = 0;
            int count_leave_finish = 0;
            int count_ins          = 0;
            int count_get_ins      = 0;
            int count_req_ins      = 0;
            int count_person_edit  = 0;
            int count_person_get   = 0;

            OracleConnection.ClearAllPools();
            using (OracleConnection con = new OracleConnection(DatabaseManager.CONNECTION_STRING))
            {
                con.Open();

                using (OracleCommand com = new OracleCommand("SELECT URL FROM PS_PERSON_IMAGE WHERE CITIZEN_ID = '" + loginPerson.PS_CITIZEN_ID + "' AND PRESENT = 1", con))
                {
                    using (OracleDataReader reader = com.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            string fileName;
                            fileName = reader.GetValue(0).ToString();
                            string personImageFileName = DatabaseManager.GetPersonImageFileName(loginPerson.PS_CITIZEN_ID);
                            if (personImageFileName != "")
                            {
                                //profile_pic.Src = "Upload/PersonImage/" + personImageFileName;
                                //profile_pic2.Src = "Upload/PersonImage/" + personImageFileName;
                                profile_pic3.Src = "Upload/PersonImage/" + personImageFileName;
                            }
                            else
                            {
                                //profile_pic.Src = "Image/Small/person2.png";
                            }
                        }
                    }
                }

                if (loginPerson.ST_LOGIN_ID != "0")
                {
                    using (OracleCommand com = new OracleCommand("SELECT COUNT(LEV_BOSS_DATA.LEAVE_BOSS_ID) FROM LEV_DATA, LEV_BOSS_DATA WHERE LEAVE_STATUS_ID IN(1,4) AND LEV_DATA.LEAVE_ID = LEV_BOSS_DATA.LEAVE_ID AND LEV_DATA.BOSS_STATE = LEV_BOSS_DATA.STATE AND LEV_BOSS_DATA.CITIZEN_ID = '" + loginPerson.PS_CITIZEN_ID + "'", con))
                    {
                        using (OracleDataReader reader = com.ExecuteReader())
                        {
                            while (reader.Read())
                            {
                                count_approve = reader.GetInt32(0);
                            }
                        }
                    }
                    if (count_approve != 0)
                    {
                        lbLeaveAllowCount.Text     = "" + count_approve;
                        lbLeaveAllowCount.Visible  = true;
                        lbLeaveAllowCount2.Text    = "" + count_approve;
                        lbLeaveAllowCount2.Visible = true;
                    }
                    else
                    {
                        lbLeaveAllowCount.Text     = "";
                        lbLeaveAllowCount.Visible  = false;
                        lbLeaveAllowCount2.Text    = "";
                        lbLeaveAllowCount2.Visible = false;
                    }

                    using (OracleCommand com = new OracleCommand("SELECT COUNT(LEAVE_ID) FROM LEV_DATA WHERE PS_ID = '" + loginPerson.PS_CITIZEN_ID + "' AND LEAVE_STATUS_ID in(2,5)", con))
                    {
                        using (OracleDataReader reader = com.ExecuteReader())
                        {
                            while (reader.Read())
                            {
                                count_leave_finish = reader.GetInt32(0);
                            }
                        }
                    }

                    /*using (OracleCommand com = new OracleCommand("SELECT COUNT(IR_ID) FROM TB_INSIG_REQUEST WHERE IR_CITIZEN_ID = '" + loginPerson.PS_CITIZEN_ID + "' AND IR_STATUS = 1", con)) {
                     *  using (OracleDataReader reader = com.ExecuteReader()) {
                     *      while (reader.Read()) {
                     *          count_ins = reader.GetInt32(0);
                     *      }
                     *  }
                     * }*/
                    using (OracleCommand com = new OracleCommand("SELECT COUNT(IP_ID) FROM TB_INSIG_PERSON WHERE CITIZEN_ID = '" + loginPerson.PS_CITIZEN_ID + "' AND IP_STATUS_ID IN(2, 4)", con))
                    {
                        using (OracleDataReader reader = com.ExecuteReader())
                        {
                            while (reader.Read())
                            {
                                count_get_ins = reader.GetInt32(0);
                            }
                        }
                    }
                    if (InsigCheckGet.Check(loginPerson))
                    {
                        count_ins = 1;
                    }
                    if (loginPerson.PERSON_ROLE_ID == "4")
                    {
                        using (OracleCommand com = new OracleCommand("SELECT COUNT(IP_ID) FROM TB_INSIG_PERSON WHERE TB_INSIG_PERSON.IP_STATUS_ID = 1", con))
                        {
                            using (OracleDataReader reader = com.ExecuteReader())
                            {
                                while (reader.Read())
                                {
                                    count_req_ins = reader.GetInt32(0);
                                }
                            }
                        }
                    }
                    if (count_req_ins != 0)
                    {
                        lbInsigCount.Text    = "" + count_req_ins;
                        lbInsigCount.Visible = true;
                    }
                    else
                    {
                        lbInsigCount.Text    = "";
                        lbInsigCount.Visible = false;
                    }

                    //Person-get
                    if (loginPerson.PERSON_ROLE_ID == "2")
                    {
                        using (OracleCommand com = new OracleCommand("SELECT COUNT(R_ID) FROM TB_REQUEST WHERE TB_REQUEST.R_STATUS_ID = 1", con))
                        {
                            using (OracleDataReader reader = com.ExecuteReader())
                            {
                                while (reader.Read())
                                {
                                    count_person_edit = reader.GetInt32(0);
                                }
                            }
                        }
                    }
                    if (count_person_edit != 0)
                    {
                        lbPersonRequestCount.Text    = "" + count_person_edit;
                        lbPersonRequestCount.Visible = true;
                    }
                    else
                    {
                        lbPersonRequestCount.Text    = "";
                        lbPersonRequestCount.Visible = false;
                    }

                    //person-finish
                    using (OracleCommand com = new OracleCommand("SELECT COUNT(R_ID) FROM TB_REQUEST WHERE CITIZEN_ID = '" + loginPerson.PS_CITIZEN_ID + "' AND R_STATUS_ID IN(2, 4)", con))
                    {
                        using (OracleDataReader reader = com.ExecuteReader())
                        {
                            while (reader.Read())
                            {
                                count_person_get = reader.GetInt32(0);
                            }
                        }
                    }

                    int count = count_approve + count_leave_finish + count_ins + count_get_ins + count_req_ins + count_person_edit + count_person_get;

                    noti_person_none.Visible    = false;
                    noti_person_request.Visible = false;
                    noti_person_finish.Visible  = false;

                    noti_leave_none.Visible   = false;
                    noti_approve.Visible      = false;
                    noti_leave_finish.Visible = false;

                    noti_ins_none.Visible = false;
                    noti_ins.Visible      = false;
                    noti_get_ins.Visible  = false;
                    noti_req_ins.Visible  = false;

                    if (count_person_edit + count_person_get == 0)
                    {
                        noti_person_none.Visible = true;
                    }
                    else
                    {
                        if (count_person_edit != 0)
                        {
                            noti_person_request.Visible = true;
                        }
                        if (count_person_get != 0)
                        {
                            noti_person_finish.Visible = true;
                        }
                    }

                    if (count_approve + count_leave_finish == 0)
                    {
                        noti_leave_none.Visible = true;
                    }
                    else
                    {
                        if (count_approve != 0)
                        {
                            noti_approve.Visible = true;
                        }
                        if (count_leave_finish != 0)
                        {
                            noti_leave_finish.Visible = true;
                        }
                    }

                    if (count_ins + count_get_ins + count_req_ins == 0)
                    {
                        noti_ins_none.Visible = true;
                    }
                    else
                    {
                        if (count_ins != 0)
                        {
                            noti_ins.Visible = true;
                        }
                        if (count_get_ins != 0)
                        {
                            noti_get_ins.Visible = true;
                        }
                        if (count_req_ins != 0)
                        {
                            noti_req_ins.Visible = true;
                        }
                    }

                    if (count > 0)
                    {
                        noti_alert.InnerText           = "" + count;
                        noti_alert.Attributes["class"] = "ps-ms-main-hd-noti-alert";
                    }
                }

                if (!IsPostBack)
                {
                }
            }
        }
Exemple #58
0
 public void CharacterCreationManagerStart()
 {
     configuration = GetComponent <CharacterConfigurationManager> ();
     database      = GetComponent <DatabaseManager> ();
 }
Exemple #59
0
 public void CacheTrackScrobble(TrackScrobble scrobble)
 {
     DatabaseManager.Save("track.scrobble", scrobble.Artist, scrobble.Track, scrobble.Timestamp);
 }
 public static int CountRows()
 {
     return (int)DatabaseManager.GetFirstRaw("SELECT COUNT(*) FROM " + TABLE_NAME);
 }