コード例 #1
0
 public SelectedSensitiveItemViewModel(SensitiveItemBaseClass sensitiveItem, WeaponAssignments weaponAssignment, RoleAssignments roleAssignment)
 {
     DisplayName = "SI Information";
     if (sensitiveItem != null)
     {
         SensitiveItemBaseClass = sensitiveItem;
     }
     if (weaponAssignment != null)
     {
         WeaponAssignments = weaponAssignment;
     }
     if (roleAssignment.Role == weaponAssignment.Role)
     {
         RoleAssignments = roleAssignment;
         if (roleAssignment.AssignedSoldier.Status == 4)
         {
             SIStatus = "Not Checked Out";
         }
         SIStatus = roleAssignment.AssignedSoldier.StatusString;
     }
     else
     {
         SIStatus = "Not Checked Out";
     }
 }
コード例 #2
0
        public void MovePhase()
        {
            Status = (Status == GameStatus.IdlePhase) ? GameStatus.ActionPhase : GameStatus.IdlePhase;
            if (Status == GameStatus.IdlePhase)
            {
                Day++;
            }

            // arrange each role by priority
            var roles = RoleAssignments.Select(x => x.Value).OrderByDescending(x => x.PhasePriority);

            foreach (var role in roles)
            {
                if (Status == GameStatus.IdlePhase)
                {
                    role.Perform_ActionPhase();
                }
                else if (Status == GameStatus.ActionPhase)
                {
                    role.Perform_IdlePhase();
                }
            }

            // placeholder for Storymaker
            var start_embed = new EmbedBuilder().WithTitle($"{StatusNames[Status]} [Day {Day}]").WithThumbnailUrl(Links.LinkRewriteBlue1);

            Public_GvG.SendMessageAsync("", false, start_embed.Build());
            TimerStarted = DateTime.Now;
        }
コード例 #3
0
 private void SelectedSoldierAssignRoleTabControlViewModel_Deactivated(object sender, DeactivationEventArgs e)
 {
     if (RoleAssignments.Last().AssignedSoldier == NewSoldier)
     {
         AssignedRole = RoleAssignments.Last().Role.RoleName;
     }
 }
コード例 #4
0
        public static void SaveRoleAssignments(RoleAssignments newRoleAssignmet)
        {
            using (IDbConnection cnn = new SQLiteConnection(LoadConnectionString()))
            {
                DynamicParameters parameters = new DynamicParameters();
                if (newRoleAssignmet.AssignedSoldier.SoldierID == -1)
                {
                    DynamicParameters soldQ = new DynamicParameters();
                    soldQ.Add("@LastName", newRoleAssignmet.AssignedSoldier.LastName);
                    soldQ.Add("@FirstName", newRoleAssignmet.AssignedSoldier.FirstName);
                    var soldierId = cnn.Query <int>("select SoldierID from SoldierRoster  where LastName == @LastName AND FirstName == @FirstName ", soldQ);
                    newRoleAssignmet.AssignedSoldier.SoldierID = Convert.ToInt32(soldierId.First());
                }
                parameters.Add("@SoldierID", newRoleAssignmet.AssignedSoldier.SoldierID);
                parameters.Add("@RoleID", newRoleAssignmet.Role.RoleID);

                var output = cnn.Query <RoleAssignments>("select * from RoleAssignments where  SoldierID == @SoldierID AND RoleID = @RoleID ", parameters);
                List <RoleAssignments> tmp = output.ToList();

                if (tmp.Count == 0)
                {
                    cnn.Execute("insert into RoleAssignments (SoldierID,RoleID) values (@SoldierID,@RoleID) ", parameters);
                }
            }
        }
コード例 #5
0
        private void AddRoleListInOrder(List <IGuildUser> members, IEnumerable <IGameRole> roles)
        {
            var array_roles = roles.ToArray();

            for (int i = 0; i < members.Count; i++)
            {
                RoleAssignments.Add(members[i], array_roles[i]);
            }
        }
コード例 #6
0
 public static void RemoveRoleAssignments(RoleAssignments newRoleAssignmet)
 {
     using (IDbConnection cnn = new SQLiteConnection(LoadConnectionString()))
     {
         DynamicParameters parameters = new DynamicParameters();
         parameters.Add("@SoldierID", newRoleAssignmet.AssignedSoldier.SoldierID);
         parameters.Add("@RoleID", newRoleAssignmet.Role.RoleID);
         cnn.Execute("delete from RoleAssignments  where SoldierID = @SoldierID AND RoleID = @RoleID", parameters);
     }
 }
