public static void SavePathGroupState(string Path, GroupTarget Target, GroupDirection Direction)
        {
            PathConfiguration CurrentConfiguration = SQLite.Current.GetPathConfiguration(Path);

            if (CurrentConfiguration.GroupTarget != Target || CurrentConfiguration.GroupDirection != Direction)
            {
                SQLite.Current.SetPathConfiguration(new PathConfiguration(Path, Target, Direction));
                GroupStateChanged?.Invoke(null, new GroupStateChangedEventArgs(Path, Target, Direction));
            }
        }
Exemplo n.º 2
0
        public PathConfiguration(string Path, GroupTarget GroupTarget, GroupDirection GroupDirection)
        {
            if (string.IsNullOrWhiteSpace(Path))
            {
                throw new ArgumentException("Argument could not be empty or white space", nameof(Path));
            }

            this.Path           = Path;
            this.GroupTarget    = GroupTarget;
            this.GroupDirection = GroupDirection;
        }
Exemplo n.º 3
0
    public void SetGroup(GroupTarget group, OnUnitClickCallback onUnitClickCallback = null)
    {
        _group = group;
        _onUnitClickCallback = onUnitClickCallback;
        for (var it = _group.GetUnitEnumerator(); it.MoveNext();)
        {
            var unit = it.Current;
            var item = Instantiate(_itemTemplate, _itemTemplate.parent, false);
            item.gameObject.SetActive(true);

            var itemOne = item.GetComponent <UnitOne>();
            itemOne.SetOne(unit);
            _itemUnitMap.Add(item, unit);
        }
    }
Exemplo n.º 4
0
    public bool AddUnit(int group, Unit unit)
    {
        if (_groups.TryGetValue(group, out var battleGroup) == false)
        {
            battleGroup = new GroupTarget(group);
            _groups.Add(group, battleGroup);
        }
        var ret = battleGroup.AddUnit(unit);

        if (ret)
        {
            ++_unitCount;
        }
        return(ret);
    }
        public async Task <bool> Principal_Group_Remove(Guid faction_id, Guid principal_id, Guid group_id)
        {
            HavenSDK sdk = this.GetHavenSDK(faction_id);

            List <GroupTarget> grouptargets = await sdk.GroupTarget.GetGroupTargetByGroupAsync(group_id, 0, int.MaxValue).DemoUnPack();

            GroupTarget groupTarget = grouptargets.FirstOrDefault(x => x.principal_id == principal_id);

            if (groupTarget == null)
            {
                throw new Exception("User is not a part of the group");
            }

            ActionResult result = await sdk.GroupTarget.DeleteGroupTargetAsync(groupTarget.group_target_id);

            return(result.IsSuccess());
        }
        public async Task <bool> Principal_Group_Add(Guid faction_id, Guid principal_id, Guid group_id)
        {
            HavenSDK sdk = this.GetHavenSDK(faction_id);

            // typically this is done per principal, although account is supported, it is not reasonable

            GroupTarget groupTarget = new GroupTarget()
            {
                account_id    = _account.account_id,
                group_id      = group_id,
                principal_id  = principal_id,
                kind          = GroupTargetKind.Principal,
                role          = GroupMemberRole.Writer, // not fully enforced yet
                hidden        = false,
                suppress_main = false
            };
            ActionResult result = await sdk.GroupTargets.UpsertGroupTargetAsync(groupTarget);

            return(result.IsSuccess());
        }
Exemplo n.º 7
0
        public PathConfiguration(string Path, int DisplayModeIndex, SortTarget SortTarget, SortDirection SortDirection, GroupTarget GroupTarget, GroupDirection GroupDirection)
        {
            if (string.IsNullOrWhiteSpace(Path))
            {
                throw new ArgumentException("Argument could not be empty or white space", nameof(Path));
            }

            this.Path             = Path;
            this.DisplayModeIndex = DisplayModeIndex;
            this.SortTarget       = SortTarget;
            this.SortDirection    = SortDirection;
            this.GroupTarget      = GroupTarget;
            this.GroupDirection   = GroupDirection;
        }
Exemplo n.º 8
0
 public GroupStateChangedEventArgs(string Path, GroupTarget Target, GroupDirection Direction)
 {
     this.Path      = Path;
     this.Target    = Target;
     this.Direction = Direction;
 }
