示例#1
0
        public void Load(long periodId, long?jobId, ActionType actionTypeParam)
        {
            actionType = actionTypeParam;
            preLoad(periodId, jobId);

            if (jobId.HasValue) // modify job
            {
                Jobs = new List <JobInPeriodDTO>();
                ShowBusyIndicator("در حال دریافت اطلاعات...");
                jobInPeriodService.GetJobInPeriod((res, exp) => appController.BeginInvokeOnDispatcher(() =>
                {
                    HideBusyIndicator();
                    if (exp == null)
                    {
                        Jobs.Add(res);
                        SelectedJobInPeriod = res;
                    }
                }), periodId, jobId.Value);
            }
            else // add new job => action is  ActionType.AddJobInPrdField
            {
                ShowBusyIndicator();
                jobInPeriodService.GetAllJobInPeriod((jobInPeriodListRes, exp) => appController.BeginInvokeOnDispatcher(() =>
                {
                    if (exp == null)
                    {
                        jobService.GetAllJobs((jobsRes, jobsExp) => appController.BeginInvokeOnDispatcher(() =>
                        {
                            HideBusyIndicator();

                            if (jobsExp == null)
                            {
                                var jList = jobsRes.Where(r => !jobInPeriodListRes.Select(jip => jip.JobId).Contains(r.Id)).ToList();
                                Jobs      = jList.Select(
                                    j => new JobInPeriodDTO()
                                {
                                    Name = j.Name, JobId = j.Id, CustomFields = new List <CustomFieldDTO>()
                                }).ToList();
                            }
                            else
                            {
                                appController.HandleException(jobsExp);
                            }
                        }));
                    }
                    else
                    {
                        appController.HandleException(exp);
                    }
                }), periodId);
            }
        }
示例#2
0
        public void Load()
        {
            var sortBy = jobs.SortDescriptions.ToDictionary(sortParam => sortParam.PropertyName,
                                                            sortDirect =>
                                                            (sortDirect.Direction == ListSortDirection.Ascending)
                                                                ? "ASC" : "DESC");

            jobService.GetAllJobs(
                (res, exp) => appController.BeginInvokeOnDispatcher(() =>
            {
                HideBusyIndicator();
                if (exp == null)
                {
                    Jobs.SourceCollection = res.Result;
                    Jobs.TotalItemCount   = res.TotalCount;
                    Jobs.PageIndex        = Math.Max(0, res.CurrentPage - 1);
                }
                else
                {
                    appController.HandleException(exp);
                }
            }), jobs.PageSize, jobs.PageIndex + 1, sortBy);
        }