public ResponseMessageData <StoreModel> StoreAvailableForAddress(StoreAvailableModel model) { try { var response = new ResponseMessageData <StoreModel>(); if (model.AddressInfo.IsMap == false) { AppInit.Container.Resolve <IStoreService>().StoreAvailableForAddress(model, response); } else { AppInit.Container.Resolve <IStoreService>().StoreAvailableForAddressMap(model, response); } if (response.IsSuccess == false) { return(response); } return(response); } catch (Exception ex) { SharedLogger.LogError(ex); return(ResponseMessageData <StoreModel> .CreateCriticalMessage("No fue posible obtener una sucursal disponible para esa dirección")); } }
public StoreModel StoreAvailableForAddress(StoreAvailableModel model, ResponseMessageData <StoreModel> response) { using (_repositoryStore) { int franchiseId; var stores = FactoryAddress.GetQueryToSearchStore(_repositoryStore.InnerDbEntities, model.FranchiseCode, model.AddressInfo, out franchiseId); return(GetStoreAvailable(response, stores, true)); } }
public StoreModel StoreAvailableForAddressMap(StoreAvailableModel model, ResponseMessageData <StoreModel> response) { using (_repositoryStore) { var lstStoresCoverage = _repositoryStore.GetAvailableCoverageByFrachiseCode(model.FranchiseCode); if (lstStoresCoverage == null || lstStoresCoverage.Count == 0) { response.IsSuccess = false; response.Message = "La franquicia no tiene configurada la cobertura de sus sucursales"; return(null); } List <int> storesIds; try { storesIds = CalculateStoresCoverages(lstStoresCoverage, model.AddressInfo); } catch (Exception ex) { SharedLogger.LogError(ex, lstStoresCoverage, model.AddressInfo); throw; } if (storesIds.Count == 0) { response.IsSuccess = false; response.Message = "No existe cobertura en esa dirección"; return(null); } var stores = _repositoryStore.GetStoresByIds(storesIds); return(GetStoreAvailable(response, stores, true)); } }
private void ValidateStore() { var orderModel = OrderService.OrderModel; if (orderModel == null) { return; } var franchise = orderModel.Franchise; if (franchise == null || String.IsNullOrEmpty(franchise.Code)) { return; } var address = orderModel.LstAddressInfo.FirstOrDefault(e => e.IsSelected); if (address == null) { return; } DisposeSubscription(); var model = new StoreAvailableModel { FranchiseCode = OrderService.OrderModel.Franchise.Code, AddressInfo = address.AddressInfo }; _subscription = _client.ExecutionProxy.ExecuteRequest <StoreAvailableModel, StoreAvailableModel, ResponseMessageData <StoreModel>, ResponseMessageData <StoreModel> >(model, TransferDto.TransferDto.SameType, SharedConstants.Server.STORE_HUB, SharedConstants.Server.AVAILABLE_FOR_ADDRESS_STORE_HUB_METHOD, TransferDto.TransferDto.SameType) .Subscribe(e => OnResultStoreAvailableOk(e, true), OnResultStoreAvailableError); }