Exemplo n.º 9
0
        public static string SearchGroupBelonging <T>(T Item, GroupTarget Target) where T : FileSystemStorageItemBase
        {
            switch (Target)
            {
            case GroupTarget.Name:
            {
                if ((Item.Name.FirstOrDefault() >= 65 && Item.Name.FirstOrDefault() <= 71) || (Item.Name.FirstOrDefault() >= 97 && Item.Name.FirstOrDefault() <= 103))
                {
                    return("A - G");
                }
                else if ((Item.Name.FirstOrDefault() >= 72 && Item.Name.FirstOrDefault() <= 78) || (Item.Name.FirstOrDefault() >= 104 && Item.Name.FirstOrDefault() <= 110))
                {
                    return("H - N");
                }
                else if ((Item.Name.FirstOrDefault() >= 79 && Item.Name.FirstOrDefault() <= 84) || (Item.Name.FirstOrDefault() >= 111 && Item.Name.FirstOrDefault() <= 116))
                {
                    return("O - T");
                }
                else if ((Item.Name.FirstOrDefault() >= 85 && Item.Name.FirstOrDefault() <= 90) || (Item.Name.FirstOrDefault() >= 117 && Item.Name.FirstOrDefault() <= 112))
                {
                    return("U - Z");
                }
                else if (Item.Name.FirstOrDefault() < 65 || (Item.Name.FirstOrDefault() > 90 && Item.Name.FirstOrDefault() < 97) || Item.Name.FirstOrDefault() > 122)
                {
                    return(Globalization.GetString("GroupHeader_Others"));
                }
                else
                {
                    return(string.Empty);
                }
            }

            case GroupTarget.Type:
            {
                return(Item.DisplayType);
            }

            case GroupTarget.ModifiedTime:
            {
                DateTimeOffset TodayTime            = DateTimeOffset.Now.Date;
                DateTimeOffset YesterdayTime        = DateTimeOffset.Now.AddDays(-1).Date;
                DateTimeOffset EarlierThisWeekTime  = DateTimeOffset.Now.AddDays(-(int)DateTimeOffset.Now.DayOfWeek).Date;
                DateTimeOffset LastWeekTime         = DateTimeOffset.Now.AddDays(-((int)DateTimeOffset.Now.DayOfWeek + 7)).Date;
                DateTimeOffset EarlierThisMonthTime = DateTimeOffset.Now.AddDays(-DateTimeOffset.Now.Day).Date;
                DateTimeOffset LastMonth            = DateTimeOffset.Now.AddDays(-DateTimeOffset.Now.Day).AddMonths(-1).Date;
                DateTimeOffset EarlierThisYearTime  = DateTimeOffset.Now.AddMonths(-DateTimeOffset.Now.Month).Date;

                if (Item.ModifiedTimeRaw >= TodayTime)
                {
                    return(Globalization.GetString("GroupHeader_Today"));
                }
                else if (Item.ModifiedTimeRaw >= YesterdayTime && Item.ModifiedTimeRaw < TodayTime)
                {
                    return(Globalization.GetString("GroupHeader_Yesterday"));
                }
                else if (Item.ModifiedTimeRaw >= EarlierThisWeekTime && Item.ModifiedTimeRaw < YesterdayTime)
                {
                    return(Globalization.GetString("GroupHeader_EarlierThisWeek"));
                }
                else if (Item.ModifiedTimeRaw >= LastWeekTime && Item.ModifiedTimeRaw < EarlierThisWeekTime)
                {
                    return(Globalization.GetString("GroupHeader_LastWeek"));
                }
                else if (Item.ModifiedTimeRaw >= EarlierThisMonthTime && Item.ModifiedTimeRaw < LastWeekTime)
                {
                    return(Globalization.GetString("GroupHeader_EarlierThisMonth"));
                }
                else if (Item.ModifiedTimeRaw >= LastMonth && Item.ModifiedTimeRaw < EarlierThisMonthTime)
                {
                    return(Globalization.GetString("GroupHeader_LastMonth"));
                }
                else if (Item.ModifiedTimeRaw >= EarlierThisYearTime && Item.ModifiedTimeRaw < LastMonth)
                {
                    return(Globalization.GetString("GroupHeader_EarlierThisYear"));
                }
                else if (Item.ModifiedTimeRaw < EarlierThisYearTime)
                {
                    return(Globalization.GetString("GroupHeader_LongTimeAgo"));
                }
                else
                {
                    return(string.Empty);
                }
            }

            case GroupTarget.Size:
            {
                if (Item is FileSystemStorageFile)
                {
                    if (Item.SizeRaw >> 10 < 1024)
                    {
                        return(Globalization.GetString("GroupHeader_Smaller"));
                    }
                    else if (Item.SizeRaw >> 10 >= 1024 && Item.SizeRaw >> 20 < 128)
                    {
                        return(Globalization.GetString("GroupHeader_Medium"));
                    }
                    else if (Item.SizeRaw >> 20 >= 128 && Item.SizeRaw >> 20 < 1024)
                    {
                        return(Globalization.GetString("GroupHeader_Larger"));
                    }
                    else if (Item.SizeRaw >> 30 >= 1)
                    {
                        return(Globalization.GetString("GroupHeader_Huge"));
                    }
                    else
                    {
                        return(string.Empty);
                    }
                }
                else
                {
                    return(Globalization.GetString("GroupHeader_Unspecified"));
                }
            }

            default:
            {
                return(null);
            }
            }
        }
