private void Map(LocationOverviewDto locationsOverview, LocationDetailsDto locationsDetails) { locationsDetails.Name = locationsOverview.Name; locationsDetails.IsRetroGamesOnly = locationsOverview.IsRetroGamesOnly; locationsDetails.Town = locationsOverview.Town; locationsDetails.EntryPrice = locationsOverview.EntryPrice; locationsDetails.Rating = locationsOverview.Rating; locationsDetails.IsChildFriendly = locationsOverview.IsChildFriendly; locationsDetails.IsFoodServed = locationsOverview.IsFoodServed; }
public async Task <WriteRequestResult> Add(LocationDetailsDto locationDetails) { try { var locationDetailsModel = _mapper.Map <LocationDetailsModel>(locationDetails); var gameIds = locationDetails.GameOverviewList.Keys.ToList(); locationDetailsModel.GameOverviewList = await CreateValidGamesList(gameIds.ConvertAll(Guid.Parse)); var locationOverviewModel = _mapper.Map <LocationOverviewModel>(locationDetails); var locationExists = await GetLocationIdOrDefault(locationDetailsModel); if (locationExists != default(Guid)) { return(new WriteRequestResult { ItemId = locationExists, Status = WriteRequestStatus.Duplicate }); } var locationId = Guid.NewGuid(); locationDetailsModel.Id = locationId; locationOverviewModel.Id = locationId; // todo: how to undo a write if another fails -> https://stackoverflow.com/questions/51703022/rollback-with-dynamodb var locationDetailsTask = _locationDetailsRepository.Add(locationDetailsModel); var locationOverviewTask = _locationOverviewRepository.Add(locationOverviewModel); await Task.WhenAll(locationDetailsTask, locationOverviewTask); return(new WriteRequestResult { ItemId = null, Status = WriteRequestStatus.Success }); } catch (ValueNotFoundInDatabaseException ex) { // todo: do something when this is found. expectation is that a user will have selected values retrived from the DB only return(new WriteRequestResult { ItemId = null, Status = WriteRequestStatus.Failed }); } catch (Exception ex) { // todo: revise this to look for specific error return(new WriteRequestResult { ItemId = null, Status = WriteRequestStatus.Failed }); } }
public IDataResult <LocationDetailsDto> GetLocationDetailsDtoById(int locationId) { var location = _locationDao.Get(l => l.Id == locationId); var locAddress = _addressDao.Get(a => a.Id == location.AddressId); var locationDetailsDto = new LocationDetailsDto { LocationId = location.Id, LocationCode = location.Code, LocationName = location.Name, LocationTypeId = location.LocationTypeId, LocationTypeName = location.LocationTypeId.ToString(), IsInternalLocation = location.IsInternalLocation, IsReturnLocation = location.IsReturnLocation, IsScrapLocation = location.IsScrapLocation, AddressId = locAddress.Id, AddressTitle = locAddress.Title }; return(new SuccessDataResult <LocationDetailsDto>(locationDetailsDto)); }
public async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = null)] HttpRequest req, ILogger log) { log.LogInformation("C# HTTP trigger function processed a request."); var isParamGuid = Guid.TryParse(req.Query["id"], out var locationOverviewId); if (!isParamGuid) { return(new BadRequestObjectResult("the parameter **id** must be a valid Guid")); } LocationDetailsDto responseMessage = await _locationDetailsService.Get(locationOverviewId); if (responseMessage == null) { return(new NoContentResult()); } return(new OkObjectResult(responseMessage)); }
public async Task OkResultReturnsWhenLocationDetailsNotNull() { var req = new Mock <HttpRequest>(); var queryString = new Dictionary <string, StringValues>() { { "id", Guid.NewGuid().ToString() } }; req.Setup(x => x.Query).Returns(new QueryCollection(queryString)); var locationDetails = new LocationDetailsDto { Id = Guid.NewGuid() }; _locationsDetailsServiceMock.Setup(x => x.Get(It.IsAny <Guid>())).Returns(Task.FromResult(locationDetails)); IActionResult actual = await _sut.Run(req.Object, _loggerMock.Object); var expected = new OkObjectResult(locationDetails); var actualResult = (OkObjectResult)actual; Assert.True(expected.GetType() == actual.GetType()); Assert.Equal(expected.Value, actualResult.Value); }