Пример #1
0
 public IResult UpdateContact(IUpdateContactParameters parameters)
 {
     try
     {
         return(_companyServiceProvider.UpdateContact(parameters));
     }
     catch (Exception ex)
     {
         _exceptionLogger.LogException(ex);
         return(new FailureResult <string>(null, ex.Message));
     }
 }
        public IResult UpdateContact(IUpdateContactParameters parameters)
        {
            if(parameters == null) { throw new ArgumentNullException("parameters"); }

            var parametersResult = parameters.ToParsedParameters();
            if(!parametersResult.Success)
            {
                return parametersResult;
            }

            var commandResult = new UpdateContactCommand(_companyUnitOfWork).Execute(parametersResult.ResultingObject);
            if(!commandResult.Success)
            {
                return commandResult;
            }

            _companyUnitOfWork.Commit();

            return SyncParameters.Using(new SuccessResult(), commandResult.ResultingObject.ToCompanyKey());
        }
Пример #3
0
        internal static IResult <UpdateContactCommandParameters> ToParsedParameters(this IUpdateContactParameters parameters)
        {
            if (parameters == null)
            {
                throw new ArgumentNullException("parameters");
            }

            var contactKeyResult = KeyParserHelper.ParseResult <IContactKey>(parameters.ContactKey);

            if (!contactKeyResult.Success)
            {
                return(contactKeyResult.ConvertTo <UpdateContactCommandParameters>());
            }

            var updateAddresses = new List <SetContactAddressParameters>();

            if (parameters.Addresses != null)
            {
                foreach (var address in parameters.Addresses)
                {
                    var addressResult = address.ToParsedParameters();
                    if (!addressResult.Success)
                    {
                        return(addressResult.ConvertTo <UpdateContactCommandParameters>());
                    }
                    updateAddresses.Add(addressResult.ResultingObject);
                }
            }

            return(new SuccessResult <UpdateContactCommandParameters>(new UpdateContactCommandParameters
            {
                Parameters = parameters,
                ContactKey = contactKeyResult.ResultingObject.ToContactKey(),
                SetAddresses = updateAddresses
            }));
        }