//private void PropertyChangedAction(object sender, PropertyChangedEventArgs e)
        //{
        //	if (e.PropertyName == nameof())
        //}

        async Task <bool> LoadData()
        {
            UIFunc.ShowLoading();

            var task1 = WebServiceFunc.GetOrder(OrderRowId);
            var task2 = WebServiceFunc.GetInstitutionsForSchedule();
            var task3 = WebServiceFunc.GetStates(1);
            await Task.WhenAll(task1, task2, task3);

            if (task1.Result == null || task2.Result == null || task3.Result == null)
            {
                await UIFunc.AlertError(U.StandartErrorUpdateText);

                return(false);
            }

            Order           = task1.Result;
            DdlInstitutions = task2.Result.OrderBy(q => q.CompanyName).ToObservableCollection();
            DdlStates       = task3.Result.OrderBy(q => q.Name).ToArray();

            var institutionRowIds = DdlInstitutions.Select(q => q.RowId).ToArray();
            var slotTasks         = institutionRowIds.Select(q => WebServiceFunc.GetBookingSlots(q)).ToArray();
            await Task.WhenAll(slotTasks);

            if (slotTasks.Any(q => q.Result == null))
            {
                await UIFunc.AlertError(U.StandartErrorUpdateText);

                return(false);
            }

            AllBookingSlots = new Dictionary <Guid, ScheduleItemSlot[]>();
            for (int i = 0; i < institutionRowIds.Length; i++)
            {
                AllBookingSlots.Add(institutionRowIds[i], slotTasks[i].Result);
            }


            Model             = Order.UserProfile;
            PatientOrderItems = Order.Pois.OrderBy(q => q.Patient?.FullPatientName).ToObservableCollection();
            SetupPatientOrderItems(PatientOrderItems);

            PatientOrderItemsJson0 = JsonConvert.SerializeObject(PatientOrderItems);

            if (IsShowFromMode)
            {
                SelectedPatientOrderItem = PatientOrderItems.SingleOrDefault(q => q.RowId == InitSelectedPatientOrderItemRowId);
                if (SelectedPatientOrderItem == null)
                {
                    IsNewRow = true;
                    await InitNewPatient();
                }
                PatientHeaderModels[General].IsExpanded = true;
            }

            UIFunc.HideLoading();

            return(true);
        }
예제 #2
0
        async Task <bool> LoadData()
        {
            UserProfileRowId = UserOptions.GetUserProfileRowId();
            IsNewRow         = (UserProfileRowId == default(Guid));

            UIFunc.ShowLoading();

            var newModel = new UserProfile
            {
                IsNewRow = true,
                Type     = 1,
            };

            if (U.IsDebug)
            {
                newModel.FirstName            = "Test1";
                newModel.LastName             = "Test1";
                newModel.AddressLine1         = "AddressLine1";
                newModel.City                 = "City1";
                newModel.ProvinceOrStateRowId = new Guid("75D55A3F-FD2E-4EBA-A597-53E5A5BE532C");
                newModel.Postcode             = "Postcode1";
                newModel.Phone                = "123-45-67";
                newModel.Email                = "*****@*****.**";
                newModel.Password             = "******";
                newModel.PasswordRepeat       = "123456";
            }

            var task1 = !IsNewRow?WebServiceFunc.GetProfile(UserProfileRowId) : Task.FromResult(newModel);

            var task3 = WebServiceFunc.GetStates(1);
            await Task.WhenAll(task1, task3);

            if (task1.Result == null || task3.Result == null)
            {
                await UIFunc.AlertError(U.StandartErrorUpdateText);

                return(false);
            }

            DdlStates = task3.Result.OrderBy(q => q.Name).ToArray();

            Model = task1.Result;
            SetupModel(Model);

            UIFunc.HideLoading();
            return(true);
        }