private IResult UpdateLocation(Location location, CreateLocationParameters parameters) { if (string.IsNullOrWhiteSpace(parameters.Params.Description)) { return(new InvalidResult(string.Format(UserMessages.LocationDescriptionRequired))); } var facility = _facilityUnitOfWork.FacilityRepository.FindByKey(parameters.FacilityKey, f => f.Locations); if (facility == null) { return(new InvalidResult(string.Format(UserMessages.FacilityNotFound, parameters.FacilityKey))); } if (facility.Locations.Any(l => l.Description == parameters.Params.Description)) { return(new InvalidResult(string.Format(UserMessages.FacilityContainsLocationDescription, facility.Name, parameters.Params.Description))); } location.LocationType = parameters.Params.LocationType; location.Description = parameters.Params.Description; location.Active = parameters.Params.Active; location.Locked = parameters.Params.Locked; location.FacilityId = parameters.FacilityKey.FacilityKey_Id; return(new SuccessResult()); }
internal IResult <Location> CreateLocation(CreateLocationParameters parameters) { var location = new Location(); var updateResult = UpdateLocation(location, parameters); if (!updateResult.Success) { return(updateResult.ConvertTo <Location>()); } return(new SuccessResult <Location>(_facilityUnitOfWork.LocationRepository.Add(location))); }
public void Returns_non_successful_result_if_Location_is_empty() { //Arrange var parameters = new CreateLocationParameters { UserToken = TestUser.UserName, FacilityKey = new FacilityKey(TestHelper.CreateObjectGraphAndInsertIntoDatabase <Facility>()) }; //Act var result = Service.CreateLocation(parameters); //Assert result.AssertNotSuccess(UserMessages.LocationDescriptionRequired); }
public void Creates_new_Location_with_non_unique_Description_in_different_Facility() { //Arrange var location = TestHelper.CreateObjectGraphAndInsertIntoDatabase <Location>(); var facility = TestHelper.CreateObjectGraphAndInsertIntoDatabase <Facility>(); var parameters = new CreateLocationParameters { UserToken = TestUser.UserName, FacilityKey = new FacilityKey(facility), Description = location.Description }; //Act var result = Service.CreateLocation(parameters); //Assert result.AssertSuccess(); var locationKey = new LocationKey(KeyParserHelper.ParseResult <ILocationKey>(result.ResultingObject).ResultingObject); RVCUnitOfWork.LocationRepository.FindByKey(locationKey).AssertEqual(parameters); }