Exemple #1
0
        public SiteService()
        {
            instance = this;

            authService = AuthService.GetInstance();
            siteApi     = new SiteApi();
        }
Exemple #2
0
        protected bool IsMod(string nick)
        {
            var users = SiteApi.GetChatters(SpiffCore.Instance.Channel);
            var user  = (from s in users where s.Username == nick select s).FirstOrDefault();

            return(user != null && user.IsMod);
        }
Exemple #3
0
        private static void TitleUpdater()
        {
            while (!Stopping)
            {
                var viewers = SiteApi.GetChatters(SpiffCore.Instance.Channel).Count;

                Console.Title = string.Format("Spiffbaot - Viewers: {0}", viewers);

                Thread.Sleep(1000);
            }
        }
Exemple #4
0
        private void WatcherOnChanged(object sender, FileSystemEventArgs e)
        {
            if (e.ChangeType == WatcherChangeTypes.Deleted)
            {
                return;
            }
            if (string.IsNullOrEmpty(Path.GetExtension(e.FullPath)))
            {
                return;
            }

            var filePath = e.FullPath;
            var siteId   = SiteApi.GetSiteIdByFilePath(e.FullPath);

            if (siteId <= 0)
            {
                return;
            }
            var siteDirectoryPath = SiteApi.GetSitePath(siteId);

            if (string.IsNullOrEmpty(siteDirectoryPath))
            {
                return;
            }

            if (!_dict.ContainsKey(siteId))
            {
                return;
            }

            var config = _dict[siteId];

            var key = (config.BucketPath + Utils.GetRelativePath(filePath, siteDirectoryPath)).Trim('/');

            if (string.IsNullOrEmpty(key))
            {
                return;
            }

            var client = new OssClient(config.BucketEndPoint, config.AccessKeyId, config.AccessKeySecret);

            client.PutObject(config.BucketName, key, filePath);
        }