コード例 #7
0
        private static async Task ProvisionAsync(HttpClient httpClient)
        {
            var spaceId = await Spaces.GetOrCreateSpaceAsync("Habitación", "Room", httpClient);

            var resourceId = await Resources.GetOrCreateResourceAsync(spaceId, "IotHub", httpClient);

            bool isProvisioning = true;

            while (isProvisioning)
            {
                var resource = await Resources.GetResourceAsync(resourceId, httpClient);

                if (resource.Status.ToLower() == "provisioning")
                {
                    await Task.Delay(2000);
                }
                else
                {
                    isProvisioning = false;
                }
            }

            var deviceId = await Devices.GetOrCreateDeviceAsync("Dispositivo 1", "ABC123",
                                                                spaceId, httpClient);

            var device = await Devices.GetDeviceAsync(deviceId, httpClient);

            var sensorId = await Sensors.GetOrCreateSensorAsync("Temperature", "TEMP2000", deviceId,
                                                                httpClient);

            var matcherId = await Matchers.GetOrCreateMatcherAsync("Matcher 1", spaceId, "Temperature",
                                                                   httpClient);

            var script = new StreamReader(@"js\udf.js").ReadToEnd();
            var udfId  = await UserDefinedFunctions.GetOrCreateUserDefinedFunctionAsync("Temperature-Udf-1",
                                                                                        spaceId, new[] { matcherId },
                                                                                        script,
                                                                                        httpClient);

            var roleAssignmentId = await RoleAssignments.CreateRoleAssignmentAsync(udfId,
                                                                                   spaceId, httpClient);

            Console.WriteLine($"SpaceId {spaceId}");
            Console.WriteLine($"ResourceId {resourceId}");
            Console.WriteLine($"DeviceId {deviceId}");
            Console.WriteLine($"ConnectionString {device.ConnectionString}");
            Console.WriteLine($"SensorId {sensorId}");
            Console.WriteLine($"MatcherId {matcherId}");
            Console.WriteLine($"UdfId {udfId}");
            Console.WriteLine($"RoleAssignmentId {roleAssignmentId}");
        }
コード例 #8
0
        public SelectedSoldierInfoViewModel(Soldier soldier, List <WeaponAssignments> weaponAssignments, List <RoleAssignments> roleAssignments, List <Roles> roles)
        {
            if (soldier != null)
            {
                WindowManager        = new WindowManager();
                DisplayName          = "Soldier Information";
                Soldier              = soldier;
                Rank                 = new List <string>();
                AllWeaponAssignments = weaponAssignments;
                foreach (KeyValuePair <int, string> keyValuePair in RankDict)
                {
                    Rank.Add(keyValuePair.Value);
                }

                Positions = roleAssignments;
                foreach (RoleAssignments roleAssignments1 in roleAssignments)
                {
                    if (soldier == roleAssignments1.AssignedSoldier)
                    {
                        SelectedRole = roleAssignments1;
                        break;
                    }
                }
                if (SelectedRole == null)
                {
                    SelectedRole = new RoleAssignments();
                }
                else
                {
                    foreach (WeaponAssignments weaponAssignments1 in weaponAssignments)
                    {
                        if (weaponAssignments1.Role == SelectedRole.Role)
                        {
                            WeaponAssignments = weaponAssignments1;
                            break;
                        }
                    }
                }

                RoleAssignments = roleAssignments;
                Roles           = roles;
                Statuses        = new List <string>();
                foreach (KeyValuePair <int, string> keyValuePair1 in DrillStatus)
                {
                    Statuses.Add(keyValuePair1.Value);
                }
                SelectedStatus = Soldier.StatusString;
            }
        }
コード例 #9
0
        partial void NonSecurityAdministrators_PreprocessQuery(ref IQueryable <UserRegistration> query)
        {
            // Get a list of all the Security Admins
            var ra = RoleAssignments
                     .Where(a => a.RoleName == "Administrator")
                     .Select(a => new { a.SourceAccountName })
                     .Execute()
                     .ToList();

            // Create a nice delimited string... query does not like lists
            var listOfAdmins = ra.Aggregate("", (current, u) => current + (u.SourceAccountName + ";"));

            // Update the query to exclude the list of Security Administrators
            query = query.Where(u => !listOfAdmins.Contains(u.UserName)).Select(u => u);
        }
コード例 #10
0
ファイル: AzScope.cs プロジェクト: baoduy/HBD.Framework
        protected override void OnSaving()
        {
            if (IsNew)
            {
                IAzItem = Application.CreateScope(Name, Description);
            }
            else
            {
                IAzScope.Name        = Name;
                IAzScope.Description = Description;
            }

            Roles.ForEach(r => r.Save());
            Groups.ForEach(g => g.Save());
            RoleAssignments.ForEach(r => r.Save());

            IAzScope.Submit();
        }
