예제 #1
0
        private void ImportLocation(string filePath)
        {
            try
            {
                string json     = File.ReadAllText(filePath);
                var    location = JsonConvert.DeserializeObject <Location>(json);

                var createLocationRequest = new CreateLocationRequest(
                    name: location.Name,
                    countryCode: location.CountryCode ?? "USA",
                    latitude: location.Latitude,
                    longitude: location.Longitude,
                    regionRadius: location.RegionRadius,
                    temperatureScale: location.TemperatureScale,
                    locale: location.Locale,
                    additionalProperties: location.AdditionalProperties);

                STClient.CreateLocation(createLocationRequest);
                ShowMessage($"Location added!");
            }
            catch (SmartThingsNet.Client.ApiException exp)
            {
                ShowErrorMessage($"Error {exp.ErrorCode}{Environment.NewLine}{exp.Message}");
            }
            catch (Exception exp)
            {
                ShowErrorMessage($"Error {exp.Message}");
            }
            finally
            {
                ImportItem();
            }
        }
예제 #2
0
        public CreateLocationCommand Map(CreateLocationRequest request)
        {
            var result = new CreateLocationCommand(request.BodySource, request.BodySite, request.BodyWarehouse, request.BodyGate,
                                                   request.BodyRow, request.BodyPosition, request.BodyType, request.BodyIsRack);

            return(result);
        }
예제 #3
0
        public async Task <IActionResult> Create(CreateLocationRequest request)
        {
            var command = _mapper.Map <CreateLocationCommand>(request);
            await _commandSender.Send(command);

            return(Ok());
        }
        public IHttpActionResult Create(CreateLocationRequest request)
        {
            var command = _mapper.Map <CreateLocationCommand>(request);

            _commandSender.Send(command);
            return(Ok());
        }
예제 #5
0
        public async Task <IActionResult> Create(CreateLocationRequest request, CancellationToken ct = default)
        {
            var command = await _mapper.Map <CreateLocationCommand>(request);

            await _commandSender.Send(command, ct);

            return(Ok());
        }
예제 #6
0
        public async Task <IActionResult> Produce(CreateLocationRequest request)
        {
            var validatorActionResult = await _validationArrangement.Validate(request);

            var actionResult = await _operationArrangement.Process(request, validatorActionResult);

            return(actionResult);
        }
예제 #7
0
 public VehicleBuyingProcessTests()
 {
     _request = new CreateLocationRequest {
         Name = "houston"
     };
     _createLocationRepositoryMock = new Mock <ICreateLocationRepository>();
     _processor = new CreateLocationRequestProcessor(_createLocationRepositoryMock.Object);
 }
예제 #8
0
        public async Task <IActionResult> Create([FromQuery] CreateLocationFromQuery query,
                                                 [FromBody] CreateLocationFromBody body)
        {
            var request = new CreateLocationRequest(query, body);

            var result = await _apiResult.Produce(request);

            return(result);
        }
예제 #9
0
        public async Task <LocationResponse> CreateAsync(CreateLocationRequest request)
        {
            LocationEntity _CreatedEntity = await __LocationRepository.CreateAsync(request.ToEntity());

            return(_CreatedEntity.ToResponse() ?? new LocationResponse
            {
                Success = false,
                ErrorMessage = $"{GlobalConstants.ERROR_ACTION_PREFIX} create {ENTITY_NAME}."
            });
        }
예제 #10
0
 internal static LocationEntity ToEntity(this CreateLocationRequest request)
 {
     return(request == null ? null : new LocationEntity
     {
         Name = request.Name,
         Description = request.Description,
         Floor = request.Floor,
         Address = request.Address,
         UserUID = request.UserUID
     });
 }
        public CreateLocationResult createLocation(CreateLocationRequest locationRequest)
        {
            if (locationRequest == null)
            {
                throw new ArgumentNullException(nameof(locationRequest));
            }
            _createLocationRepository.Save(locationRequest);

            return(new CreateLocationResult {
                Name = locationRequest.Name
            });
        }