Exemple #5
0
        static void Main(string[] args)
        {
            string clientId  = ConfigurationManager.AppSettings["ClientId"];
            string password  = ConfigurationManager.AppSettings["ClientPassword"];
            string subUnitId = ConfigurationManager.AppSettings["SubUnitId"];

            if (args != null && args.Length > 0)
            {
                switch (args[0])
                {
                case "personal-records":

                    new PersonalRecordsTest(clientId, password, subUnitId);
                    break;

                default:

                    break;
                }
            }
            else
            {
                //DoAllSchedules
                DoAllSchedules(clientId, password, subUnitId);

                // Use this to only test a single evaluation - uncomment for fixing this.
                DoSingleEvaluationOnly(clientId, password, subUnitId);

                // Use this to only test evaluations - uncomment for fixing this.
                //DoAllEvaluations(clientId, password, subUnitId);

                // Use this to only test teams
                DoTeamOnly(clientId, password, subUnitId);

                // EvaluationActions
                var eValueEvaluationActions = new ScheduleApi(clientId, password, subUnitId, "https://test-api.e-value.net/Schedule_1_0b.cfc");

                foreach (var options in eValueEvaluationActions.GetEvaluationActions().EvaluationActions)
                {
                    Console.WriteLine($"(^&)(^&) Evaluation Actions: {options.EvaluationActionId} {options.Description} ");
                }


                // Personal Records Options
                var eValuePersonalRecordOptions = new PersonalRecordOptionApi(clientId, password, subUnitId, "https://test-api.e-value.net/IandCOptions_1_0.cfc");

                foreach (var options in eValuePersonalRecordOptions.GetAllRequirementOptions().RequirementOptions)
                {
                    Console.WriteLine($"~!~!~! Personal Records Option: {options.RequirementId} {options.RequirementLabel} ");
                }

                foreach (var options in eValuePersonalRecordOptions.GetAllRequirementStatusOptions().RequirementStatusOptions)
                {
                    Console.WriteLine($"~!~!~!~!~! Personal Records Status Option: {options.StatusId} {options.StatusLabel} ");
                }

                foreach (var options in eValuePersonalRecordOptions.GetAllRequirementTypeOptions().RequirementTypeOptions)
                {
                    Console.WriteLine($"~!~!~!~!~!~!~! Personal Records Type Option: {options.TypeId} {options.TypeLabel} ");
                }

                // Statuses
                var eValuePeopleGroup = new PeopleGroupApi(clientId, password, subUnitId, "https://test-api.e-value.net/PeopleGroup_1_0.cfc");

                foreach (var groups in eValuePeopleGroup.GetAll().PeopleGroups)
                {
                    Console.WriteLine($"%%%% People Groups: {groups.GroupId} {groups.Name} ");

                    var peopleInGroup = eValuePeopleGroup.GetUsers(groups.GroupId.ToString());

                    foreach (var institutionUser in peopleInGroup.IntitutionUsers ?? Enumerable.Empty <InstitutionUser>())
                    {
                        Console.WriteLine($"%%%% %%%% People In the Group: {institutionUser.UserId} {institutionUser.FirstName} {institutionUser.LastName} ");
                    }
                }

                // Statuses
                var eValueStatus = new StatusApi(clientId, password, subUnitId, "https://test-api.e-value.net/Status_1_0.cfc");

                foreach (var status in eValueStatus.GetAll().Statuses)
                {
                    Console.WriteLine($"@@@@ Statuses: {status.StatusId} {status.Label} ");
                }

                // Ranks
                var eValueRanks = new RankApi(clientId, password, subUnitId, "https://api.e-value.net/Rank_1_0.cfc");

                foreach (var rank in eValueRanks.GetAll().Ranks)
                {
                    Console.WriteLine($"==== Ranks: {rank.RankId} {rank.Label} ");
                }

                // Roles
                var eValueRoles = new RoleApi(clientId, password, subUnitId, "https://api.e-value.net/Role_1_0.cfc");

                foreach (var role in eValueRoles.GetAll().Roles)
                {
                    Console.WriteLine($"++++ Roles: {role.RoleId} {role.Label} ");
                }

                // Schedules - used later in User info
                var eValueShedules = new ScheduleApi(clientId, password, subUnitId, "https://test-api.e-value.net/Schedule_1_0b.cfc");

                // Evaluations - used later in User info
                var eValueEval = new EvaluationApi(clientId, password, subUnitId, "https://test-api.e-value.net/Evaluation_1_0b.cfc");

                // Activities
                var eValueActivities = new ActivityApi(clientId, password, subUnitId, "https://test-api.e-value.net/Activity_1_0b.cfc");
                var activityMonkey   = eValueActivities.GetAllActivities();

                // Teams - are a child of an activity - must be part of an activity
                var eValueTeams = new TeamApi(clientId, password, subUnitId, "https://test-api.e-value.net/Team_1_0.cfc");
                foreach (var activity in activityMonkey.Activities)
                {
                    Console.WriteLine($"~~~~ Activities: {activity.ActivityId} {activity.Abbreviation} {activity.Name} {activity.SiteId} ");
                    var teamForActivity = eValueTeams.GetAllTeams(activity.ActivityId.ToString());
                }

                // Time Frames
                var eValueTimeFrame = new TimeFrameApi(clientId, password, subUnitId, "https://test-api.e-value.net/TimeFrame_1_0.cfc");
                var timeFrameInfo   = eValueTimeFrame.GetAllTimeFrames(DateTime.MinValue, DateTime.MaxValue);

                foreach (var timeFrame in timeFrameInfo.TimeFrames)
                {
                    var frame = eValueTimeFrame.Get(timeFrame.TimeFrameId);

                    Console.WriteLine($">>>> Time Frames: {frame.TimeFrame.TimeFrameId} {frame.TimeFrame.TimeFrameLabel} {frame.TimeFrame.TimeFrameBegin} {frame.TimeFrame.TimeFrameEnd} ");
                }

                // User - individual
                var eValueUser = new UserApi(clientId, password, subUnitId, "https://test-api.e-value.net/User_1_0b.cfc");
                var user       = eValueUser.Get("79491668");

                // Sites - all
                var eValueSiteApi = new SiteApi(clientId, password, subUnitId, "https://test-api.e-value.net/Site_1_0.cfc");
                var sites         = eValueSiteApi.GetAllSites();

                foreach (var site in sites.Sites)
                {
                    Console.WriteLine($"^^^^^ sites: {site.SiteId} {site.SiteName} ");
                }

                // User - all
                var institution = new InstitutionApi(clientId, password, subUnitId, "https://test-api.e-value.net/Institution_1_0.cfc");
                var userList    = institution.GetSubUnitUsers(1);

                // *************************************
                // User and Personal Records
                // *************************************
                var eValuePersonalRecords = new PersonalRecordApi(clientId, password, subUnitId, "https://test-api.e-value.net/IandC_1_0.cfc");
                var record = eValuePersonalRecords.GetUserPersonalRecords("1193570");       // Haley Artz - should have a lot of them - test this in production or on Tuesday after transfer has occurred.

                foreach (var monkeyUser in userList.IntitutionUsers)
                {
                    Console.WriteLine($"***************************");
                    Console.WriteLine($"User List Item: {monkeyUser.UserId}-{monkeyUser.FirstName} {monkeyUser.LastName} : {monkeyUser.RankLabel}");
                    Console.WriteLine($"***************************");
                    Console.WriteLine(String.Empty);

                    // *************************************
                    // Get the personal records for the given user
                    // *************************************
                    var records = eValuePersonalRecords.GetUserPersonalRecords(monkeyUser.UserId.ToString());

                    foreach (var personalRecord in records.PeronalRecords)
                    {
                        Console.WriteLine($"##### ##### Personal Records: {personalRecord.RequirementId} {personalRecord.EventDate} {personalRecord.StatusId} ");
                    }

                    // *************************************
                    // Get the schedules for the given user
                    // *************************************
                    var schedule = eValueShedules.GetAll(monkeyUser.UserId.ToString());

                    foreach (var scheduleItem in schedule.Schedules)
                    {
                        Console.WriteLine($"----- Schedule Item: {scheduleItem.ActivityId}-{scheduleItem.BeginDate} {scheduleItem.EndDate} {scheduleItem}");
                    }

                    // *************************************
                    // Get the schedules for the given user in the year 2017 - this time to get the evaluations.
                    // *************************************
                    var scheduleByDate = eValueShedules.GetAll(new DateTime(2017, 1, 1), new DateTime(2017, 12, 31),
                                                               monkeyUser.UserId.ToString());

                    int[] evalStatusList = { -1, 0, 1, 2, 3, 4, 5, 6, 7, 8 };

                    foreach (var scheduleItem in scheduleByDate.Schedules)
                    {
                        foreach (int statusValue in evalStatusList)
                        {
                            // Updated in the last 30 days
                            var evaluationItems = eValueEval.GetResponses(scheduleItem.ActivityId.ToString(), (DateTime)scheduleItem.BeginDate, (DateTime)scheduleItem.EndDate, statusValue, DateTime.Now.AddDays(-30));

                            foreach (var evaluationItem in evaluationItems.EvaluationItems)
                            {
                                Console.WriteLine($"----- ---- Evaluation Item: {evaluationItem.SiteName} {evaluationItem.Name} {evaluationItem.ActivityId}");
                            }
                        }
                    }
                }
            }
        }
