public IResult <string> CreateLocation(ICreateLocationParameters parameters)
        {
            var parameterResult = parameters.ToParsedParameters();

            if (!parameterResult.Success)
            {
                return(parameterResult.ConvertTo <string>());
            }

            var employeeResult = new GetEmployeeCommand(_facilityUnitOfWork).GetEmployee(parameters);

            if (!employeeResult.Success)
            {
                return(employeeResult.ConvertTo <string>());
            }

            var result = new CreateLocationCommand(_facilityUnitOfWork).CreateLocation(parameterResult.ResultingObject);

            if (!result.Success)
            {
                return(result.ConvertTo <string>());
            }

            _facilityUnitOfWork.Commit();

            return(SyncParameters.Using(new SuccessResult <string>(new LocationKey(result.ResultingObject)), new SyncLocationsParameters
            {
                EmployeeKey = employeeResult.ResultingObject,
                Locations = new List <ILocationKey>
                {
                    result.ResultingObject
                }
            }));
        }
 public IResult <string> CreateLocation(ICreateLocationParameters parameters)
 {
     try
     {
         return(_facilityServiceProvider.CreateLocation(parameters));
     }
     catch (Exception ex)
     {
         _exceptionLogger.LogException(ex);
         return(new FailureResult <string>(null, ex.GetInnermostException().Message));
     }
 }
Exemple #3
0
        internal static IResult <CreateLocationParameters> ToParsedParameters(this ICreateLocationParameters parameters)
        {
            var facilityKey = KeyParserHelper.ParseResult <IFacilityKey>(parameters.FacilityKey);

            if (!facilityKey.Success)
            {
                return(facilityKey.ConvertTo <CreateLocationParameters>(null));
            }

            return(new SuccessResult <CreateLocationParameters>(new CreateLocationParameters
            {
                Params = parameters,
                FacilityKey = new FacilityKey(facilityKey.ResultingObject)
            }));
        }
Exemple #4
0
        internal static void AssertEqual(this Location location, ICreateLocationParameters parameters)
        {
            if (location == null)
            {
                throw new ArgumentNullException("location");
            }
            if (parameters == null)
            {
                throw new ArgumentNullException("parameters");
            }

            Assert.AreEqual(parameters.FacilityKey, new FacilityKey(location).KeyValue);
            Assert.AreEqual(parameters.LocationType, location.LocationType);
            Assert.AreEqual(parameters.Description, location.Description);
            Assert.AreEqual(parameters.Active, location.Active);
            Assert.AreEqual(parameters.Locked, location.Locked);
        }