Exemplo n.º 10
0
        public static IEnumerable <FileSystemStorageGroupItem> GetGroupedCollection <T>(IEnumerable <T> InputCollection, GroupTarget Target, GroupDirection Direction) where T : FileSystemStorageItemBase
        {
            List <FileSystemStorageGroupItem> Result = new List <FileSystemStorageGroupItem>();

            switch (Target)
            {
            case GroupTarget.Name:
            {
                Result.Add(new FileSystemStorageGroupItem("A - G", InputCollection.Where((Item) => (Item.Name.FirstOrDefault() >= 65 && Item.Name.FirstOrDefault() <= 71) || (Item.Name.FirstOrDefault() >= 97 && Item.Name.FirstOrDefault() <= 103))));

                Result.Add(new FileSystemStorageGroupItem("H - N", InputCollection.Where((Item) => (Item.Name.FirstOrDefault() >= 72 && Item.Name.FirstOrDefault() <= 78) || (Item.Name.FirstOrDefault() >= 104 && Item.Name.FirstOrDefault() <= 110))));


                Result.Add(new FileSystemStorageGroupItem("O - T", InputCollection.Where((Item) => (Item.Name.FirstOrDefault() >= 79 && Item.Name.FirstOrDefault() <= 84) || (Item.Name.FirstOrDefault() >= 111 && Item.Name.FirstOrDefault() <= 116))));


                Result.Add(new FileSystemStorageGroupItem("U - Z", InputCollection.Where((Item) => (Item.Name.FirstOrDefault() >= 85 && Item.Name.FirstOrDefault() <= 90) || (Item.Name.FirstOrDefault() >= 117 && Item.Name.FirstOrDefault() <= 112))));


                Result.Add(new FileSystemStorageGroupItem(Globalization.GetString("GroupHeader_Others"), InputCollection.Where((Item) => Item.Name.FirstOrDefault() < 65 || (Item.Name.FirstOrDefault() > 90 && Item.Name.FirstOrDefault() < 97) || Item.Name.FirstOrDefault() > 122)));

                break;
            }

            case GroupTarget.Type:
            {
                IEnumerable <IGrouping <string, T> > GroupResult = InputCollection.GroupBy((Source) => Source.DisplayType);

                foreach (IGrouping <string, T> Group in GroupResult)
                {
                    Result.Add(new FileSystemStorageGroupItem(Group.Key, Group));
                }

                break;
            }

            case GroupTarget.ModifiedTime:
            {
                DateTimeOffset TodayTime            = DateTimeOffset.Now.Date;
                DateTimeOffset YesterdayTime        = DateTimeOffset.Now.AddDays(-1).Date;
                DateTimeOffset EarlierThisWeekTime  = DateTimeOffset.Now.AddDays(-(int)DateTimeOffset.Now.DayOfWeek).Date;
                DateTimeOffset LastWeekTime         = DateTimeOffset.Now.AddDays(-((int)DateTimeOffset.Now.DayOfWeek + 7)).Date;
                DateTimeOffset EarlierThisMonthTime = DateTimeOffset.Now.AddDays(-DateTimeOffset.Now.Day).Date;
                DateTimeOffset LastMonth            = DateTimeOffset.Now.AddDays(-DateTimeOffset.Now.Day).AddMonths(-1).Date;
                DateTimeOffset EarlierThisYearTime  = DateTimeOffset.Now.AddMonths(-DateTimeOffset.Now.Month).Date;

                Result.Add(new FileSystemStorageGroupItem(Globalization.GetString("GroupHeader_Today"), InputCollection.Where((Item) => Item.ModifiedTimeRaw >= TodayTime)));

                Result.Add(new FileSystemStorageGroupItem(Globalization.GetString("GroupHeader_Yesterday"), InputCollection.Where((Item) => Item.ModifiedTimeRaw >= YesterdayTime && Item.ModifiedTimeRaw < TodayTime)));

                Result.Add(new FileSystemStorageGroupItem(Globalization.GetString("GroupHeader_EarlierThisWeek"), InputCollection.Where((Item) => Item.ModifiedTimeRaw >= EarlierThisWeekTime && Item.ModifiedTimeRaw < YesterdayTime)));

                Result.Add(new FileSystemStorageGroupItem(Globalization.GetString("GroupHeader_LastWeek"), InputCollection.Where((Item) => Item.ModifiedTimeRaw >= LastWeekTime && Item.ModifiedTimeRaw < EarlierThisWeekTime)));

                Result.Add(new FileSystemStorageGroupItem(Globalization.GetString("GroupHeader_EarlierThisMonth"), InputCollection.Where((Item) => Item.ModifiedTimeRaw >= EarlierThisMonthTime && Item.ModifiedTimeRaw < LastWeekTime)));

                Result.Add(new FileSystemStorageGroupItem(Globalization.GetString("GroupHeader_LastMonth"), InputCollection.Where((Item) => Item.ModifiedTimeRaw >= LastMonth && Item.ModifiedTimeRaw < EarlierThisMonthTime)));

                Result.Add(new FileSystemStorageGroupItem(Globalization.GetString("GroupHeader_EarlierThisYear"), InputCollection.Where((Item) => Item.ModifiedTimeRaw >= EarlierThisYearTime && Item.ModifiedTimeRaw < LastMonth)));

                Result.Add(new FileSystemStorageGroupItem(Globalization.GetString("GroupHeader_LongTimeAgo"), InputCollection.Where((Item) => Item.ModifiedTimeRaw < EarlierThisYearTime)));

                break;
            }

            case GroupTarget.Size:
            {
                Result.Add(new FileSystemStorageGroupItem(Globalization.GetString("GroupHeader_Unspecified"), InputCollection.OfType <FileSystemStorageFolder>()));

                Result.Add(new FileSystemStorageGroupItem(Globalization.GetString("GroupHeader_Smaller"), InputCollection.OfType <FileSystemStorageFile>().Where((Item) => Item.SizeRaw >> 10 < 1024)));

                Result.Add(new FileSystemStorageGroupItem(Globalization.GetString("GroupHeader_Medium"), InputCollection.OfType <FileSystemStorageFile>().Where((Item) => Item.SizeRaw >> 10 >= 1024 && Item.SizeRaw >> 20 < 128)));

                Result.Add(new FileSystemStorageGroupItem(Globalization.GetString("GroupHeader_Larger"), InputCollection.OfType <FileSystemStorageFile>().Where((Item) => Item.SizeRaw >> 20 >= 128 && Item.SizeRaw >> 20 < 1024)));

                Result.Add(new FileSystemStorageGroupItem(Globalization.GetString("GroupHeader_Huge"), InputCollection.OfType <FileSystemStorageFile>().Where((Item) => Item.SizeRaw >> 30 >= 1)));

                break;
            }

            default:
            {
                return(new List <FileSystemStorageGroupItem>(0));
            }
            }

            if (Direction == GroupDirection.Descending)
            {
                Result.Reverse();
            }

            return(Result);
        }