예제 #1
0
        private static async Task <Elt> CreateSearchResults(FSharpOption <JobSearchCriteria> input, Var <IEnumerable <string> > methodCriteria, ListModel <string, JobUpdateViewModel> updateSet, Doc result)
        {
            if (input == null)
            {
                return(Html.div(""));
            }
            var methodOptionFuture = Pervasives.Remote <OddJobRemotingWrapper>()
                                     .Handle(new GetMethodsForQueueNameRequest()
            {
                QueueName = input.Value.QueueName
            });
            var awaitedMethodOptions = await methodOptionFuture;

            methodCriteria.Value = awaitedMethodOptions;
            var future        = Pervasives.Remote <OddJobRemotingWrapper>().Handle(input.Value);
            var awaitedFuture = await future;


            updateSet.Set(awaitedFuture.Select(q =>
            {
                return(new JobUpdateViewModel()
                {
                    JobGuid = q.JobId,
                    MetaData = q,
                    UpdateData = new UpdateForJob()
                    {
                        JobGuid = q.JobId,
                        OldStatus = q.Status,
                        ParamUpdates = q.JobArgs.Select(r => new UpdateForParam()
                        {
                            ParamOrdinal = r.Ordinal
                        }).ToArray()
                    }
                });
            }));


            return(Html.div(Html.h3("Results:"), Html.br(), Html.doc(result)));
        }