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); } }
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); }