コード例 #11
0
        public void AssignRoleBtn()
        {
            foreach (RoleAssignments roleAssignments in RoleAssignments)
            {
                if (roleAssignments.AssignedSoldier == Soldier)
                {
                    RoleAssignments.Remove(roleAssignments);
                    break;
                }
            }
            RoleAssignments newRoleAssignment = new RoleAssignments();

            newRoleAssignment.AssignedSoldier = Soldier;
            newRoleAssignment.Role            = SelectedRole;
            RoleAssignments.Add(newRoleAssignment);
            ArmyDataBaseConnector.SaveRoleAssignments(newRoleAssignment);
            this.TryClose();
        }
コード例 #12
0
        public void RemoveSoldierBtn()
        {
            if (SelectedSoldier != null)
            {
                DeactivateItem(ActiveItem, true);
                foreach (RoleAssignments roleAssignments in RoleAssignments)
                {
                    if (roleAssignments.AssignedSoldier == SelectedSoldier)
                    {
                        ArmyDataBaseConnector.RemoveRoleAssignments(roleAssignments);
                        RoleAssignments.Remove(roleAssignments);
                        break;
                    }
                }
                ArmyDataBaseConnector.RemoveSoldierInfo(SelectedSoldier);

                SoldierList.Remove(SelectedSoldier);
                BindSoldiers = new BindableCollection <Soldier>(SoldierList);
            }
        }
コード例 #13
0
        public async Task <EmbedBuilder> PatrolQueue(IGuildUser user, SocketCommandContext Context, IEnumerable <Vector2D> orderedPatrol)
        {
            var start_embed = new EmbedBuilder();

            // we run specific Game related checks before passing to the Role.
            if (!RoleAssignments.ContainsKey(user))
            {
                return(start_embed
                       .WithTitle(ResultMessages.PatrolError)
                       .WithDescription(Links.LinkRewriteBlue1));
            }
            var role = RoleAssignments[user];
            var prio = (Context.IsPrivate) ? CommandPriority.DM :
                       (Context.Guild == null) ? CommandPriority.Public :
                       (IsOnClubChannel(Context.Channel)) ? CommandPriority.Channel :
                       CommandPriority.Public;
            await RoleAssignments[user].Patrol(orderedPatrol.ToArray(), prio);

            return(start_embed);
        }
コード例 #14
0
        // stated to change.

        public async Task CreateGame(IUser Hoster, IGuild Host, ITextChannel public_GvG, ITextChannel guardian_Channel, ITextChannel gaia_Channel, ITextChannel oC_Channel)
        {
            if (Status > GameStatus.Cancelled && Status < GameStatus.GaiaEnding)
            {
                throw new AlreadyOngoingGameGvGGameException();
            }

            Day = 0;

            this.Hoster = Hoster;

            Guardian        = Host.Roles.First((x) => x.Name == Parent.config.guardian_chan_name);
            Gaia            = Host.Roles.First((x) => x.Name == Parent.config.gaia_chan_name);
            Occult_Club     = Host.Roles.First((x) => x.Name == Parent.config.oc_chan_name);
            GvG_Player      = Host.Roles.First((x) => x.Name == Parent.config.gvg_player_role_name);
            GvG_Dead_Player = Host.Roles.First((x) => x.Name == Parent.config.gvg_dead_player_role_name);

            ServerHost       = Host;
            Public_GvG       = public_GvG;
            Gaia_Channel     = gaia_Channel;
            Guardian_Channel = guardian_Channel;
            OC_Channel       = oC_Channel;

            GaiaMembers.Clear();
            GuardianMembers.Clear();
            OCMembers.Clear();
            Civilians.Clear();
            DeadPeople.Clear();

            RoleAssignments.Clear();

            Status = GameStatus.GamePreparation;

            await(await Host.GetTextChannelsAsync()).First((x) => x.Name == Parent.config.pub_gvg_chan_name)
            .SendMessageAsync(null, false, new EmbedBuilder()
                              .WithTitle(ResultMessages.CreateGameSuccess)
                              .WithDescription(string.Format(ResultMessages.CreateGameSuccess_Desc, Hoster.Mention))
                              .Build());
        }