예제 #12
0
        public override bool SaveItem(bool copyCurrent = false)
        {
            var json = JsonView?.Text.ToString();

            if (!string.IsNullOrEmpty(json))
            {
                try
                {
                    var location = JsonConvert.DeserializeObject <Location>(json);

                    if (copyCurrent)
                    {
                        var createLocationRequest = new CreateLocationRequest(
                            name: location.Name += "-copy",
                            countryCode: location.CountryCode ?? "USA",
                            latitude: location.Latitude,
                            longitude: location.Longitude,
                            regionRadius: location.RegionRadius,
                            temperatureScale: location.TemperatureScale,
                            locale: location.Locale,
                            additionalProperties: location.AdditionalProperties);

                        STClient.CreateLocation(createLocationRequest);
                    }
                    else
                    {
                        UpdateLocationRequest locationRequest = new UpdateLocationRequest(
                            name: location.Name,
                            latitude: location.Latitude,
                            longitude: location.Longitude,
                            regionRadius: location.RegionRadius,
                            temperatureScale: location.TemperatureScale,
                            locale: location.Locale,
                            additionalProperties: location.AdditionalProperties);

                        STClient.UpdateLocation(location.LocationId.ToString(), locationRequest);
                    }

                    RefreshScreen();
                }
                catch (SmartThingsNet.Client.ApiException exp)
                {
                    ShowErrorMessage($"Error: {exp.ErrorCode} {Environment.NewLine} {exp.Message}");
                }
                catch (Exception exp)
                {
                    ShowErrorMessage($"Error updating: {exp}");
                }
            }
            return(true);
        }
예제 #13
0
        public Location AddLocation(CreateLocationRequest newLocation)
        {
            var locationRepo = new LocationRepository();

            using (var db = new SqlConnection(ConnectionString))
            {
                var insertQuery = @"
                        INSERT INTO [dbo].[Locations]
                                   ([City]
                                   ,[State]
                                   ,[StreetAddress]
                                   ,[Zipcode]
                                   ,[DateOfEvent]
                        )
                        output inserted.*
                             VALUES
                                   (@city,
                                    @state,
                                    @streetAddress,
                                    @zipcode,
                                    @DateOfEvent
                        )";

                var parameters = new
                {
                    City          = newLocation.City,
                    State         = newLocation.State,
                    StreetAddress = newLocation.StreetAddress,
                    Zipcode       = newLocation.Zipcode,
                    DateOfEvent   = newLocation.DateOfEvent
                };

                var newLocations = db.QueryFirstOrDefault <Location>(insertQuery, parameters);

                if (newLocation != null)
                {
                    return(newLocations);
                }

                throw new Exception("Could not create location");
            }
        }
        public async Task<IActionResult> Process(CreateLocationRequest request, IValidatorActionResult validatorActionResult)
        {
            IActionResult actionResult;

            if (validatorActionResult.Result == null)
            {
                var call = _cqsMapper.Map(request);

                var result = await _mediator.Send(call);

                actionResult = result.IsFailure ? _apiResponse.Fail(result)
                                                : _apiResponse.Created(string.Format("/api/locations/{0}", ((Result<Guid>)result).Value), result.Version.ToString());
            }
            else
            {
                actionResult = validatorActionResult.Result;
            }

            return actionResult;
        }
예제 #15
0
        public Task <LocationDTO> CreateLocationAsync(CreateLocationDataModel createLocationDataModel, CancellationTokenSource cancellationTokenSource) =>
        Task <LocationDTO> .Run(async() => {
            if (!CrossConnectivity.Current.IsConnected)
            {
                throw new InvalidOperationException(AppConsts.ERROR_INTERNET_CONNECTION);
            }

            LocationDTO createdLocation = null;

            CreateLocationRequest createLocationRequest = new CreateLocationRequest()
            {
                AccessToken = GlobalSettings.Instance.UserProfile.AccesToken,
                Data        = createLocationDataModel,
                Url         = GlobalSettings.Instance.Endpoints.ScheduleEndpoints.CreateNewLocation
            };

            try {
                CreateLocationResponse createLocationResponse = await _requestProvider.PostAsync <CreateLocationRequest, CreateLocationResponse>(createLocationRequest);

                if (createLocationResponse != null)
                {
                    createdLocation = BuildLocation(createLocationResponse);
                }
                else
                {
                    throw new InvalidOperationException(CREATE_LOCATION_COMMON_ERROR_MESSAGE);
                }
            }
            catch (ServiceAuthenticationException exc) {
                _identityUtilService.RefreshToken();

                throw exc;
            }
            catch (Exception exc) {
                Crashes.TrackError(exc);

                throw;
            }

            return(createdLocation);
        }, cancellationTokenSource.Token);
