コード例 #1
0
        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());
        }
コード例 #2
0
        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)));
        }
コード例 #3
0
            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);
            }
コード例 #4
0
            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);
            }