コード例 #15
0
 private void SelectedSoldierAssignRoleTabControlViewModel_Deactivated(object sender, DeactivationEventArgs e)
 {
     if (RoleAssignments.Count() > 0)
     {
         if (RoleAssignments.Last().AssignedSoldier == Soldier)
         {
             Platoon  = RoleAssignments.Last().Role.PlatoonString;
             Squad    = RoleAssignments.Last().Role.SquadString;
             FireTeam = RoleAssignments.Last().Role.FireTeamString;
             SensitiveItemBaseClasses = new BindableCollection <SensitiveItemBaseClass>();
             SelectedRoleName         = RoleAssignments.Last().Role.RoleName;
             foreach (WeaponAssignments weaponAssignments in AllWeaponAssignments)
             {
                 if (weaponAssignments.Role == RoleAssignments.Last().Role)
                 {
                     foreach (SensitiveItemBaseClass sensitiveItemBaseClass in weaponAssignments.AssignedSI)
                     {
                         SensitiveItemBaseClasses.Add(sensitiveItemBaseClass);
                     }
                 }
             }
         }
     }
 }
コード例 #16
0
 public bool IsAPlayer(IUser user)
 {
     return(RoleAssignments.Count(x => x.Key.Id == user.Id) > 0);
 }
コード例 #17
0
 public void RemovePositionBtn()
 {
     RoleAssignments.Remove(SelectedRole);
     SelectedRoleName = "";
 }
コード例 #18
0
        private async Task <List <RoleAssignments> > GetRoleAssignments(string userId)
        {
            List <RoleAssignments> assignments = new List <RoleAssignments>();

            // get the list of applications to consider for roles
            var appIds = CasConfig.AzureApplicationIds;

            if (appIds == null || appIds.Count() < 1)
            {
                return(assignments);
            }

            // get an access token
            var accessToken = await AccessTokenFetcher.GetAccessToken("https://graph.microsoft.com", "GRAPH");

            // lookup all specified applications
            //   NOTE: catch the possible 403 Forbidden because access rights have not been granted
            List <AppRoles> apps   = new List <AppRoles>();
            string          filter = "$filter=" + string.Join(" or ", appIds.Select(appId => $"appId eq '{appId}'"));
            string          select = "$select=appId,appRoles";

            using (var request = new HttpRequestMessage()
            {
                RequestUri = new Uri($"https://graph.microsoft.com/beta/applications/?{filter}&{select}"),
                Method = HttpMethod.Get
            })
            {
                request.Headers.Add("Authorization", $"Bearer {accessToken}");
                using (var response = await this.HttpClient.SendAsync(request))
                {
                    var raw = await response.Content.ReadAsStringAsync();

                    if ((int)response.StatusCode == 403) // Forbidden
                    {
                        throw new Exception("GetRoleAssignments: the auth identity does not have the Directory.Read.All right");
                    }
                    else if (!response.IsSuccessStatusCode)
                    {
                        throw new Exception($"GetRoleAssignments: HTTP {(int)response.StatusCode} - {raw}");
                    }
                    dynamic json   = JObject.Parse(raw);
                    var     values = (JArray)json.value;
                    foreach (dynamic value in values)
                    {
                        var app = new AppRoles()
                        {
                            AppId = (string)value.appId
                        };
                        apps.Add(app);
                        foreach (dynamic appRole in value.appRoles)
                        {
                            app.Roles.Add((string)appRole.id, (string)appRole.value);
                        }
                    }
                }
            };

            // get the roles that the user is in
            using (var request = new HttpRequestMessage()
            {
                RequestUri = new Uri($"https://graph.microsoft.com/beta/users/{userId}/appRoleAssignments"),
                Method = HttpMethod.Get
            })
            {
                request.Headers.Add("Authorization", $"Bearer {accessToken}");
                using (var response = await this.HttpClient.SendAsync(request))
                {
                    var raw = await response.Content.ReadAsStringAsync();

                    if ((int)response.StatusCode == 404) // Not Found
                    {
                        // ignore, the user might not be in the directory
                        return(assignments);
                    }
                    else if (!response.IsSuccessStatusCode)
                    {
                        throw new Exception($"GetRoleAssignments: HTTP {(int)response.StatusCode} - {raw}");
                    }
                    dynamic json   = JObject.Parse(raw);
                    var     values = (JArray)json.value;
                    foreach (dynamic value in values)
                    {
                        var appRoleId = (string)value.appRoleId;
                        var app       = apps.FirstOrDefault(a => a.Roles.ContainsKey(appRoleId));
                        if (app != null)
                        {
                            var roleName           = app.Roles[appRoleId];
                            var existingAssignment = assignments.FirstOrDefault(ra => ra.AppId == app.AppId);
                            if (existingAssignment != null)
                            {
                                existingAssignment.Roles.Add(roleName);
                            }
                            else
                            {
                                var assignment = new RoleAssignments()
                                {
                                    AppId = (string)app.AppId
                                };
                                assignment.Roles.Add(roleName);
                                assignments.Add(assignment);
                            }
                        }
                    }
                }
            };

            return(assignments);
        }