Here are the examples of the csharp api string.Compare(string, int, string, int, int, System.StringComparison) taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.
2233 Examples
19
View Source File : ColumnRef.cs
License : MIT License
Project Creator : 0x1000000
License : MIT License
Project Creator : 0x1000000
public int CompareTo(ColumnRef? other)
{
if (ReferenceEquals(this, other)) return 0;
if (ReferenceEquals(null, other)) return 1;
var tableComparison = this.Table.CompareTo(other.Table);
if (tableComparison != 0) return tableComparison;
return string.Compare(this.Name, other.Name, StringComparison.Ordinal);
}
19
View Source File : TableRef.cs
License : MIT License
Project Creator : 0x1000000
License : MIT License
Project Creator : 0x1000000
public int CompareTo(TableRef? other)
{
if (ReferenceEquals(this, other)) return 0;
if (ReferenceEquals(null, other)) return 1;
var schemaComparison = string.Compare(this.Schema, other.Schema, StringComparison.Ordinal);
if (schemaComparison != 0) return schemaComparison;
return string.Compare(this.Name, other.Name, StringComparison.Ordinal);
}
19
View Source File : UserCommandHandler.cs
License : GNU Lesser General Public License v3.0
Project Creator : 8720826
License : GNU Lesser General Public License v3.0
Project Creator : 8720826
public async Task<Unit> Handle(ResetPreplacedwordCommand command, CancellationToken cancellationToken)
{
var email = command.Email;
var code = command.Code;
var preplacedword = command.Preplacedword;
var user = await _userDomainService.Get(p => p.Email == email);
if (user == null)
{
await _bus.RaiseEvent(new DomainNotification("输入信息有误,请确认邮箱是否无误"));
return Unit.Value;
}
string key = string.Format(RedisKey.ResetPreplacedword, user.Id);// $"resetpreplacedword_{user.Id}";
long ttl = await _redisDb.KeyTimeToLive(key);
if (ttl < 0)
{
await _bus.RaiseEvent(new DomainNotification($"找回密码验证码已超时,请重试"));
return Unit.Value;
}
string emailCode = await _redisDb.StringGet<string>(key);
if (string.Compare(emailCode ,code,true) != 0)
{
await _bus.RaiseEvent(new DomainNotification($"找回密码验证码已失效,请重试"));
return Unit.Value;
}
await _redisDb.KeyDelete(key);
user.Preplacedword = preplacedword.ToMd5();
await _userDomainService.Update(user);
if (await Commit())
{
await _bus.RaiseEvent(new ResetPreplacedwordEvent(user)).ConfigureAwait(false);
}
return Unit.Value;
}
19
View Source File : SkinnedMeshAligner.cs
License : Apache License 2.0
Project Creator : A7ocin
License : Apache License 2.0
Project Creator : A7ocin
private static Transform RecursiveFindBoneInHierarchy(Transform bone, Transform hierarchyRoot, Dictionary<Transform, Transform> boneMap)
{
if (bone == null)
{
return null;
}
Transform res;
if (boneMap.TryGetValue(bone, out res))
{
return res;
}
if (string.Compare(hierarchyRoot.name, bone.name) == 0)
{
boneMap.Add(bone, hierarchyRoot);
return hierarchyRoot;
}
else
{
res = null;
var parent = RecursiveFindBoneInHierarchy(bone.parent, hierarchyRoot, boneMap);
if (parent != null)
{
res = parent.Find(bone.name);
if (res != null)
{
boneMap.Add(bone, res);
}
}
return res;
}
}
19
View Source File : PanelChat.cs
License : Apache License 2.0
Project Creator : AantCoder
License : Apache License 2.0
Project Creator : AantCoder
private void PlayerItemMenu(ListBoxPlayerItem item)
{
if (item.Groupreplacedle) return;
var listMenu = new List<FloatMenuOption>();
var myLogin = SessionClientController.My.Login;
///Личное сообщение
if (item.Login != myLogin)
{
listMenu.Add(new FloatMenuOption("OCity_Dialog_PrivateMessage".Translate(), () =>
{
var privateChat = String.Compare(myLogin, item.Login) < 0
? myLogin + " · " + item.Login
: item.Login + " · " + myLogin;
var index = lbCannals.DataSource.IndexOf(privateChat);
if (index >= 0)
{
lbCannals.SelectedIndex = index;
return;
}
//создаем канал
var mainCannal = SessionClientController.Data.Chats[0];
SessionClientController.Command((connect) =>
{
connect.PostingChat(mainCannal.Id, "/createChat '" + privateChat.Replace("'", "''") + "' '" + item.Login.Replace("'", "''") + "'");
});
lbCannalsGoToChat = privateChat;
}));
}
///Добавить участника
if (lbCannals.SelectedIndex > 0 && SessionClientController.Data.Chats.Count > lbCannals.SelectedIndex)
{
var selectCannal = SessionClientController.Data.Chats[lbCannals.SelectedIndex];
if (!item.InChat)
{
listMenu.Add(new FloatMenuOption("OCity_Dialog_ChennelAddUser".Translate(), () =>
{
SessionClientController.Command((connect) =>
{
connect.PostingChat(selectCannal.Id, "/addPlayer '" + item.Login.Replace("'", "''") + "'");
});
}));
}
}
if (SessionClientController.Data.Players.ContainsKey(item.Login))
listMenu.Add(new FloatMenuOption("OCity_Dialog_ChennelPlayerInfo".Translate(), () =>
{
var pl = SessionClientController.Data.Players[item.Login];
Dialog_MainOnlineCity.ShowInfo("OCity_Dialog_ChennelPlayerInforeplacedle".Translate() + item.Login, pl.GetTextInfo());
}));
if (listMenu.Count == 0) return;
var menu = new FloatMenu(listMenu);
Find.WindowStack.Add(menu);
}
19
View Source File : RuntimeWeaponGenerator.cs
License : MIT License
Project Creator : Abdelfattah-Radwan
License : MIT License
Project Creator : Abdelfattah-Radwan
public static WeaponProperties GenerateRandomWeaponProperties(string categoryName, WeaponPropertiesTemplate template)
{
float chance = Random.value;
float multiplier = 1f;
WeaponRank rank = WeaponRank.Common;
if (chance <= template.CommonRankChance)
{
multiplier = template.CommonRankMultiplier;
rank = WeaponRank.Common;
}
else if (chance > template.CommonRankChance && chance <= template.UncommonRankChance)
{
multiplier = template.UncommonRankChance;
rank = WeaponRank.Uncommon;
}
else if (chance > template.UncommonRankChance && chance <= template.RareRankChance)
{
multiplier = template.RareRankMultiplier;
rank = WeaponRank.Rare;
}
else if (chance > template.RareRankChance && chance <= template.EpicRankChance)
{
multiplier = template.EpicRankMultiplier;
rank = WeaponRank.Epic;
}
else if (chance > template.EpicRankChance && chance <= template.LegendaryRankChance)
{
multiplier = template.LegendaryRankMultiplier;
rank = WeaponRank.Legendary;
}
for (int i = 0; i < template.Categories.Count; i++)
{
WeaponProperties category = template.Categories[i];
if (category != null)
{
if (!string.IsNullOrEmpty(category.CategoryName) || !string.IsNullOrWhiteSpace(category.CategoryName))
{
if (string.Compare(category.CategoryName, categoryName) == 0)
{
return new WeaponProperties()
{
CategoryName = categoryName,
Rank = rank,
Damage = Random.Range(category.Damage, category.Damage * multiplier),
Accuracy = Random.Range(category.Accuracy, Mathf.Max(0f, category.Accuracy - ((category.Accuracy * multiplier) - category.Accuracy))),
Recoil = Random.Range(category.Recoil, Mathf.Max(0f, category.Recoil - ((category.Recoil * multiplier) - category.Recoil))),
FireRate = Random.Range(category.FireRate, Mathf.Max(0f, category.FireRate - ((category.FireRate * multiplier) - category.FireRate))),
ProjectilesPerShot = Mathf.RoundToInt(Random.Range(category.ProjectilesPerShot, category.ProjectilesPerShot * multiplier)),
MagazineSize = Mathf.RoundToInt(Random.Range(category.MagazineSize, category.MagazineSize * multiplier)),
};
}
}
}
}
return new WeaponProperties();
}
19
View Source File : AudioManagerInspector.cs
License : MIT License
Project Creator : absurd-joy
License : MIT License
Project Creator : absurd-joy
void DrawCategories( Event e ) {
// do any housework before we start drawing
if ( moveQueued ) {
// make a temp copy
List<SoundFX> origSoundList = new List<SoundFX>( audioManager.soundGroupings[origGroup].soundList );
SoundFX temp = origSoundList[origIndex];
List<SoundFX> moveToSoundList = new List<SoundFX>( audioManager.soundGroupings[moveToGroup].soundList );
// add it to the move to group
moveToSoundList.Add( temp );
audioManager.soundGroupings[moveToGroup].soundList = moveToSoundList.ToArray();
// and finally, remove it from the original group
origSoundList.RemoveAt( origIndex );
audioManager.soundGroupings[origGroup].soundList = origSoundList.ToArray();
Debug.Log( "> Moved '" + temp.name + "' from " + "'" + audioManager.soundGroupings[origGroup].name + "' to '" + audioManager.soundGroupings[moveToGroup].name );
MarkDirty();
moveQueued = false;
}
// switch to the next group
if ( nextGroup > -1 ) {
selectedGroup = nextGroup;
nextGroup = -1;
}
// add a sound
if ( addSound ) {
List<SoundFX> soundList = new List<SoundFX>( audioManager.soundGroupings[selectedGroup].soundList );
SoundFX soundFX = new SoundFX();
soundFX.name = audioManager.soundGroupings[selectedGroup].name.ToLower() + "_new_unnamed_sound_fx";
soundList.Add( soundFX );
audioManager.soundGroupings[selectedGroup].soundList = soundList.ToArray();
MarkDirty();
addSound = false;
}
// sort the sounds
if ( sortSounds ) {
List<SoundFX> soundList = new List<SoundFX>( audioManager.soundGroupings[selectedGroup].soundList );
soundList.Sort( delegate ( SoundFX sfx1, SoundFX sfx2 ) { return string.Compare( sfx1.name, sfx2.name ); } );
audioManager.soundGroupings[selectedGroup].soundList = soundList.ToArray();
MarkDirty();
sortSounds = false;
}
// delete a sound
if ( deleteSoundIdx > -1 ) {
List<SoundFX> soundList = new List<SoundFX>( audioManager.soundGroupings[selectedGroup].soundList );
soundList.RemoveAt( deleteSoundIdx );
audioManager.soundGroupings[selectedGroup].soundList = soundList.ToArray();
MarkDirty();
deleteSoundIdx = -1;
}
// duplicate a sound
if ( dupeSoundIdx > -1 ) {
List<SoundFX> soundList = new List<SoundFX>( audioManager.soundGroupings[selectedGroup].soundList );
SoundFX origSoundFX = soundList[dupeSoundIdx];
// clone this soundFX
string json = JsonUtility.ToJson( origSoundFX );
SoundFX soundFX = JsonUtility.FromJson<SoundFX>( json );
soundFX.name += "_duplicated";
soundList.Insert( dupeSoundIdx + 1, soundFX );
audioManager.soundGroupings[selectedGroup].soundList = soundList.ToArray();
MarkDirty();
dupeSoundIdx = -1;
}
if ( e.type == EventType.Repaint ) {
groups.Clear();
}
GUILayout.Space( 6f );
Color defaultColor = GUI.contentColor;
BeginContents();
if ( DrawHeader( "Sound FX Groups", true ) ) {
EditorGUILayout.BeginVertical( GUI.skin.box );
soundGroups.Clear();
for ( int i = 0; i < audioManager.soundGroupings.Length; i++ ) {
soundGroups.Add( audioManager.soundGroupings[i] );
}
for ( int i = 0; i < soundGroups.size; i++ ) {
EditorGUILayout.BeginHorizontal();
{
if ( i == selectedGroup ) {
GUI.contentColor = ( i == editGroup ) ? Color.white : Color.yellow;
} else {
GUI.contentColor = defaultColor;
}
if ( ( e.type == EventType.KeyDown ) && ( ( e.keyCode == KeyCode.Return ) || ( e.keyCode == KeyCode.KeypadEnter ) ) ) {
// toggle editing
if ( editGroup >= 0 ) {
editGroup = -1;
}
Event.current.Use();
}
if ( i == editGroup ) {
soundGroups[i].name = GUILayout.TextField( soundGroups[i].name, GUILayout.MinWidth( Screen.width - 80f ) );
} else {
GUILayout.Label( soundGroups[i].name, ( i == selectedGroup ) ? EditorStyles.whiteLabel : EditorStyles.label, GUILayout.ExpandWidth( true ) );
}
GUILayout.FlexibleSpace();
if ( GUILayout.Button( GUIContent.none, "OL Minus", GUILayout.Width(17f) ) ) { // minus button
if ( EditorUtility.DisplayDialog( "Delete '" + soundGroups[i].name + "'", "Are you sure you want to delete the selected sound group?", "Continue", "Cancel" ) ) {
soundGroups.RemoveAt( i );
MarkDirty();
}
}
}
EditorGUILayout.EndHorizontal();
// build a list of items
Rect lastRect = GUILayoutUtility.GetLastRect();
if ( e.type == EventType.Repaint ) {
groups.Add ( new ItemRect( i, lastRect, null ) );
}
if ( ( e.type == EventType.MouseDown ) && lastRect.Contains( e.mousePosition ) ) {
if ( ( i != selectedGroup ) || ( e.clickCount == 2 ) ) {
nextGroup = i;
if ( e.clickCount == 2 ) {
editGroup = i;
} else if ( editGroup != nextGroup ) {
editGroup = -1;
}
Repaint();
}
}
}
// add the final plus button
EditorGUILayout.BeginHorizontal();
GUILayout.FlexibleSpace();
if ( GUILayout.Button( GUIContent.none, "OL Plus", GUILayout.Width(17f) ) ) { // plus button
soundGroups.Add( new SoundGroup( "unnamed sound group" ) );
selectedGroup = editGroup = soundGroups.size - 1;
MarkDirty();
}
EditorGUILayout.EndHorizontal();
EditorGUILayout.EndVertical();
// reset the color
GUI.contentColor = defaultColor;
// the sort and import buttons
EditorGUILayout.BeginHorizontal();
GUILayout.FlexibleSpace();
if ( GUILayout.Button( "Sort", GUILayout.Width( 70f ) ) ) {
soundGroups.Sort( delegate( SoundGroup sg1, SoundGroup sg2 ) { return string.Compare( sg1.name, sg2.name ); } );
MarkDirty();
}
EditorGUILayout.EndHorizontal();
// draw a rect around the selected item
if ( ( selectedGroup >= 0 ) && ( selectedGroup < groups.size ) ) {
EditorGUI.DrawRect( groups[selectedGroup].rect, new Color( 1f, 1f, 1f, 0.06f ) );
}
// finally move the sound groups back into the audio manager
if ( soundGroups.size > 0 ) {
audioManager.soundGroupings = soundGroups.ToArray();
}
// calculate the drop area rect
if ( ( e.type == EventType.Repaint ) && ( groups.size > 0 ) ) {
dropArea.x = groups[0].rect.x;
dropArea.y = groups[0].rect.y;
dropArea.width = groups[0].rect.width;
dropArea.height = ( groups[groups.size-1].rect.y - groups[0].rect.y ) + groups[groups.size-1].rect.height;
}
}
// draw the sound group properties now
DrawSoundGroupProperties();
EndContents();
EditorGUILayout.HelpBox("Create and delete sound groups by clicking + and - respectively. Double click to rename sound groups. Drag and drop sounds from below to the groups above to move them.", MessageType.Info);
}
19
View Source File : AudioManager.cs
License : MIT License
Project Creator : absurd-joy
License : MIT License
Project Creator : absurd-joy
static public string[] GetSoundFXNames( string currentValue, out int currentIdx ) {
currentIdx = 0;
names.Clear();
if ( theAudioManager == null ) {
if ( !FindAudioManager() ) {
return defaultSound;
}
}
names.Add( nullSound.name );
for ( int group = 0; group < theAudioManager.soundGroupings.Length; group++ ) {
for ( int i = 0; i < theAudioManager.soundGroupings[group].soundList.Length; i++ ) {
if ( string.Compare( currentValue, theAudioManager.soundGroupings[group].soundList[i].name, true ) == 0 ) {
currentIdx = names.Count;
}
names.Add( theAudioManager.soundGroupings[group].name + "/" + theAudioManager.soundGroupings[group].soundList[i].name );
}
}
//names.Sort( delegate( string s1, string s2 ) { return s1.CompareTo( s2 ); } );
return names.ToArray();
}
19
View Source File : RoomFilterItem.cs
License : GNU Lesser General Public License v3.0
Project Creator : acnicholas
License : GNU Lesser General Public License v3.0
Project Creator : acnicholas
private static int ParameterComparedToString(Parameter param, string value)
{
// ReSharper disable once InconsistentNaming
const int Result = 441976;
if (!param.HasValue || string.IsNullOrWhiteSpace(value))
{
return Result;
}
switch (param.StorageType)
{
case StorageType.Double:
if (double.TryParse(value, out var parse))
{
return param.AsDouble().CompareTo(parse);
}
break;
case StorageType.String:
#pragma warning disable CA1307 // Specify StringComparison
return string.Compare(param.replacedtring(), value, StringComparison.Ordinal);
#pragma warning restore CA1307 // Specify StringComparison
case StorageType.Integer:
if (int.TryParse(value, out var iparse))
{
return param.AsInteger().CompareTo(iparse);
}
break;
case StorageType.ElementId:
return Result;
default:
return Result;
}
return Result;
}
19
View Source File : VssStringComparer.cs
License : MIT License
Project Creator : actions
License : MIT License
Project Creator : actions
[System.Diagnostics.Codereplacedysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "y")]
[System.Diagnostics.Codereplacedysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "x")]
public int Compare(string x, int indexX, string y, int indexY, int length) { return String.Compare(x, indexX, y, indexY, length, m_stringComparison); }
19
View Source File : JsonWebTokenUtilities.cs
License : MIT License
Project Creator : actions
License : MIT License
Project Creator : actions
internal static IDictionary<string, object> TranslateToJwtClaims(IEnumerable<Claim> claims)
{
ArgumentUtility.CheckForNull(claims, nameof(claims));
Dictionary<string, object> ret = new Dictionary<string, object>();
//there are two claim names that get special treatment
foreach (Claim claim in claims)
{
string claimName = claim.Type;
if (string.Compare(claimName, JsonWebTokenClaims.NameIdLongName, StringComparison.Ordinal) == 0)
{
claimName = JsonWebTokenClaims.NameId;
}
else if (string.Compare(claimName, JsonWebTokenClaims.IdenreplacedyProviderLongName, StringComparison.Ordinal) == 0)
{
claimName = JsonWebTokenClaims.IdenreplacedyProvider;
}
ret.Add(claimName, claim.Value);
}
return ret;
}
19
View Source File : JsonWebTokenUtilities.cs
License : MIT License
Project Creator : actions
License : MIT License
Project Creator : actions
internal static IEnumerable<Claim> TranslateFromJwtClaims(IDictionary<string, object> claims)
{
ArgumentUtility.CheckForNull(claims, nameof(claims));
List<Claim> ret = new List<Claim>();
//there are two claim names that get special treatment
foreach (var claim in claims)
{
string claimName = claim.Key;
if (string.Compare(claimName, JsonWebTokenClaims.NameId, StringComparison.Ordinal) == 0)
{
claimName = JsonWebTokenClaims.NameIdLongName;
}
else if (string.Compare(claimName, JsonWebTokenClaims.IdenreplacedyProvider, StringComparison.Ordinal) == 0)
{
claimName = JsonWebTokenClaims.IdenreplacedyProviderLongName;
}
ret.Add(new Claim(claimName, claim.Value.ToString()));
}
return ret;
}
19
View Source File : JsonWebTokenUtilities.cs
License : MIT License
Project Creator : actions
License : MIT License
Project Creator : actions
private static void ValidateAudience(JsonWebToken token, JsonWebTokenValidationParameters parameters)
{
ArgumentUtility.CheckForNull(token, nameof(token));
ArgumentUtility.CheckForNull(parameters, nameof(parameters));
if (!parameters.ValidateAudience)
{
return;
}
ArgumentUtility.CheckStringForNullOrEmpty(token.Audience, nameof(token.Audience));
ArgumentUtility.CheckEnumerableForNullOrEmpty(parameters.AllowedAudiences, nameof(parameters.AllowedAudiences));
foreach (string audience in parameters.AllowedAudiences)
{
if (string.Compare(audience, token.Audience, StringComparison.OrdinalIgnoreCase) == 0)
{
return;
}
}
throw new InvalidAudienceException(); //validation exception;
}
19
View Source File : JsonWebTokenUtilities.cs
License : MIT License
Project Creator : actions
License : MIT License
Project Creator : actions
private static void ValidateIssuer(JsonWebToken token, JsonWebTokenValidationParameters parameters)
{
ArgumentUtility.CheckForNull(token, nameof(token));
ArgumentUtility.CheckForNull(parameters, nameof(parameters));
if (!parameters.ValidateIssuer)
{
return;
}
ArgumentUtility.CheckStringForNullOrEmpty(token.Issuer, nameof(token.Issuer));
ArgumentUtility.CheckEnumerableForNullOrEmpty(parameters.ValidIssuers, nameof(parameters.ValidIssuers));
foreach (string issuer in parameters.ValidIssuers)
{
if (string.Compare(issuer, token.Issuer, StringComparison.OrdinalIgnoreCase) == 0)
{
return;
}
}
throw new InvalidIssuerException(); //validation exception;
}
19
View Source File : ControlDataRepository.cs
License : MIT License
Project Creator : Actipro
License : MIT License
Project Creator : Actipro
public IEnumerable<ControlData> FindByCategory(string category) {
return Controls.Where(x => string.Compare(x.Category, category, StringComparison.InvariantCultureIgnoreCase) == 0);
}
19
View Source File : ChildObject.cs
License : MIT License
Project Creator : Actipro
License : MIT License
Project Creator : Actipro
protected override bool ShouldSerializeName() {
return (0 != string.Compare(this.Name, "Child"));
}
19
View Source File : ParentObject.cs
License : MIT License
Project Creator : Actipro
License : MIT License
Project Creator : Actipro
protected override bool ShouldSerializeName() {
return (0 != string.Compare(this.Name, "Parent"));
}
19
View Source File : ChildObject1.cs
License : MIT License
Project Creator : Actipro
License : MIT License
Project Creator : Actipro
protected override bool ShouldSerializeName() {
return (0 != string.Compare(this.Name, "Child1"));
}
19
View Source File : ChildObject3.cs
License : MIT License
Project Creator : Actipro
License : MIT License
Project Creator : Actipro
protected override bool ShouldSerializeName() {
return (0 != string.Compare(this.Name, "Child3"));
}
19
View Source File : ChildObject4.cs
License : MIT License
Project Creator : Actipro
License : MIT License
Project Creator : Actipro
protected override bool ShouldSerializeName() {
return (0 != string.Compare(this.Name, "Child4"));
}
19
View Source File : ChildObject2.cs
License : MIT License
Project Creator : Actipro
License : MIT License
Project Creator : Actipro
protected override bool ShouldSerializeName() {
return (0 != string.Compare(this.Name, "Child2"));
}
19
View Source File : ApplicationViewModel.cs
License : MIT License
Project Creator : Actipro
License : MIT License
Project Creator : Actipro
private ProducreplacedemInfo FindProductInfo(Uri uri) {
if ((uri != null) && (productData != null)) {
var targetPath = uri.LocalPath;
foreach (var familyInfo in productData.ProductFamilies) {
if ((familyInfo.OverviewItem != null) && (string.Compare(familyInfo.OverviewItem.Path, targetPath, StringComparison.OrdinalIgnoreCase) == 0))
return familyInfo.OverviewItem;
foreach (var itemInfo in familyInfo.Items) {
if (string.Compare(itemInfo.Path, targetPath, StringComparison.OrdinalIgnoreCase) == 0)
return itemInfo;
}
}
foreach (var itemInfo in productData.Utilities.Items) {
if (string.Compare(itemInfo.Path, targetPath, StringComparison.OrdinalIgnoreCase) == 0)
return itemInfo;
}
}
return null;
}
19
View Source File : ConvertItemHelper.cs
License : MIT License
Project Creator : Actipro
License : MIT License
Project Creator : Actipro
public static IList GetTrail(object rooreplacedem, string path) {
// Make sure the specified path is valid
if (string.IsNullOrEmpty(path))
return null;
// If the root item was not preplaceded, then we cannot build a trail
MyComputerData myComputerData = rooreplacedem as MyComputerData;
if (null == myComputerData)
return null;
// Break the path up based on the available path separators
string[] pathEntries = path.Split(new char[] { Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar },
StringSplitOptions.RemoveEmptyEntries);
if (null == pathEntries || 0 == pathEntries.Length)
return null;
// Start to build the trail
List<object> trail = new List<object>();
trail.Add(myComputerData);
if (0 != string.Compare("My Computer", pathEntries[0], StringComparison.CurrentCultureIgnoreCase)) {
// For the remaining entries in the path, we will search the child items for a match at each level. If at any
// point we don't find a match, then we will need to cancel the conversion.
//
if (!Directory.Exists(path))
return null;
// The split above will remove the backslash, which we need for the comparison for drives below.
string driveEntry = pathEntries[0] + "\\";
// The first entry should be a drive, so we will start there
DriveData driveData = null;
for (int driveIndex = 0; driveIndex < myComputerData.Drives.Count; driveIndex++) {
// Get the next DriveData and see if it's a match, if so the exit the loop
driveData = myComputerData.Drives[driveIndex];
if (0 == string.Compare(driveData.Info.Name, driveEntry, StringComparison.CurrentCultureIgnoreCase))
break;
// Set to null, because we didn't find a match and we want driveData to be null in that case
driveData = null;
}
// If we found the drive, then add it to the trail and continue. Otherwise, there's a problem and we have
// failed to convert.
if (null != driveData) {
trail.Add(driveData);
// See if there are more items, which should be all directories
if (pathEntries.Length > 1) {
// We need to get the first directory directly from the drive object
DirectoryData directoryData = null;
for (int directoryIndex = 0; directoryIndex < driveData.Directories.Count; directoryIndex++) {
// Get the next DirectoryData and see if it's a match, if so the exit the loop
directoryData = driveData.Directories[directoryIndex];
if (0 == string.Compare(directoryData.Info.Name, pathEntries[1], StringComparison.CurrentCultureIgnoreCase))
break;
// Set to null, because we didn't find a match and we want directoryData to be null in that case
directoryData = null;
}
// If we found the directory, then add it to the trail and continue. Otherwise, there's a problem and
// we have failed to convert.
if (null != directoryData) {
trail.Add(directoryData);
// We are now looking for the remaining directories, which we can do in this loop
for (int index = 2; index < pathEntries.Length; index++) {
bool found = false;
for (int directoryIndex = 0; directoryIndex < directoryData.Directories.Count; directoryIndex++) {
// Get the next DirectoryData and see if it's a match, if so the exit the loop
DirectoryData childDirectoryData = directoryData.Directories[directoryIndex];
if (0 == string.Compare(childDirectoryData.Info.Name, pathEntries[index], StringComparison.CurrentCultureIgnoreCase)) {
found = true;
trail.Add(childDirectoryData);
directoryData = childDirectoryData;
break;
}
}
if (!found)
return null;
}
return trail;
}
}
else {
return trail;
}
}
}
else {
return trail;
}
return null;
}
19
View Source File : NamespaceComparer.cs
License : MIT License
Project Creator : adamant
License : MIT License
Project Creator : adamant
public int Compare(string? x, string? y)
{
var xParts = x!.Split('.');
var yParts = y!.Split('.');
if (xParts[0] == "System" && yParts[0] != "System") return -1;
if (xParts[0] != "System" && yParts[0] == "System") return 1;
var length = Math.Min(xParts.Length, yParts.Length);
for (int i = 0; i < length; i++)
{
var cmp = string.Compare(xParts[i], yParts[i], StringComparison.InvariantCulture);
if (cmp != 0) return cmp;
}
return xParts.Length.CompareTo(yParts.Length);
}
19
View Source File : Hyphenator.cs
License : MIT License
Project Creator : adamped
License : MIT License
Project Creator : adamped
private void hyphenateWithNoPatterns(HyphenationType[] result, UInt16[] word, int len, icu.Locale locale)
{
result[0] = HyphenationType.DONT_BREAK;
for (int i = 1; i < len; i++)
{
UInt16 prevChar = word[i - 1];
if (i > 1 && isLineBreakingHyphen(new UInt16(prevChar)))
{
// Break after hyphens, but only if they don't start the word.
if ((prevChar == GlobalMembers.CHAR_HYPHEN_MINUS || prevChar == GlobalMembers.CHAR_HYPHEN) && string.Compare(locale.getLanguage(), "pl") == 0 && minikin.GlobalMembers.getScript(word[i]) == USCRIPT_LATIN)
{
// In Polish, hyphens get repeated at the next line. To be safe,
// we will do this only if the next character is Latin.
result[i] = HyphenationType.BREAK_AND_INSERT_HYPHEN_AT_NEXT_LINE;
}
else
{
result[i] = HyphenationType.BREAK_AND_DONT_INSERT_HYPHEN;
}
}
else if (i > 1 && prevChar == GlobalMembers.CHAR_SOFT_HYPHEN)
{
// Break after soft hyphens, but only if they don't start the word (a soft
// hyphen starting the word doesn't give any useful break opportunities).
// The type of the break is based on the script of the character we break
// on.
if (minikin.GlobalMembers.getScript(word[i]) == USCRIPT_ARABIC)
{
// For Arabic, we need to look and see if the characters around the soft
// hyphen actually join. If they don't, we'll just insert a normal
// hyphen.
result[i] = minikin.GlobalMembers.getHyphTypeForArabic(new UInt16(word), len, i);
}
else
{
result[i] = minikin.GlobalMembers.hyphenationTypeBasedOnScript(word[i]);
}
}
else if (prevChar == GlobalMembers.CHAR_MIDDLE_DOT && minPrefix < i && i <= len - minSuffix && ((word[i - 2] == 'l' && word[i] == 'l') || (word[i - 2] == 'L' && word[i] == 'L')) && string.Compare(locale.getLanguage(), "ca") == 0)
{
// In Catalan, "l·l" should break as "l-" on the first line
// and "l" on the next line.
result[i] = HyphenationType.BREAK_AND_REPLACE_WITH_HYPHEN;
}
else
{
result[i] = HyphenationType.DONT_BREAK;
}
}
}
19
View Source File : RegistryKey.cs
License : MIT License
Project Creator : ADeltaX
License : MIT License
Project Creator : ADeltaX
private RegistryValue AddRegistryValue(string name)
{
byte[] valueList = _hive.RawCellData(_cell.ValueListIndex, _cell.NumValues * 4);
if (valueList == null)
{
valueList = new byte[0];
}
int insertIdx = 0;
while (insertIdx < _cell.NumValues)
{
int valueCellIndex = EndianUtilities.ToInt32LittleEndian(valueList, insertIdx * 4);
ValueCell cell = _hive.GetCell<ValueCell>(valueCellIndex);
if (string.Compare(name, cell.Name, StringComparison.OrdinalIgnoreCase) < 0)
{
break;
}
++insertIdx;
}
// Allocate a new value cell (note _hive.UpdateCell does actual allocation).
ValueCell valueCell = new ValueCell(name);
_hive.UpdateCell(valueCell, true);
// Update the value list, re-allocating if necessary
byte[] newValueList = new byte[_cell.NumValues * 4 + 4];
Array.Copy(valueList, 0, newValueList, 0, insertIdx * 4);
EndianUtilities.WriteBytesLittleEndian(valueCell.Index, newValueList, insertIdx * 4);
Array.Copy(valueList, insertIdx * 4, newValueList, insertIdx * 4 + 4, (_cell.NumValues - insertIdx) * 4);
if (_cell.ValueListIndex == -1 ||
!_hive.WriteRawCellData(_cell.ValueListIndex, newValueList, 0, newValueList.Length))
{
int newListCellIndex = _hive.AllocateRawCell(MathUtilities.RoundUp(newValueList.Length, 8));
_hive.WriteRawCellData(newListCellIndex, newValueList, 0, newValueList.Length);
if (_cell.ValueListIndex != -1)
{
_hive.FreeCell(_cell.ValueListIndex);
}
_cell.ValueListIndex = newListCellIndex;
}
// Record the new value and save this cell
_cell.NumValues++;
_hive.UpdateCell(_cell, false);
// Finally, set the data in the value cell
return new RegistryValue(_hive, valueCell);
}
19
View Source File : RegistryKey.cs
License : MIT License
Project Creator : ADeltaX
License : MIT License
Project Creator : ADeltaX
public void DeleteValue(string name, bool throwOnMissingValue)
{
bool foundValue = false;
if (_cell.NumValues != 0)
{
byte[] valueList = _hive.RawCellData(_cell.ValueListIndex, _cell.NumValues * 4);
int i = 0;
while (i < _cell.NumValues)
{
int valueIndex = EndianUtilities.ToInt32LittleEndian(valueList, i * 4);
ValueCell valueCell = _hive.GetCell<ValueCell>(valueIndex);
if (string.Compare(valueCell.Name, name, StringComparison.OrdinalIgnoreCase) == 0)
{
foundValue = true;
_hive.FreeCell(valueIndex);
_cell.NumValues--;
_hive.UpdateCell(_cell, false);
break;
}
++i;
}
// Move following value's to fill gap
if (i < _cell.NumValues)
{
while (i < _cell.NumValues)
{
int valueIndex = EndianUtilities.ToInt32LittleEndian(valueList, (i + 1) * 4);
EndianUtilities.WriteBytesLittleEndian(valueIndex, valueList, i * 4);
++i;
}
_hive.WriteRawCellData(_cell.ValueListIndex, valueList, 0, _cell.NumValues * 4);
}
// TODO: Update maxbytes for value name and value content if this was the largest value for either.
// Windows seems to repair this info, if not accurate, though.
}
if (throwOnMissingValue && !foundValue)
{
throw new ArgumentException("No such value: " + name, nameof(name));
}
}
19
View Source File : RegistryKey.cs
License : MIT License
Project Creator : ADeltaX
License : MIT License
Project Creator : ADeltaX
private RegistryValue GetRegistryValue(string name)
{
if (name != null && name.Length == 0)
{
name = null;
}
if (_cell.NumValues != 0)
{
byte[] valueList = _hive.RawCellData(_cell.ValueListIndex, _cell.NumValues * 4);
for (int i = 0; i < _cell.NumValues; ++i)
{
int valueIndex = EndianUtilities.ToInt32LittleEndian(valueList, i * 4);
ValueCell cell = _hive.GetCell<ValueCell>(valueIndex);
if (string.Compare(cell.Name, name, StringComparison.OrdinalIgnoreCase) == 0)
{
return new RegistryValue(_hive, cell);
}
}
}
return null;
}
19
View Source File : SubKeyHashedListCell.cs
License : MIT License
Project Creator : ADeltaX
License : MIT License
Project Creator : ADeltaX
internal int Add(string name, int cellIndex)
{
for (int i = 0; i < _numElements; ++i)
{
KeyNodeCell cell = _hive.GetCell<KeyNodeCell>(_subKeyIndexes[i]);
if (string.Compare(cell.Name, name, StringComparison.OrdinalIgnoreCase) > 0)
{
_subKeyIndexes.Insert(i, cellIndex);
_nameHashes.Insert(i, CalcHash(name));
_numElements++;
return i;
}
}
_subKeyIndexes.Add(cellIndex);
_nameHashes.Add(CalcHash(name));
return _numElements++;
}
19
View Source File : SubKeyHashedListCell.cs
License : MIT License
Project Creator : ADeltaX
License : MIT License
Project Creator : ADeltaX
private int FindKeyAt(string name, int listIndex, out int cellIndex)
{
Cell cell = _hive.GetCell<Cell>(_subKeyIndexes[listIndex]);
if (cell == null)
{
cellIndex = 0;
return -1;
}
ListCell listCell = cell as ListCell;
if (listCell != null)
{
return listCell.FindKey(name, out cellIndex);
}
cellIndex = _subKeyIndexes[listIndex];
return string.Compare(name, ((KeyNodeCell)cell).Name, StringComparison.OrdinalIgnoreCase);
}
19
View Source File : SubKeyHashedListCell.cs
License : MIT License
Project Creator : ADeltaX
License : MIT License
Project Creator : ADeltaX
public int Compare(int x, int y)
{
// TODO: Be more efficient at ruling out no-hopes by using the hash values
KeyNodeCell cell = _hive.GetCell<KeyNodeCell>(x);
int result = string.Compare(cell.Name, _searchName, StringComparison.OrdinalIgnoreCase);
if (result == 0)
{
CellIndex = x;
}
return result;
}
19
View Source File : SubKeyIndirectListCell.cs
License : MIT License
Project Creator : ADeltaX
License : MIT License
Project Creator : ADeltaX
internal override int LinkSubKey(string name, int cellIndex)
{
// Look for the first sublist that has a subkey name greater than name
if (ListType == "ri")
{
if (CellIndexes.Count == 0)
{
throw new NotImplementedException("Empty indirect list");
}
for (int i = 0; i < CellIndexes.Count - 1; ++i)
{
int tempIndex;
ListCell cell = _hive.GetCell<ListCell>(CellIndexes[i]);
if (cell.FindKey(name, out tempIndex) <= 0)
{
CellIndexes[i] = cell.LinkSubKey(name, cellIndex);
return _hive.UpdateCell(this, false);
}
}
ListCell lastCell = _hive.GetCell<ListCell>(CellIndexes[CellIndexes.Count - 1]);
CellIndexes[CellIndexes.Count - 1] = lastCell.LinkSubKey(name, cellIndex);
return _hive.UpdateCell(this, false);
}
for (int i = 0; i < CellIndexes.Count; ++i)
{
KeyNodeCell cell = _hive.GetCell<KeyNodeCell>(CellIndexes[i]);
if (string.Compare(name, cell.Name, StringComparison.OrdinalIgnoreCase) < 0)
{
CellIndexes.Insert(i, cellIndex);
return _hive.UpdateCell(this, true);
}
}
CellIndexes.Add(cellIndex);
return _hive.UpdateCell(this, true);
}
19
View Source File : SubKeyIndirectListCell.cs
License : MIT License
Project Creator : ADeltaX
License : MIT License
Project Creator : ADeltaX
internal override int UnlinkSubKey(string name)
{
if (ListType == "ri")
{
if (CellIndexes.Count == 0)
{
throw new NotImplementedException("Empty indirect list");
}
for (int i = 0; i < CellIndexes.Count; ++i)
{
int tempIndex;
ListCell cell = _hive.GetCell<ListCell>(CellIndexes[i]);
if (cell.FindKey(name, out tempIndex) <= 0)
{
CellIndexes[i] = cell.UnlinkSubKey(name);
if (cell.Count == 0)
{
_hive.FreeCell(CellIndexes[i]);
CellIndexes.RemoveAt(i);
}
return _hive.UpdateCell(this, false);
}
}
}
else
{
for (int i = 0; i < CellIndexes.Count; ++i)
{
KeyNodeCell cell = _hive.GetCell<KeyNodeCell>(CellIndexes[i]);
if (string.Compare(name, cell.Name, StringComparison.OrdinalIgnoreCase) == 0)
{
CellIndexes.RemoveAt(i);
return _hive.UpdateCell(this, true);
}
}
}
return Index;
}
19
View Source File : SubKeyIndirectListCell.cs
License : MIT License
Project Creator : ADeltaX
License : MIT License
Project Creator : ADeltaX
private int DoFindKey(string name, int listIndex, out int cellIndex)
{
Cell cell = _hive.GetCell<Cell>(CellIndexes[listIndex]);
ListCell listCell = cell as ListCell;
if (listCell != null)
{
return listCell.FindKey(name, out cellIndex);
}
cellIndex = CellIndexes[listIndex];
return string.Compare(name, ((KeyNodeCell)cell).Name, StringComparison.OrdinalIgnoreCase);
}
19
View Source File : SubKeyIndirectListCell.cs
License : MIT License
Project Creator : ADeltaX
License : MIT License
Project Creator : ADeltaX
public int Compare(int x, int y)
{
Cell cell = _hive.GetCell<Cell>(x);
ListCell listCell = cell as ListCell;
int result;
if (listCell != null)
{
int cellIndex;
result = listCell.FindKey(_searchName, out cellIndex);
if (result == 0)
{
CellIndex = cellIndex;
}
return -result;
}
result = string.Compare(((KeyNodeCell)cell).Name, _searchName, StringComparison.OrdinalIgnoreCase);
if (result == 0)
{
CellIndex = x;
}
return result;
}
19
View Source File : TimeZoneExpressionBuilder.cs
License : MIT License
Project Creator : Adoxio
License : MIT License
Project Creator : Adoxio
object IExpressionBuilderProvider.Evaluate(NameValueCollection arguments, Type controlType, string propertyName, string expressionPrefix)
{
var name = arguments.GetValueByIndexOrName(0, "Name");
var eval = arguments.GetValueByIndexOrName(1, "Eval");
if (string.IsNullOrWhiteSpace(name) && string.IsNullOrWhiteSpace(eval))
{
ThrowException(propertyName, expressionPrefix);
}
var format = arguments.GetValueByIndexOrName(2, "Format");
var portalName = arguments.GetValueByIndexOrName(3, "Portal");
var portal = PortalCrmConfigurationManager.CreatePortalContext(portalName);
var timeZone = portal.GetTimeZone();
if (!string.IsNullOrWhiteSpace(name))
{
if (string.Compare(name, "id", StringComparison.InvariantCultureIgnoreCase) == 0)
{
return timeZone.Id;
}
if (string.Compare(name, "displayname", StringComparison.InvariantCultureIgnoreCase) == 0)
{
return timeZone.DisplayName;
}
ThrowException(propertyName, expressionPrefix);
}
return timeZone != null
? GetEvalData(timeZone, null, eval, format)
: null;
}
19
View Source File : UrlMapping.cs
License : MIT License
Project Creator : Adoxio
License : MIT License
Project Creator : Adoxio
private static Enreplacedy LookupPageByUrlPath(OrganizationServiceContext context, Enreplacedy website, string urlPath, Func<Enreplacedy, bool> predicate)
{
website.replacedertEnreplacedyName("adx_website");
if (website.Id == Guid.Empty) throw new NullReferenceException("Unable to retrieve the Id of the website. Lookup failed.");
var urlWithoutWebsitePath = WebsitePathUtility.ToRelative(website, urlPath);
var webPages = website.GetRelatedEnreplacedies(context, "adx_website_webpage").Where(predicate);
// Check if we can find a page with the exact URL.
var page = webPages.Where(wp => string.Compare(wp.GetAttributeValue<string>("adx_partialurl"), urlWithoutWebsitePath, StringComparison.InvariantCultureIgnoreCase) == 0).FirstOrDefault();
if (page != null)
{
// We found the page (probably root).
return page;
}
string parentPath;
string thisPath;
if (ParseParentPath(urlWithoutWebsitePath, out parentPath, out thisPath))
{
var parentPage = LookupPageByUrlPath(context, website, parentPath, predicate);
if (parentPage != null)
{
page = context.GetChildPages(parentPage).Where(p => predicate(p) && string.Equals(p.GetAttributeValue<string>("adx_partialurl"), thisPath, StringComparison.InvariantCultureIgnoreCase)).FirstOrDefault();
if (page != null)
{
return page;
}
}
}
return null;
}
19
View Source File : Kissing.cs
License : GNU General Public License v3.0
Project Creator : aedenthorn
License : GNU General Public License v3.0
Project Creator : aedenthorn
private static void PerformEmbrace(NPC npc, Vector2 midpoint, string partner)
{
string name = npc.Name;
int spouseFrame = Misc.GetKissingFrame(name);
bool facingRight = Misc.GetFacingRight(name);
List<string> customFrames = Config.CustomKissFrames.Split(',').ToList();
foreach(string nameframe in customFrames)
{
if (nameframe.StartsWith(name + ":"))
{
int.TryParse(nameframe.Substring(name.Length + 1), out spouseFrame);
break;
}
}
bool right = npc.position.X < midpoint.X;
if(npc.position == midpoint)
{
right = String.Compare(npc.Name, partner) < 0;
}
else if(npc.position.X == midpoint.X)
{
right = npc.position.Y > midpoint.Y;
}
bool flip = (facingRight && !right) || (!facingRight && right);
int offset = 24;
if (right)
offset *= -1;
npc.position.Value = new Vector2(midpoint.X+offset,midpoint.Y);
int delay = 1000;
npc.movementPause = delay;
npc.Sprite.setCurrentAnimation(new List<FarmerSprite.AnimationFrame>
{
new FarmerSprite.AnimationFrame(spouseFrame, delay, false, flip, new AnimatedSprite.endOfAnimationBehavior(npc.haltMe), true)
});
npc.Sprite.UpdateSourceRect();
}
19
View Source File : Kissing.cs
License : GNU General Public License v3.0
Project Creator : aedenthorn
License : GNU General Public License v3.0
Project Creator : aedenthorn
private static void PerformKiss(NPC npc, Vector2 midpoint, string partner)
{
int spouseFrame = 28;
bool facingRight = true;
string name = npc.Name;
if (name == "Sam")
{
spouseFrame = 36;
facingRight = true;
}
else if (name == "Penny")
{
spouseFrame = 35;
facingRight = true;
}
else if (name == "Sebastian")
{
spouseFrame = 40;
facingRight = false;
}
else if (name == "Alex")
{
spouseFrame = 42;
facingRight = true;
}
else if (name == "Krobus")
{
spouseFrame = 16;
facingRight = true;
}
else if (name == "Maru")
{
spouseFrame = 28;
facingRight = false;
}
else if (name == "Emily")
{
spouseFrame = 33;
facingRight = false;
}
else if (name == "Harvey")
{
spouseFrame = 31;
facingRight = false;
}
else if (name == "Shane")
{
spouseFrame = 34;
facingRight = false;
}
else if (name == "Elliott")
{
spouseFrame = 35;
facingRight = false;
}
else if (name == "Leah")
{
spouseFrame = 25;
facingRight = true;
}
else if (name == "Abigail")
{
spouseFrame = 33;
facingRight = false;
}
bool right = npc.position.X < midpoint.X;
if(npc.position == midpoint)
{
right = String.Compare(npc.Name, partner) < 0;
}
else if(npc.position.X == midpoint.X)
{
right = npc.position.Y > midpoint.Y;
}
bool flip = (facingRight && !right) || (!facingRight && right);
int offset = 24;
if (right)
offset *= -1;
npc.position.Value = new Vector2(midpoint.X+offset,midpoint.Y);
int delay = 1000;
npc.movementPause = delay;
npc.Sprite.setCurrentAnimation(new List<FarmerSprite.AnimationFrame>
{
new FarmerSprite.AnimationFrame(spouseFrame, delay, false, flip, new AnimatedSprite.endOfAnimationBehavior(npc.haltMe), true)
});
npc.doEmote(20, true);
if (ModEntry.config.RealKissSound && kissEffect != null)
{
float distance = 1f / ((Vector2.Distance(midpoint, Game1.player.position) / 256) + 1);
float pan = (float)(Math.Atan((midpoint.X - Game1.player.position.X) / Math.Abs(midpoint.Y - Game1.player.position.Y)) /(Math.PI/2));
//ModEntry.PMonitor.Log($"kiss distance: {distance} pan: {pan}");
kissEffect.Play(distance * Game1.options.soundVolumeLevel, 0, pan);
}
else
{
Game1.currentLocation.playSound("dwop", NetAudio.SoundContext.NPC);
}
npc.Sprite.UpdateSourceRect();
}
19
View Source File : FileExplorer.cs
License : MIT License
Project Creator : aerosoul94
License : MIT License
Project Creator : aerosoul94
public int Compare(object x, object y)
{
// Default, don't swap order.
int result = 0;
ListViewItem itemX = (ListViewItem)x;
ListViewItem itemY = (ListViewItem)y;
if (itemX.Tag == null ||
itemY.Tag == null)
{
return result;
}
if (itemX.Index == 0)
{
// Skip "up" item
return result;
}
DirectoryEntry direntX = (DirectoryEntry)((NodeTag)itemX.Tag).Tag;
DirectoryEntry direntY = (DirectoryEntry)((NodeTag)itemY.Tag).Tag;
switch (column)
{
case ColumnIndex.Index:
result = UInt32.Parse(itemX.Text).CompareTo(UInt32.Parse(itemY.Text));
break;
case ColumnIndex.Name:
result = String.Compare(direntX.FileName, direntY.FileName);
break;
case ColumnIndex.Size:
result = direntX.FileSize.CompareTo(direntY.FileSize);
break;
case ColumnIndex.Created:
result = direntX.CreationTime.AsDateTime().CompareTo(direntY.CreationTime.AsDateTime());
break;
case ColumnIndex.Modified:
result = direntX.LastWriteTime.AsDateTime().CompareTo(direntY.LastWriteTime.AsDateTime());
break;
case ColumnIndex.Accessed:
result = direntX.LastAccessTime.AsDateTime().CompareTo(direntY.LastAccessTime.AsDateTime());
break;
case ColumnIndex.Offset:
result = direntX.Offset.CompareTo(direntY.Offset);
break;
case ColumnIndex.Cluster:
result = direntX.Cluster.CompareTo(direntY.Cluster);
break;
}
if (order == SortOrder.Ascending)
{
return result;
}
else
{
return -result;
}
}
19
View Source File : RecoveryResults.cs
License : MIT License
Project Creator : aerosoul94
License : MIT License
Project Creator : aerosoul94
public int Compare(object x, object y)
{
// Default, don't swap order.
int result = 0;
ListViewItem itemX = (ListViewItem)x;
ListViewItem itemY = (ListViewItem)y;
if (itemX.Tag == null ||
itemY.Tag == null)
{
return result;
}
if (itemX.Index == 0)
{
// Skip "up" item
return result;
}
DatabaseFile direntX = (DatabaseFile)((NodeTag)itemX.Tag).Tag;
DatabaseFile direntY = (DatabaseFile)((NodeTag)itemY.Tag).Tag;
switch (column)
{
case ColumnIndex.Index:
result = UInt32.Parse(itemX.Text).CompareTo(UInt32.Parse(itemY.Text));
break;
case ColumnIndex.Name:
result = String.Compare(direntX.FileName, direntY.FileName);
break;
case ColumnIndex.Size:
result = direntX.FileSize.CompareTo(direntY.FileSize);
break;
case ColumnIndex.Created:
result = direntX.CreationTime.AsDateTime().CompareTo(direntY.CreationTime.AsDateTime());
break;
case ColumnIndex.Modified:
result = direntX.LastWriteTime.AsDateTime().CompareTo(direntY.LastWriteTime.AsDateTime());
break;
case ColumnIndex.Accessed:
result = direntX.LastAccessTime.AsDateTime().CompareTo(direntY.LastAccessTime.AsDateTime());
break;
case ColumnIndex.Offset:
result = direntX.Offset.CompareTo(direntY.Offset);
break;
case ColumnIndex.Cluster:
result = direntX.Cluster.CompareTo(direntY.Cluster);
break;
}
if (order == SortOrder.Ascending)
{
return result;
}
else
{
return -result;
}
}
19
View Source File : DirectoryRecord.cs
License : GNU Affero General Public License v3.0
Project Creator : aianlinb
License : GNU Affero General Public License v3.0
Project Creator : aianlinb
public virtual int Compare(TreeNode x, TreeNode y) {
if (x is DirectoryRecord)
if (y is DirectoryRecord)
return string.Compare(x.Name, y.Name);
else
return -1;
else
if (y is DirectoryRecord)
return 1;
else
return string.Compare(x.Name, y.Name);
}
19
View Source File : WorkFlowInstanceService.cs
License : MIT License
Project Creator : aishang2015
License : MIT License
Project Creator : aishang2015
public async Task<bool> ApproveOrDisApproveNode(WorkFlowInstanceHandleViewModel viewModel)
{
var account = _httpContextAccessor.HttpContext?.User?.GetUserName();
// 取得当前用户待处理的节点
var route = _instanceRouteRepository.Get(route =>
route.WorkFlowInstanceId == viewModel.WorkFlowInstanceId &&
route.HandlePepleAccount == account &&
route.HandleState == HandleStateEnum.未处理).FirstOrDefault();
if (route != null)
{
// 取得节点对应的流转中的工作流实例
var instance = _instanceRepository.Get(i => i.Id == route.WorkFlowInstanceId &&
i.WorkFlowInstanceState == WorkFlowInstanceStateEnum.CirCulation).FirstOrDefault();
if (instance != null)
{
try
{
if (viewModel.IsPreplaced)
{
route.HandleState = HandleStateEnum.通过;
route.HandleComment = viewModel.HandleComment;
var currentNode = await _nodeRepository.GetAsync(instance.CurrentNodeId);
// 取得下一个节点
var targetIds = from link in _linkRepository.Get()
where link.SourceId == currentNode.DomId &&
link.WorkFlowId == instance.WorkFlowId
select link.TargetId;
// 判断是否能够进入下一个节点
var haveNext = false;
// 循环所有目标节点
foreach (var targetId in targetIds.ToList())
{
// 找出流转到该节点的条件组
var conditions = from c in _conditionRepository.Get()
where c.WorkFlowId == instance.WorkFlowId &&
c.SourceId == currentNode.DomId &&
c.TargetId == targetId
select c;
// 比较
var isCompare = true;
// 无条件,直接进入
if (conditions.Count() == 0)
{
isCompare = true;
haveNext = true;
}
else
{
// 有条件,判断条件
foreach (var condition in conditions.ToList())
{
// 取得实例中表单的值
var formValue = (from value in _instanceValueRepository.Get()
join control in _controlRepository.Get() on value.FormControlDomId equals control.DomId
where control.Id == condition.FormControlId &&
value.WorkFlowInstanceId == instance.Id
select value.Value).FirstOrDefault();
// 对所有条件进行and判断
switch (condition.CompareMode)
{
case CompareModeEnum.Equal:
isCompare = isCompare && (formValue == condition.CompareValue);
break;
case CompareModeEnum.EqualOrGreater:
isCompare = isCompare && (string.Compare(formValue, condition.CompareValue) >= 0);
break;
case CompareModeEnum.EqualOrSmaller:
isCompare = isCompare && (string.Compare(formValue, condition.CompareValue) <= 0);
break;
case CompareModeEnum.Greater:
isCompare = isCompare && (string.Compare(formValue, condition.CompareValue) > 0);
break;
case CompareModeEnum.Smaller:
isCompare = isCompare && (string.Compare(formValue, condition.CompareValue) < 0);
break;
}
// 出现条件不满足的情况直接退出判断
if (!isCompare)
{
break;
}
}
}
// 条件全部满足则转入到该节点
if (isCompare)
{
haveNext = true;
var nextNode = _nodeRepository.Get(n => n.DomId == targetId).FirstOrDefault();
instance.CurrentNodeId = nextNode.Id;
if (nextNode.NodeType == NodeTypeEnum.EndNode)
{
instance.WorkFlowInstanceState = WorkFlowInstanceStateEnum.End;
// 添加节点处理记录
var routeInfo = new WorkFlowInstanceRoute
{
NodeId = nextNode.Id,
NodeName = nextNode.Name,
HandlePeopleName = "系统",
HandleState = HandleStateEnum.通过,
HandleTime = DateTime.Now,
WorkFlowInstanceId = instance.Id
};
await _instanceRouteRepository.AddAsync(routeInfo);
}
else
{
// 获取处理人员
var users = GetHandleUsers(nextNode, account);
foreach (var u in users.ToList())
{
// 添加节点处理记录
var routeInfo = new WorkFlowInstanceRoute
{
NodeId = nextNode.Id,
NodeName = nextNode.Name,
HandlePeopleName = u.Name,
HandlePepleAccount = u.UserName,
HandleState = HandleStateEnum.未处理,
HandleTime = DateTime.Now,
WorkFlowInstanceId = instance.Id
};
await _instanceRouteRepository.AddAsync(routeInfo);
}
}
_instanceRepository.Update(instance);
break;
}
}
if (!haveNext)
{
// 无法进行,异常结束
instance.WorkFlowInstanceState = WorkFlowInstanceStateEnum.BadEnd;
}
}
else
{
route.HandleState = HandleStateEnum.拒绝;
route.HandleComment = viewModel.HandleComment;
// 获取开始节点id
var startNode = await _nodeRepository.Get(n => n.WorkFlowId == instance.WorkFlowId &&
n.NodeType == NodeTypeEnum.StartNode).FirstOrDefaultAsync();
instance.CurrentNodeId = startNode.Id;
instance.WorkFlowInstanceState = WorkFlowInstanceStateEnum.ReturnBack;
}
_instanceRouteRepository.Update(route);
_instanceRepository.Update(instance);
await _unitOfWork.SaveAsync();
return true;
}
catch (Exception e)
{
_logger.LogError(e.Message);
_logger.LogError(e.StackTrace);
return false;
}
}
}
return false;
}
19
View Source File : AdminLoginController.cs
License : MIT License
Project Creator : albyho
License : MIT License
Project Creator : albyho
[HttpPost]
[Route("Login")]
[AllowAnonymous]
public async Task<ApiResultDataUrl<ApiResultTokenData>> Login(AccountPreplacedwordValidationCodeLoginInput input)
{
var result = new ApiResultDataUrl<ApiResultTokenData>();
var validationCode = HttpContext.Session.GetString(ValidationCodeKey);
if (validationCode == null)
{
result.Code = 400;
result.Message = "验证码已到期,请重新输入";
return result;
}
if (String.Compare(validationCode, input.ValidationCode, StringComparison.OrdinalIgnoreCase) != 0)
{
result.Code = 400;
result.Message = "请输入正确的验证码";
return result;
}
HttpContext.Session.Remove(ValidationCodeKey);
var userInfo = await _userService.GetNormalUserAsync(input.Account, input.Preplacedword);
if (userInfo == null)
{
result.Code = 400;
result.Message = "账号或密码错误,或用户状态不允许登录";
return result;
}
await _userActionLogService.SaveAsync(new UserActionLogInput
{
UserId = userInfo.UserId,
ActionTypeId = 1,
ClientTypeId = input.ClientTypeId,
ClientAgent = input.ClientAgent,
Remark = "后台登录"
}, ModelState);
result.Data = await _tokenService.GenerateApiResultTokenData(userInfo);
result.Url = _frontendSettings.CoreEnvironment.IsDevelopment ? _frontendSettings.CoreEnvironment.DevelopmentHost + "/modules/index.html" : Url.Action("Index", "View");
result.Code = 200;
result.Message = "登录成功";
return result;
}
19
View Source File : BuiltInResouresWindow.cs
License : MIT License
Project Creator : alelievr
License : MIT License
Project Creator : alelievr
void OnGUI()
{
if( position.width != _oldPosition.width && Event.current.type == EventType.Layout )
{
Drawings = null;
_oldPosition = position;
}
GUILayout.BeginHorizontal();
if( GUILayout.Toggle( _showingStyles, "Styles", EditorStyles.toolbarButton ) != _showingStyles )
{
_showingStyles = !_showingStyles;
_showingIcons = !_showingStyles;
Drawings = null;
}
if( GUILayout.Toggle( _showingIcons, "Icons", EditorStyles.toolbarButton ) != _showingIcons )
{
_showingIcons = !_showingIcons;
_showingStyles = !_showingIcons;
Drawings = null;
}
GUILayout.EndHorizontal();
string newSearch = GUILayout.TextField(_search);
if (newSearch != _search)
{
_search = newSearch;
Drawings = null;
}
float top = 36;
if( Drawings == null )
{
string lowerSearch = _search.ToLower();
Drawings = new List<Drawing>();
GUIContent inactiveText = new GUIContent("inactive");
GUIContent activeText = new GUIContent( "active" );
float x = 5.0f;
float y = 5.0f;
if( _showingStyles )
{
foreach( GUIStyle ss in GUI.skin.customStyles )
{
if (lowerSearch != "" && !ss.name.ToLower().Contains(lowerSearch))
continue;
GUIStyle thisStyle = ss;
Drawing draw = new Drawing();
float width = Mathf.Max(
100.0f,
GUI.skin.button.CalcSize( new GUIContent( ss.name ) ).x,
ss.CalcSize( inactiveText ).x + ss.CalcSize( activeText ).x
) + 16.0f;
float height = 60.0f;
if( x + width > position.width - 32 && x > 5.0f )
{
x = 5.0f;
y += height + 10.0f;
}
draw.Rect = new Rect( x, y, width, height );
width -= 8.0f;
draw.Draw = () =>
{
if( GUILayout.Button( thisStyle.name, GUILayout.Width( width ) ) )
CopyText( "(GUIStyle)\"" + thisStyle.name + "\"" );
GUILayout.BeginHorizontal();
GUILayout.Toggle( false, inactiveText, thisStyle, GUILayout.Width( width / 2 ) );
GUILayout.Toggle( false, activeText, thisStyle, GUILayout.Width( width / 2 ) );
GUILayout.EndHorizontal();
};
x += width + 18.0f;
Drawings.Add( draw );
}
}
else if( _showingIcons )
{
if( _objects == null )
{
_objects = new List<UnityEngine.Object>( Resources.FindObjectsOfTypeAll( typeof( Texture ) ) );
_objects.Sort( ( pA, pB ) => System.String.Compare( pA.name, pB.name, System.StringComparison.OrdinalIgnoreCase ) );
}
float rowHeight = 0.0f;
foreach( UnityEngine.Object oo in _objects )
{
Texture texture = (Texture)oo;
if( texture.name == "" )
continue;
if (lowerSearch != "" && !texture.name.ToLower().Contains(lowerSearch))
continue;
Drawing draw = new Drawing();
float width = Mathf.Max(
GUI.skin.button.CalcSize( new GUIContent( texture.name ) ).x,
texture.width
) + 8.0f;
float height = texture.height + GUI.skin.button.CalcSize( new GUIContent( texture.name ) ).y + 8.0f;
if( x + width > position.width - 32.0f )
{
x = 5.0f;
y += rowHeight + 8.0f;
rowHeight = 0.0f;
}
draw.Rect = new Rect( x, y, width, height );
rowHeight = Mathf.Max( rowHeight, height );
width -= 8.0f;
draw.Draw = () =>
{
if( GUILayout.Button( texture.name, GUILayout.Width( width ) ) )
CopyText( "EditorGUIUtility.FindTexture( \"" + texture.name + "\" )" );
Rect textureRect = GUILayoutUtility.GetRect( texture.width, texture.width, texture.height, texture.height, GUILayout.ExpandHeight( false ), GUILayout.ExpandWidth( false ) );
EditorGUI.DrawTextureTransparent( textureRect, texture );
};
x += width + 8.0f;
Drawings.Add( draw );
}
}
_maxY = y;
}
Rect r = position;
r.y = top;
r.height -= r.y;
r.x = r.width - 16;
r.width = 16;
float areaHeight = position.height - top;
_scrollPos = GUI.VerticalScrollbar( r, _scrollPos, areaHeight, 0.0f, _maxY );
Rect area = new Rect(0, top, position.width - 16.0f, areaHeight);
GUILayout.BeginArea( area );
int count = 0;
foreach( Drawing draw in Drawings )
{
Rect newRect = draw.Rect;
newRect.y -= _scrollPos;
if( newRect.y + newRect.height > 0 && newRect.y < areaHeight )
{
GUILayout.BeginArea( newRect, GUI.skin.textField );
draw.Draw();
GUILayout.EndArea();
count++;
}
}
GUILayout.EndArea();
}
19
View Source File : RandomOrgClient.cs
License : MIT License
Project Creator : alexanderkozlenko
License : MIT License
Project Creator : alexanderkozlenko
private async Task<JsonRpcResponse> SendJsonRpcRequestAsync(JsonRpcRequest request, CancellationToken cancellationToken)
{
var requestId = request.Id;
using (var requestStream = new MemoryStream())
{
_jsonRpcSerializer.SerializeRequest(request, requestStream);
requestStream.Position = 0;
using (var httpRequest = new HttpRequestMessage(HttpMethod.Post, s_serviceUri))
{
var requestContent = new StreamContent(requestStream);
requestContent.Headers.Add("Content-Type", s_contentTypeHeaderValue);
httpRequest.Content = requestContent;
httpRequest.Headers.Date = DateTime.UtcNow;
httpRequest.Headers.ExpectContinue = false;
httpRequest.Headers.Add("Accept", JsonRpcTransport.MediaType);
httpRequest.Headers.Add("Accept-Charset", JsonRpcTransport.Charset);
httpRequest.Headers.Add("User-Agent", s_userAgentHeaderValue);
using (var httpResponse = await _httpInvoker.SendAsync(httpRequest, cancellationToken).ConfigureAwait(false))
{
if (httpResponse.StatusCode != HttpStatusCode.OK)
{
throw new RandomOrgProtocolException(httpResponse.StatusCode, Strings.GetString("protocol.http.status_code.invalid_value"));
}
var contentTypeHeaderValue = httpResponse.Content.Headers.ContentType;
if (contentTypeHeaderValue is null)
{
throw new RandomOrgProtocolException(httpResponse.StatusCode, Strings.GetString("protocol.http.headers.content_type.invalid_value"));
}
if (!contentTypeHeaderValue.MediaType.Equals(JsonRpcTransport.MediaType, StringComparison.OrdinalIgnoreCase))
{
throw new RandomOrgProtocolException(httpResponse.StatusCode, Strings.GetString("protocol.http.headers.content_type.invalid_value"));
}
if ((contentTypeHeaderValue.CharSet is not null) && (string.Compare(contentTypeHeaderValue.CharSet, JsonRpcTransport.Charset, StringComparison.OrdinalIgnoreCase) != 0))
{
throw new RandomOrgProtocolException(httpResponse.StatusCode, Strings.GetString("protocol.http.headers.content_type.invalid_value"));
}
var responseData = default(JsonRpcData<JsonRpcResponse>);
using (var responseStream = await httpResponse.Content.ReadreplacedtreamAsync(cancellationToken).ConfigureAwait(false))
{
_jsonRpcContractResolver.AddResponseBinding(requestId, request.Method);
try
{
responseData = await _jsonRpcSerializer.DeserializeResponseDataAsync(responseStream, cancellationToken).ConfigureAwait(false);
}
catch (JsonException e)
{
throw new RandomOrgClientException(Strings.GetString("protocol.rpc.message.invalid_value"), e);
}
catch (JsonRpcException e)
{
throw new RandomOrgClientException(Strings.GetString("protocol.rpc.message.invalid_value"), e);
}
finally
{
_jsonRpcContractResolver.RemoveResponseBinding(requestId);
}
}
if (responseData.IsBatch)
{
throw new RandomOrgProtocolException(httpResponse.StatusCode, Strings.GetString("protocol.random.message.invalid_value"));
}
var responseItem = responseData.Item;
if (!responseItem.IsValid)
{
throw new RandomOrgClientException(Strings.GetString("protocol.random.message.invalid_value"), responseItem.Exception);
}
var response = responseItem.Message;
if (!response.Success)
{
throw new RandomOrgException(request.Method, response.Error.Code, response.Error.Message);
}
if (response.Result is null)
{
throw new RandomOrgClientException(Strings.GetString("protocol.random.message.invalid_value"));
}
return response;
}
}
}
}
19
View Source File : SmartSystemMenuSettings.cs
License : MIT License
Project Creator : AlexanderPro
License : MIT License
Project Creator : AlexanderPro
public bool Equals(SmartSystemMenuSettings other)
{
if (other == null)
{
return false;
}
if (object.ReferenceEquals(this, other))
{
return true;
}
if (GetType() != other.GetType())
{
return false;
}
if (ProcessExclusions.Count != other.ProcessExclusions.Count)
{
return false;
}
if (MenuItems.WindowSizeItems.Count != other.MenuItems.WindowSizeItems.Count)
{
return false;
}
if (MenuItems.StartProgramItems.Count != other.MenuItems.StartProgramItems.Count)
{
return false;
}
if (MenuItems.Items.Count != other.MenuItems.Items.Count)
{
return false;
}
for (var i = 0; i < ProcessExclusions.Count; i++)
{
if (string.Compare(ProcessExclusions[i], other.ProcessExclusions[i], StringComparison.CurrentCultureIgnoreCase) != 0)
{
return false;
}
}
for (var i = 0; i < MenuItems.WindowSizeItems.Count; i++)
{
if (string.Compare(MenuItems.WindowSizeItems[i].replacedle, other.MenuItems.WindowSizeItems[i].replacedle, StringComparison.CurrentCultureIgnoreCase) != 0 ||
MenuItems.WindowSizeItems[i].Left != other.MenuItems.WindowSizeItems[i].Left ||
MenuItems.WindowSizeItems[i].Top != other.MenuItems.WindowSizeItems[i].Top ||
MenuItems.WindowSizeItems[i].Width != other.MenuItems.WindowSizeItems[i].Width ||
MenuItems.WindowSizeItems[i].Height != other.MenuItems.WindowSizeItems[i].Height ||
MenuItems.WindowSizeItems[i].Key1 != other.MenuItems.WindowSizeItems[i].Key1 ||
MenuItems.WindowSizeItems[i].Key2 != other.MenuItems.WindowSizeItems[i].Key2 ||
MenuItems.WindowSizeItems[i].Key3 != other.MenuItems.WindowSizeItems[i].Key3)
{
return false;
}
}
for (var i = 0; i < MenuItems.StartProgramItems.Count; i++)
{
if (string.Compare(MenuItems.StartProgramItems[i].replacedle, other.MenuItems.StartProgramItems[i].replacedle, StringComparison.CurrentCultureIgnoreCase) != 0 ||
string.Compare(MenuItems.StartProgramItems[i].FileName, other.MenuItems.StartProgramItems[i].FileName, StringComparison.CurrentCultureIgnoreCase) != 0 ||
string.Compare(MenuItems.StartProgramItems[i].Arguments, other.MenuItems.StartProgramItems[i].Arguments, StringComparison.CurrentCultureIgnoreCase) != 0)
{
return false;
}
}
for (var i = 0; i < MenuItems.Items.Count; i++)
{
if (string.Compare(MenuItems.Items[i].Name, other.MenuItems.Items[i].Name, StringComparison.CurrentCultureIgnoreCase) != 0 ||
MenuItems.Items[i].Show != other.MenuItems.Items[i].Show ||
MenuItems.Items[i].Type != other.MenuItems.Items[i].Type ||
MenuItems.Items[i].Key1 != other.MenuItems.Items[i].Key1 ||
MenuItems.Items[i].Key2 != other.MenuItems.Items[i].Key2 ||
MenuItems.Items[i].Key3 != other.MenuItems.Items[i].Key3)
{
return false;
}
if (MenuItems.Items[i].Items.Count != other.MenuItems.Items[i].Items.Count)
{
return false;
}
for (var j = 0; j < MenuItems.Items[i].Items.Count; j++)
{
if (string.Compare(MenuItems.Items[i].Items[j].Name, other.MenuItems.Items[i].Items[j].Name, StringComparison.CurrentCultureIgnoreCase) != 0 ||
MenuItems.Items[i].Items[j].Show != other.MenuItems.Items[i].Items[j].Show ||
MenuItems.Items[i].Items[j].Type != other.MenuItems.Items[i].Items[j].Type ||
MenuItems.Items[i].Items[j].Key1 != other.MenuItems.Items[i].Items[j].Key1 ||
MenuItems.Items[i].Items[j].Key2 != other.MenuItems.Items[i].Items[j].Key2 ||
MenuItems.Items[i].Items[j].Key3 != other.MenuItems.Items[i].Items[j].Key3)
{
return false;
}
}
}
if (Closer.Type != other.Closer.Type || Closer.Key1 != other.Closer.Key1 || Closer.Key2 != other.Closer.Key2 || Closer.MouseButton != other.Closer.MouseButton)
{
return false;
}
if (Sizer != other.Sizer)
{
return false;
}
if (string.Compare(LanguageName, other.LanguageName, StringComparison.CurrentCultureIgnoreCase) != 0)
{
return false;
}
return true;
}
19
View Source File : Program.cs
License : MIT License
Project Creator : AlexanderPro
License : MIT License
Project Creator : AlexanderPro
static void ProcessCommandLine(ToggleParser toggleParser)
{
// Clear Clipboard
if (toggleParser.HasToggle("clearclipboard"))
{
Clipboard.Clear();
}
var windowHandles = new List<IntPtr>();
var processId = (int?)null;
if (toggleParser.HasToggle("processId"))
{
var processIdString = toggleParser.GetToggleValueOrDefault("processId", null);
processId = !string.IsNullOrWhiteSpace(processIdString) && int.TryParse(processIdString, out var pid) ? pid : (int?)null;
}
if (toggleParser.HasToggle("handle"))
{
var windowHandleString = toggleParser.GetToggleValueOrDefault("handle", null);
if (!string.IsNullOrWhiteSpace(windowHandleString))
{
var windowHandle = windowHandleString.StartsWith("0x") ? int.TryParse(windowHandleString.Substring(2), System.Globalization.NumberStyles.AllowHexSpecifier, null, out var number) ? new IntPtr(number) :
IntPtr.Zero : int.TryParse(windowHandleString, out var number2) ? new IntPtr(number2) : IntPtr.Zero;
windowHandles.Add(windowHandle);
}
}
if (toggleParser.HasToggle("replacedle"))
{
var windowreplacedle = toggleParser.GetToggleValueOrDefault("replacedle", null);
var handles = WindowUtils.FindWindowByreplacedle(windowreplacedle, processId, (value, replacedle) => string.Compare(value, replacedle, true) == 0);
windowHandles.AddRange(handles);
}
if (toggleParser.HasToggle("replacedleBegins"))
{
var windowreplacedle = toggleParser.GetToggleValueOrDefault("replacedleBegins", null);
var handles = WindowUtils.FindWindowByreplacedle(windowreplacedle, processId, (value, replacedle) => replacedle.StartsWith(value, StringComparison.OrdinalIgnoreCase));
windowHandles.AddRange(handles);
}
if (toggleParser.HasToggle("replacedleEnds"))
{
var windowreplacedle = toggleParser.GetToggleValueOrDefault("replacedleEnds", null);
var handles = WindowUtils.FindWindowByreplacedle(windowreplacedle, processId, (value, replacedle) => replacedle.EndsWith(value, StringComparison.OrdinalIgnoreCase));
windowHandles.AddRange(handles);
}
if (toggleParser.HasToggle("replacedleContains"))
{
var windowreplacedle = toggleParser.GetToggleValueOrDefault("replacedleContains", null);
var handles = WindowUtils.FindWindowByreplacedle(windowreplacedle, processId, (value, replacedle) => replacedle.IndexOf(value, StringComparison.OrdinalIgnoreCase) >= 0);
windowHandles.AddRange(handles);
}
foreach (var windowHandle in windowHandles.Where(x => x != IntPtr.Zero))
{
var window = new Window(windowHandle);
// Set a Window monitor
if (toggleParser.HasToggle("m") || toggleParser.HasToggle("monitor"))
{
var monitorString = toggleParser.GetToggleValueOrDefault("m", null) ?? toggleParser.GetToggleValueOrDefault("monitor", null);
if (int.TryParse(monitorString, out var monitor))
{
var monitorItem = SystemUtils.GetMonitors().Select((x, i) => new { Index = i, MonitorHandle = x }).FirstOrDefault(x => x.Index == monitor);
if (monitorItem != null)
{
window.MoveToMonitor(monitorItem.MonitorHandle);
}
}
}
// Set a Window width
if (toggleParser.HasToggle("width"))
{
if (int.TryParse(toggleParser.GetToggleValueOrDefault("width", null), out var width))
{
window.SetWidth(width);
}
}
// Set a Window height
if (toggleParser.HasToggle("height"))
{
if (int.TryParse(toggleParser.GetToggleValueOrDefault("height", null), out var height))
{
window.SetHeight(height);
}
}
// Set a Window left position
if (toggleParser.HasToggle("left"))
{
if (int.TryParse(toggleParser.GetToggleValueOrDefault("left", null), out var left))
{
window.SetLeft(left);
}
}
// Set a Window top position
if (toggleParser.HasToggle("top"))
{
if (int.TryParse(toggleParser.GetToggleValueOrDefault("top", null), out var top))
{
window.SetTop(top);
}
}
// Set a Window position
if (toggleParser.HasToggle("a") || toggleParser.HasToggle("alignment"))
{
var windowAlignmentString = toggleParser.GetToggleValueOrDefault("a", null) ?? toggleParser.GetToggleValueOrDefault("alignment", null);
var windowAlignment = Enum.TryParse<WindowAlignment>(windowAlignmentString, true, out var alignment) ? alignment : 0;
window.SetAlignment(windowAlignment);
}
// Set a Window transparency
if (toggleParser.HasToggle("t") || toggleParser.HasToggle("transparency"))
{
var transparencyString = toggleParser.GetToggleValueOrDefault("t", null) ?? toggleParser.GetToggleValueOrDefault("transparency", null);
if (byte.TryParse(transparencyString, out var transparency))
{
transparency = transparency > 100 ? (byte)100 : transparency;
window.SetTransparency(transparency);
}
}
// Set a Process priority
if (toggleParser.HasToggle("p") || toggleParser.HasToggle("priority"))
{
var processPriorityString = toggleParser.GetToggleValueOrDefault("p", null) ?? toggleParser.GetToggleValueOrDefault("priority", null);
var processPriority = Enum.TryParse<Priority>(processPriorityString, true, out var priority) ? priority : 0;
window.SetPriority(processPriority);
}
// Set a Window AlwaysOnTop
if (toggleParser.HasToggle("alwaysontop"))
{
var alwaysontopString = toggleParser.GetToggleValueOrDefault("alwaysontop", string.Empty).ToLower();
if (alwaysontopString == "on")
{
window.MakeTopMost(true);
}
if (alwaysontopString == "off")
{
window.MakeTopMost(false);
}
}
// Set a Window Aero Glreplaced
if (toggleParser.HasToggle("g") || toggleParser.HasToggle("aeroglreplaced"))
{
var aeroglreplacedString = (toggleParser.GetToggleValueOrDefault("g", null) ?? toggleParser.GetToggleValueOrDefault("aeroglreplaced", string.Empty)).ToLower();
var enabled = aeroglreplacedString == "on" ? true : aeroglreplacedString == "off" ? false : (bool?)null;
if (enabled.HasValue)
{
var version = Environment.OSVersion.Version;
if (version.Major == 6 && (version.Minor == 0 || version.Minor == 1))
{
window.AeroGlreplacedForVistaAndSeven(enabled.Value);
}
else if (version.Major >= 6)
{
window.AeroGlreplacedForEightAndHigher(enabled.Value);
}
}
}
// Send To Bottom Window
if (toggleParser.HasToggle("sendtobottom"))
{
window.SendToBottom();
}
// Open File In Explorer
if (toggleParser.HasToggle("o") || toggleParser.HasToggle("openinexplorer"))
{
try
{
SystemUtils.RunAsDesktopUser("explorer.exe", "/select, " + window.Process.GetMainModuleFileName());
}
catch
{
}
}
// Copy to clipboard
if (toggleParser.HasToggle("c") || toggleParser.HasToggle("copytoclipboard"))
{
var text = window.ExtractText();
if (text != null)
{
Clipboard.SetText(text);
}
}
//Information dialog
if (toggleParser.HasToggle("i") || toggleParser.HasToggle("information"))
{
var settingsFileName = Path.Combine(replacedemblyUtils.replacedemblyDirectory, "SmartSystemMenu.xml");
var languageFileName = Path.Combine(replacedemblyUtils.replacedemblyDirectory, "Language.xml");
var settings = SmartSystemMenuSettings.Read(settingsFileName, languageFileName);
var dialog = new InfoForm(window.GetWindowInfo(), settings.LanguageSettings);
dialog.ShowDialog();
}
//Save Screenshot
if (toggleParser.HasToggle("s") || toggleParser.HasToggle("savescreenshot"))
{
var settingsFileName = Path.Combine(replacedemblyUtils.replacedemblyDirectory, "SmartSystemMenu.xml");
var languageFileName = Path.Combine(replacedemblyUtils.replacedemblyDirectory, "Language.xml");
var settings = SmartSystemMenuSettings.Read(settingsFileName, languageFileName);
var bitmap = WindowUtils.PrintWindow(window.Handle);
var dialog = new SaveFileDialog
{
OverwritePrompt = true,
ValidateNames = true,
replacedle = settings.LanguageSettings.GetValue("save_screenshot_replacedle"),
FileName = settings.LanguageSettings.GetValue("save_screenshot_filename"),
DefaultExt = settings.LanguageSettings.GetValue("save_screenshot_default_ext"),
RestoreDirectory = false,
Filter = settings.LanguageSettings.GetValue("save_screenshot_filter")
};
if (dialog.ShowDialog(window.Win32Window) == DialogResult.OK)
{
var fileExtension = Path.GetExtension(dialog.FileName).ToLower();
var imageFormat = fileExtension == ".bmp" ? ImageFormat.Bmp :
fileExtension == ".gif" ? ImageFormat.Gif :
fileExtension == ".jpeg" ? ImageFormat.Jpeg :
fileExtension == ".png" ? ImageFormat.Png :
fileExtension == ".tiff" ? ImageFormat.Tiff : ImageFormat.Wmf;
bitmap.Save(dialog.FileName, imageFormat);
}
}
}
}
19
View Source File : ListerForm.cs
License : MIT License
Project Creator : AlexanderPro
License : MIT License
Project Creator : AlexanderPro
[HandleProcessCorruptedStateExceptions]
private bool TryToLoadPlugin(ProgramSettings settings, IList<Plugin> plugins, string fileName, out IntPtr pluginHandle, out Plugin plugin)
{
pluginHandle = IntPtr.Zero;
plugin = null;
foreach (var sourcePlugin in plugins)
{
try
{
PluginInfo pluginInfo = settings.Plugins.FirstOrDefault(x => string.Compare(x.Path, sourcePlugin.ModuleName) == 0);
string extension = Path.GetExtension(fileName).TrimStart('.');
if (pluginInfo.Extensions.Count == 0 || pluginInfo.Extensions.Contains(extension.ToLower()) || pluginInfo.Extensions.Contains(extension.ToUpper()))
{
pluginHandle = sourcePlugin.ListLoad(pnlLister.Handle, fileName);
}
}
catch
{
}
if (pluginHandle != IntPtr.Zero)
{
plugin = sourcePlugin;
break;
}
}
return pluginHandle != IntPtr.Zero;
}
19
View Source File : App.xaml.cs
License : MIT License
Project Creator : AlexanderPro
License : MIT License
Project Creator : AlexanderPro
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
_oneInstanceMutex = new Mutex(false, "AwesomeWallpaperOneInstanceMutex", out var createNew);
if (!createNew)
{
Shutdown();
return;
}
_manager = new ViewManager();
var isSettingsLoaded = _manager.LoadSettings();
if (isSettingsLoaded)
{
if (_manager.Settings.WallpaperType == Settings.WallpaperType.Window &&
_manager.Settings.WindowUseAfterRestart &&
!string.IsNullOrEmpty(_manager.Settings.WindowProcessName))
{
EnumWindows(new EnumWindowsProc((hWnd, lParam) =>
{
var processName = WindowUtils.GetProcessName(hWnd);
var windowText = WindowUtils.GetWmGetText(hWnd);
var windowClreplacedName = WindowUtils.GetClreplacedName(hWnd);
if (string.Compare(windowText, _manager.Settings.WindowText, StringComparison.CurrentCultureIgnoreCase) == 0 &&
string.Compare(windowClreplacedName, _manager.Settings.WindowClreplacedName, StringComparison.CurrentCultureIgnoreCase) == 0 &&
string.Compare(processName, _manager.Settings.WindowProcessName, StringComparison.CurrentCultureIgnoreCase) == 0)
{
_manager.Settings.WindowHandle = hWnd == IntPtr.Zero ? null : (long?)hWnd.ToInt64();
_manager.Settings.WindowExTool = WindowUtils.IsExToolWindow(hWnd);
_manager.Settings.WindowStatus = "Selected";
return false;
}
return true;
}), IntPtr.Zero);
}
_manager.CreateViews();
_manager.InitTray();
_timerSystemTray = new DispatcherTimer()
{
Interval = TimeSpan.FromSeconds(1),
};
_timerSystemTray.Tick += TimerTick;
_timerSystemTray.Start();
}
}
See More Examples