public void OnAddressChanged(AddressInfoGrid model, bool bHasToSelect)
        {
            if (model != null)
            {
                switch (model.Status)
                {
                case SharedConstants.Client.RECORD_ERROR_SAVED:
                    model.IsOk             = Visibility.Collapsed;
                    model.IsError          = Visibility.Visible;
                    model.IsSaveInProgress = Visibility.Collapsed;
                    model.MsgErr           = model.Message;
                    break;

                case SharedConstants.Client.RECORD_ONPROGRESS_TO_SAVED:
                    model.IsOk             = Visibility.Collapsed;
                    model.IsError          = Visibility.Collapsed;
                    model.IsSaveInProgress = Visibility.Visible;
                    break;

                case SharedConstants.Client.RECORD_SAVED:
                    model.IsOk             = Visibility.Visible;
                    model.IsError          = Visibility.Collapsed;
                    model.IsSaveInProgress = Visibility.Collapsed;
                    break;
                }
            }

            if (bHasToSelect)
            {
                RxApp.MainThreadScheduler.Schedule(_ => { AddressSelection = model; });
            }
        }
Пример #2
0
        public void Fill(AddressInfoGrid clInfo, FranchiseInfoModel franchise)
        {
            IsSearchByWaterfall = false;
            IsSearchByCode      = !clInfo.AddressInfo.IsMap;
            IsSearchByMap       = clInfo.AddressInfo.IsMap;
            Franchise           = franchise;


            RxApp.MainThreadScheduler.Schedule(_ =>
            {
                ErrorUpsert = String.Empty;
                PreId       = clInfo.PreId;
                var addr    = clInfo.AddressInfo;
                Id          = addr.AddressId;


                if (clInfo.AddressInfo.IsMap)
                {
                    AddressMapInfo = new AddressMapInfoModel
                    {
                        Address = new AddressMapModel
                        {
                            Country     = addr.Country.Value,
                            MainAddress = addr.MainAddress,
                            NumExt      = addr.ExtIntNumber,
                            Reference   = addr.Reference,
                            RegionA     = addr.RegionA.Value,
                            RegionB     = addr.RegionB.Value,
                            RegionC     = addr.RegionC.Value,
                            RegionD     = addr.RegionD.Value,
                            ZipCode     = addr.ZipCode.Value
                        },
                        PlaceId  = addr.PlaceId,
                        Position = new PositionModel
                        {
                            Lat = addr.Lat,
                            Lng = addr.Lng,
                        }
                    };
                }
                else
                {
                    ZipCodeId = (int?)addr.ZipCode.IdKey;
                    ZipCode   = addr.ZipCode.Value;
                    ZipCodeSearchVm.Search = ZipCodeId != null ? ZipCode : String.Empty;
                    ZipCodeSearchVm.IsDone = SharedConstants.Client.IS_TRUE;

                    CountrySel  = AddAndSelectToControl(addr.Country, Countries);
                    RegionArSel = AddAndSelectToControl(addr.RegionA, RegionsA);
                    RegionBrSel = AddAndSelectToControl(addr.RegionB, RegionsB);
                    RegionCrSel = AddAndSelectToControl(addr.RegionC, RegionsC);
                    RegionDrSel = AddAndSelectToControl(addr.RegionD, RegionsD);
                }

                MainAddress = addr.MainAddress;
                Reference   = addr.Reference;
                NumExt      = addr.ExtIntNumber;
            });
        }
        protected virtual void OnAddressSelected(AddressInfoGrid obj)
        {
            Action <AddressInfoGrid> handler = ItemSelected;

            if (handler != null)
            {
                handler(obj);
            }
        }
        protected virtual void OnAddressChanged(AddressInfoGrid model)
        {
            var handler = AddressChanged;

            if (handler != null)
            {
                handler(model);
            }
        }
 public void OnAddressSelected(AddressInfoGrid info)
 {
     if (info == null)
     {
         OnItemChanged(AddressView, SharedConstants.Client.RECORD_ERROR_SAVED, String.Empty, String.Empty);
     }
     else
     {
         OnItemChanged(AddressView, SharedConstants.Client.RECORD_SAVED,
                       String.Format("{0} {1}", info.AddressInfo.MainAddress, info.AddressInfo.ExtIntNumber), String.Empty);
     }
 }
        private void ClearAndSelect(AddressInfoGrid addressSelection)
        {
            foreach (var address in LstAddresses)
            {
                address.IsSelected = false;
            }

            if (addressSelection != null)
            {
                addressSelection.IsSelected = true;
            }
            else if (LstAddresses.Count > 0)
            {
                LstAddresses[0].IsSelected = true;
            }
        }
        private void DoRemoveAddress(MessageDialogResult result, AddressInfoGrid clInfo)
        {
            if (result != MessageDialogResult.Affirmative)
            {
                return;
            }

            var relClientPhone = new AddressPhoneModel
            {
                AddressId      = clInfo.AddressInfo.AddressId ?? SharedConstants.NULL_ID_VALUE,
                AddressPhoneId = clInfo.AddressInfo.PrimaryPhone.PhoneId
            };

            _client.ExecutionProxy
            .ExecuteRequest <AddressPhoneModel, AddressPhoneModel, ResponseMessageData <bool>, ResponseMessageData <bool> >
                (relClientPhone, TransferDto.SameType, SharedConstants.Server.ADDRESS_HUB,
                SharedConstants.Server.REMOVE_REL_PHONECLIENT_ADDRESS_HUB_METHOD, TransferDto.SameType)
            .Subscribe(x => OnRemoveDone(x, clInfo), OnRemoveError);
        }
        private void OnAddressListReady(IStale <ResponseMessageData <AddressInfoModel> > obj)
        {
            if (obj.IsStale)
            {
                OnAddressListError(Resources.Network.ResNetwork.ERROR_NETWORK_DOWN);
                return;
            }

            if (obj.Data.IsSuccess == false)
            {
                OnAddressListError(obj.Data.Message);
                return;
            }

            RxApp.MainThreadScheduler.Schedule(_ =>
            {
                IsGettingData = false;
                LstAddresses.Clear();
                var bIsFirst = true;
                foreach (var info in obj.Data.LstData)
                {
                    var row = new AddressInfoGrid
                    {
                        AddressInfo = info,
                        Status      = SharedConstants.Client.RECORD_SAVED,
                        IsSelected  = bIsFirst
                    };

                    OnAddressChanged(row, bIsFirst);
                    LstAddresses.Add(row);
                    bIsFirst = false;
                }

                if (bIsFirst)
                {
                    OnAddressChanged(null, true);
                }
            });
        }
        private void OnRemoveDone(IStale <ResponseMessageData <bool> > obj, AddressInfoGrid clInfo)
        {
            if (obj.IsStale)
            {
                OnRemoveError(Resources.Network.ResNetwork.ERROR_NETWORK_DOWN);
                return;
            }

            if (obj.Data.IsSuccess == false)
            {
                OnRemoveError(obj.Data.Message);
                return;
            }

            RxApp.MainThreadScheduler.Schedule(_ =>
            {
                var client = LstAddresses.FirstOrDefault(e => e.PreId == clInfo.PreId);
                if (client != null)
                {
                    LstAddresses.Remove(client);
                }
            });
        }
        public void ProcessAddress(AddressInfoGrid infoModel)
        {
            var oldAddressInfo = _model.LstAddressInfo.FirstOrDefault(e =>
                                                                      (infoModel.AddressInfo.AddressId != null && e.AddressInfo.AddressId == infoModel.AddressInfo.AddressId) || infoModel.PreId == e.PreId);

            if (oldAddressInfo != null)
            {
                RxApp.MainThreadScheduler.Schedule(_ => _model.LstAddressInfo.Remove(oldAddressInfo));
            }

            RxApp.MainThreadScheduler.Schedule(_ => _model.LstAddressInfo.Add(infoModel));

            infoModel.Status   = SharedConstants.Client.RECORD_ONPROGRESS_TO_SAVED;
            infoModel.Username = CurrentUserSettings.UserInfo.Username;
            infoModel.AddressInfo.PrimaryPhone = _model.PhoneInfo;

            OnAddressChanged(infoModel);

            _client.ExecutionProxy.ExecuteRequest <AddressInfoModel, AddressInfoModel, ResponseMessageData <AddressInfoModel>, ResponseMessageData <AddressInfoModel> >
                (infoModel.AddressInfo, TransferDto.TransferDto.SameType, SharedConstants.Server.ADDRESS_HUB,
                SharedConstants.Server.SAVE_ADDRESS_ADDRESS_HUB_METHOD, TransferDto.TransferDto.SameType)
            .Subscribe(x => OnAddressSaved(x, infoModel), e => OnAddressSavedError(e, infoModel));
        }
 public void OnAddressChanged(AddressInfoGrid obj)
 {
     OnAddressChanged(obj, true);
 }
 public void OnAddressSelected(AddressInfoGrid obj)
 {
     ValidateStore();
 }
        private void OnAddressSaved(IStale <ResponseMessageData <AddressInfoModel> > obj, AddressInfoGrid infoModel)
        {
            if (obj.IsStale)
            {
                OnAddressSavedError(Resources.Network.ResNetwork.ERROR_NETWORK_DOWN, infoModel);
                return;
            }

            if (obj.Data.IsSuccess == false)
            {
                OnAddressSavedError(obj.Data.Message, infoModel);
                return;
            }

            var modelSaved = obj.Data.Data;

            infoModel.AddressInfo.AddressId = modelSaved.AddressId;
            infoModel.Status = SharedConstants.Client.RECORD_SAVED;
            OnAddressChanged(infoModel);
        }
 private void OnAddressSavedError(String msgError, AddressInfoGrid infoModel)
 {
     infoModel.Message = msgError;
     infoModel.Status  = SharedConstants.Client.RECORD_ERROR_SAVED;
     OnAddressChanged(infoModel);
 }
 private void OnAddressSavedError(Exception exception, AddressInfoGrid infoModel)
 {
     OnAddressSavedError(exception.Message, infoModel);
 }