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)); } }
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) })); }
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); }