Exemple #6
0
        public override void Run(string[] parts, string complete, string channel, string nick)
        {
            var game = SiteApi.GetGame(channel);

            Boardcast(channel + " is currently playing: " + (string.IsNullOrEmpty(game) ? "Nothing" : game));
        }
Exemple #7
0
        protected SiteApi.Viewer GetViewer(string nick)
        {
            var users = SiteApi.GetChatters(SpiffCore.Instance.Channel);

            return((from s in users where s.Username.ToLower().Equals(nick.ToLower()) select s).FirstOrDefault());
        }
Exemple #8
0
        public override void Startup(IService service)
        {
            Instance = this;

            var siteIds = SiteApi.GetSiteIdList();

            foreach (var siteId in siteIds)
            {
                var config = ConfigApi.GetConfig <ConfigInfo>(siteId, nameof(ConfigInfo));
                if (config == null)
                {
                    continue;
                }

                _dict.Add(siteId, config);

                if (!config.IsEnabled || !config.IsInitSyncAll || string.IsNullOrEmpty(config.AccessKeyId) || string.IsNullOrEmpty(config.AccessKeySecret) || string.IsNullOrEmpty(config.BucketName) || string.IsNullOrEmpty(config.BucketEndPoint))
                {
                    continue;
                }

                var client = new OssClient(config.BucketEndPoint, config.AccessKeyId, config.AccessKeySecret);

                var summaryDict = new Dictionary <string, OssObjectSummary>();

                ObjectListing result;
                var           nextMarker = string.Empty;
                do
                {
                    var listObjectsRequest = new ListObjectsRequest(config.BucketName)
                    {
                        Marker  = nextMarker,
                        MaxKeys = 100
                    };
                    if (!string.IsNullOrEmpty(config.BucketPath))
                    {
                        listObjectsRequest.Prefix = config.BucketPath;
                    }
                    result = client.ListObjects(listObjectsRequest);
                    foreach (var summary in result.ObjectSummaries)
                    {
                        summaryDict.Add(summary.Key, summary);
                    }
                    nextMarker = result.NextMarker;
                } while (result.IsTruncated);

                var siteDirectoryPath = SiteApi.GetSitePath(siteId);

                List <string> GetAllFilePathList(DirectoryInfo dir)//搜索文件夹中的文件
                {
                    var fileList = new List <string>();
                    var allFile  = dir.GetFiles();

                    foreach (var fi in allFile)
                    {
                        fileList.Add(fi.FullName);
                    }
                    var allDir = dir.GetDirectories();

                    foreach (var d in allDir)
                    {
                        GetAllFilePathList(d);
                    }
                    return(fileList);
                }

                var allFilePathList = GetAllFilePathList(new DirectoryInfo(siteDirectoryPath));

                foreach (var filePath in allFilePathList)
                {
                    var key = (config.BucketPath + Utils.GetRelativePath(filePath, siteDirectoryPath)).Trim('/');
                    if (!summaryDict.ContainsKey(key))
                    {
                        client.PutObject(config.BucketName, key, filePath);
                    }
                    else
                    {
                        var summary = summaryDict[key];
                        using (var fs = File.Open(filePath, FileMode.Open))
                        {
                            var md5 = OssUtils.ComputeContentMd5(fs, fs.Length);
                            if (md5 != summary.ETag)
                            {
                                client.PutObject(config.BucketName, key, filePath);
                            }
                        }
                    }
                }
            }

            FileSystemWatcher watcher = new FileSystemWatcher(PhysicalApplicationPath);

            watcher.Changed += WatcherOnChanged;

            service.AddSiteMenu(siteId => new Menu
            {
                Text = "阿里云OSS",
                Href = "admin/index.html"
            });
        }
Exemple #9
0
        public override void Run(string[] parts, string complete, string channel, string nick)
        {
            var viewers = SiteApi.GetChatters(channel);

            Boardcast("Random User is: " + viewers.PickRandom().Username);
        }
Exemple #10
0
 public void Init()
 {
     instance = new SiteApi();
 }