示例#1
0
        private static bool UpdateMailees()
        {
            Stopwatch sw = new Stopwatch();

            sw.Start();
            int i = 0;

            using (var r3musDB = new r3musDbContext())
            {
                r3musDB.RecruitmentMailees.Where(mailee => mailee.CorpId_AtLastCheck == 0).Take(30).ToList().ForEach(mailee =>
                {
                    try
                    {
                        i++;
                        Console.WriteLine("# {0}: Mailee {1}", i.ToString(), mailee.Name);
                        mailee.GetToonDetails();
                        mailee.LastUpdated = DateTime.Now;
                    }
                    catch (Exception ex) { Console.WriteLine(string.Format("Mailee: {0}, Error {1}", mailee.Name, ex.Message)); }
                });
                r3musDB.SaveChanges();
                sw.Stop();
                Console.WriteLine("{0} mailees processed in {1}", i.ToString(), sw.Elapsed.ToString());

                GC.Collect();
                GC.WaitForPendingFinalizers();
                return(r3musDB.RecruitmentMailees.Where(mailee => mailee.CorpId_AtLastCheck == 0).Count() > 0);
            }
        }
示例#2
0
        public static void GetWebsiteUserDetails(bool FullUpdate)
        {
            try
            {
                var r3musDB = new r3musDbContext();
                var users   = r3musDB.Users;

                if (FullUpdate)
                {
                    Console.WriteLine("Updating all {0} users", users.Count());
                    var counter = 0;
                    foreach (var user in users)
                    {
                        try
                        {
                            var cUsrTitles = user.Titles;

                            counter++;
                            Console.WriteLine(string.Format("Updating #{0} user {1}", counter.ToString(), user.UserName));
                            user.GetDetails(true);

                            r3musDB.Titles.Where(dbTitle => dbTitle.UserId == user.Id).ToList().Where(dbTitle => cUsrTitles.Any(cUsrTitle => dbTitle.TitleName == cUsrTitle.TitleName)).ToList().ForEach(dbTitle => r3musDB.Entry(dbTitle).State  = EntityState.Unchanged);
                            r3musDB.Titles.Where(dbTitle => dbTitle.UserId == user.Id).ToList().Where(dbTitle => !cUsrTitles.Any(cUsrTitle => dbTitle.TitleName == cUsrTitle.TitleName)).ToList().ForEach(dbTitle => r3musDB.Entry(dbTitle).State = EntityState.Deleted);
                        }
                        catch (Exception ex) { Console.WriteLine(string.Format("User: {0}, Error {1}", user.UserName, ex.Message)); }
                    }
                    //users.Where(user => !user.IsValid()).ToList().ForEach(dbTitle => r3musDB.Entry(dbTitle).State = EntityState.Deleted);
                    r3musDB.Users = users;
                }
                else
                {
                    var userList = users.Where(user => user.Avatar == null);
                    Console.WriteLine("Updating {0} users", userList.Count());
                    foreach (var user in userList)
                    {
                        try
                        {
                            Console.WriteLine(string.Format("Updating user {0}", user.UserName));
                            user.GetDetails(true);
                        }
                        catch (Exception ex) { Console.WriteLine(string.Format("User: {0}, Error {1}", user.UserName, ex.Message)); }
                    }
                }
                r3musDB.SaveChanges();
            }
            catch (Exception ex) { }
        }
示例#3
0
        public static void ResetMailees(bool reset)
        {
            if (reset)
            {
                var r3musDB = new r3musDbContext();

                r3musDB.RecruitmentMailees.Where(mailee =>
                                                 (mailee.MailerId == null) &&
                                                 (!mailee.Name.Contains("Citizen")) &&
                                                 (!mailee.Name.Contains("Trader")) &&
                                                 (!mailee.Name.Contains("Miner")) &&
                                                 (DbFunctions.DiffHours(mailee.Submitted, DateTime.Now) >= 24) &&
                                                 (DbFunctions.DiffHours(mailee.LastUpdated, DateTime.Now) >= 24))
                .Take(500).ToList().ForEach(mailee => mailee.CorpId_AtLastCheck = 0);

                var count = r3musDB.SaveChanges();
                Console.WriteLine(string.Format("Reset {0} mailees corpId's to 0",
                                                count.ToString()));
            }
        }