コード例 #1
0
        public GroupRunVm ToRunner(GroupVm groupVm, CancellationToken cancel)
        {
            if (groupVm.ModKey.Failed)
            {
                throw new ArgumentException($"Group ModKey was not valid: {groupVm.ModKey.Reason}");
            }

            var patcherVms = groupVm.Patchers.Items
                             .Where(x => x.IsOn)
                             .Select(x => _runnerFactory.ToRunner(x))
                             .ToArray();
            var preps = patcherVms
                        .Select(p => p.Run)
                        .Select(x => _prepPatcherForRun.Prep(x, cancel))
                        .ToArray();

            return(new GroupRunVm(
                       groupVm,
                       new GroupRun(
                           groupVm.ModKey.Value,
                           preps,
                           groupVm.BlacklistedModKeys.ToHashSet()),
                       _runDisplayControllerVm,
                       patcherVms));
        }
コード例 #2
0
 public void TestGroupVm()
 {
     var database = new DatabaseServiceMock();
     var entryVm  = new GroupVm(new PwGroup(true, true), new GroupVm(), database)
     {
         Name = "Test"
     };
 }
コード例 #3
0
 public static GroupDto GetGroupDto(GroupVm group, long userId)
 {
     return(new GroupDto
     {
         GroupId = group.GroupId.GetValueOrDefault(),
         PrivacySettings = group.PrivacySettings?.ToInt32(),
         Title = group.Title,
         UserId = userId,
         UsersId = group.UsersId
     });
 }
コード例 #4
0
ファイル: GroupRunVm.cs プロジェクト: sharpsteve/Synthesis
        public GroupRunVm(
            GroupVm groupVm,
            IGroupRun run,
            RunDisplayControllerVm runDisplayControllerVm,
            IEnumerable <PatcherRunVm> runVms)
        {
            SourceVm = groupVm;
            GroupVm  = groupVm;
            Run      = run;
            RunDisplayControllerVm = runDisplayControllerVm;

            Patchers = runVms;

            _hasStarted = runVms.AsObservableChangeSet()
                          .FilterOnObservable(x => x.WhenAnyValue(x => x.State.Value)
                                              .Select(x => x != RunState.NotStarted))
                          .QueryWhenChanged(q => q.Count > 0)
                          .ToGuiProperty(this, nameof(HasStarted), deferSubscription: true);

            _runTimeString = runVms.AsObservableChangeSet()
                             .AutoRefresh(x => x.RunTime)
                             .Transform(x => x.RunTime, transformOnRefresh: true)
                             .QueryWhenChanged(q =>
            {
                TimeSpan span = new();
                foreach (var s in q)
                {
                    span += s;
                }
                return(span);
            })
                             .Select(time =>
            {
                if (time == new TimeSpan())
                {
                    return(string.Empty);
                }
                if (time.TotalDays > 1)
                {
                    return($"{time.TotalDays:n1}d");
                }
                if (time.TotalHours > 1)
                {
                    return($"{time.TotalHours:n1}h");
                }
                if (time.TotalMinutes > 1)
                {
                    return($"{time.TotalMinutes:n1}m");
                }
                return($"{time.TotalSeconds:n1}s");
            })
                             .ToGuiProperty <string>(this, nameof(RunTimeString), string.Empty, deferSubscription: true);
        }
コード例 #5
0
        public JsonResult GetDetails(Int64 id)
        {
            var res     = groupManager.GetById(id);
            var resText = new GroupVm
            {
                Id            = res.Id,
                EmployeeArray = res.EmployeeArray,
                Name          = res.Name,
                //EmployeeInfoId = res.EmployeeInfoId,
                EmployeeInfoName = res.Name,
                ShortName        = res.ShortName,
                Details          = res.Details,
                Logo             = res.Logo,
                Banner           = res.Banner
            };

            return(Json(new { Data = resText, status = res == null ? false : true }, JsonRequestBehavior.AllowGet));
        }
コード例 #6
0
        public async Task Import(IFormat format, IStorageFile source, GroupVm group)
        {
            var data = await format.Import(source);

            foreach (var entity in data)
            {
                var entry = group.AddNewEntry();
                entry.Name     = entity["0"];
                entry.UserName = entity["1"];
                entry.Password = entity["2"];
                if (entity.Count > 3)
                {
                    entry.Url = entity["3"];
                }
                if (entity.Count > 4)
                {
                    entry.Notes = entity["4"];
                }
            }
        }
コード例 #7
0
 public PasswordEventArgs(GroupVm groupVm)
 {
     RootGroup = groupVm;
 }