예제 #16
0
        public ActionResult AddLocation(CreateLocationRequest createLocationRequest)
        {
            var newLocation = _locationRepository.AddNewLocation(
                createLocationRequest.UserId,
                createLocationRequest.ItineraryId,
                createLocationRequest.LocationName,
                createLocationRequest.Address,
                createLocationRequest.Rating,
                createLocationRequest.Price,
                createLocationRequest.Photo_ref,
                createLocationRequest.Html_attr);

            // Adds new locationInterestType
            _locationRepository.AddNewLocationInterestType(
                createLocationRequest.InterestTypeId,
                newLocation.Id);

            // Adds new itineraryLocation
            _locationRepository.AddNewItineraryLocation(
                createLocationRequest.LocationId,
                createLocationRequest.ItineraryId);

            return(Created($"/api/locations/{newLocation.Id}", newLocation));
        }
예제 #17
0
        private async Task SynchVenuesWithExternalPaymentProvider(string accessToken, Company company)
        {
            if (company == null)
            {
                return;
            }

            try
            {
                var client = new SquareClient.Builder()
                             .Environment(_settings.Connection.SquarePaymentsSandbox ? Square.Environment.Sandbox : Square.Environment.Production)
                             .AccessToken(accessToken)
                             .Build();

                ListLocationsResponse result = await client.LocationsApi.ListLocationsAsync().ConfigureAwait(false);

                var companyVenues = await _venues.FetchCompanyVenues(company.CompanyId, 0, int.MaxValue)
                                    .OnSuccess(c => c.Value.ToList())
                                    .ConfigureAwait(true);

                if (companyVenues.IsSuccess)
                {
                    foreach (var item in companyVenues.Value)
                    {
                        try
                        {
                            var matchedLocation = result.Locations
                                                  .FirstOrDefault(
                                x => NormaliseString(x.Name) == NormaliseString(item.VenueName) &&
                                NormaliseString(x.Address.PostalCode) == NormaliseString(item.VenuePostCode));

                            // need to find a match in Square location
                            if (matchedLocation != null)
                            {
                                if (string.IsNullOrWhiteSpace(item.ExternalLocationId) && matchedLocation != null)
                                {
                                    // We have a match and need to update local Database
                                    await _venues.UpdateVenue(new VenuePatch
                                    {
                                        ResourceId         = item.VenueId,
                                        ExternalLocationId = new PatchOperation <string> {
                                            Operation = OperationKind.Update, Value = matchedLocation.Id
                                        },
                                    }).ConfigureAwait(false);
                                }
                            }
                            else if (matchedLocation == null)
                            {
                                // we have a location in our system that does not exist in sqaure. Need to add one
                                var createLocation = new CreateLocationRequest(new Location(
                                                                                   name: item.VenueName,
                                                                                   address:
                                                                                   new Address(
                                                                                       addressLine1: string.IsNullOrWhiteSpace(item.VenueAddress) ? "Not supplied" : item.VenueAddress,
                                                                                       addressLine2: item.VenueAddress2,
                                                                                       addressLine3: item.VenueAddress3,
                                                                                       postalCode: string.IsNullOrWhiteSpace(item.VenuePostCode) ? "Not supplied" : item.VenuePostCode,
                                                                                       locality: string.IsNullOrWhiteSpace(item.VenueCounty) ? "Not supplied" : item.VenueCounty,
                                                                                       firstName: item.VenueContact),
                                                                                   status: "ACTIVE",
                                                                                   phoneNumber: GetVenuePhoneNumber(company, item)));

                                var newLocation = client.LocationsApi.CreateLocation(createLocation);

                                if (newLocation.Location != null)
                                {
                                    await _venues.UpdateVenue(new VenuePatch
                                    {
                                        ResourceId         = item.VenueId,
                                        ExternalLocationId = new PatchOperation <string> {
                                            Operation = OperationKind.Update, Value = newLocation.Location.Id
                                        },
                                    }).ConfigureAwait(false);
                                }
                            }
                        }
                        catch (ApiException e)
                        {
                            Logger.LogError(e, $"Failed to create business location for venue {item.VenueName}");
                        }
                    }
                }
            }
            catch (ApiException e)
            {
                Logger.LogError(e, $"Failed to connect to Square API");
            }
        }
예제 #18
0
        public async Task <IActionResult> CreateLocation(CreateLocationRequest model)
        {
            var result = await _locationService.Create(model);

            return(Ok(result));
        }
 public Location CreateLocation(CreateLocationRequest locationRequest)
 {
     return(_locationsApi.CreateLocation(locationRequest));
 }
예제 #20
0
        public ActionResult AddLocation(CreateLocationRequest newLocation)
        {
            var newLocations = _locationRepository.AddLocation(newLocation);

            return(Ok(newLocations));
        }
 public CreateLocationResponse CreateLocation(CreateLocationRequest locationRequest)
 {
     return(_locationsApi.CreateLocation(_accessToken, locationRequest));
 }