public SaveWFSUserResponse SaveCustomer(SaveWFSUserRequest request) { var resp = new SaveWFSUserResponse(); resp.Value = request.UserInfo; var user = request.UserInfo; var userCommand = new SaveWFSUserCommand(user); var userResponse = _repository.ExecuteCommand(userCommand); resp.Merge<WFSUser, WFSUser>((Result<WFSUser>)userResponse); if (resp.Status != Status.Success) return resp; request.UserInfo = userResponse.Value; var addCommand = new SaveWfsBillingAddressCommand(request.UserInfo); var addRes = _repository.ExecuteCommand(addCommand); ((Result<WFSUser>)addRes).Merge<WFSUser, WFSUser>(resp); if (resp.Status == Status.Success) resp.UserInfo = addRes.Value; return resp; }
public SaveVendorResponse SaveVendor(SaveVendorRequest request) { var resp = new SaveVendorResponse(); resp.Value = request.Subject; var user = request.Subject.User; var userCommand = new SaveWFSUserCommand(request.Subject.User); var userResponse = _repository.ExecuteCommand(userCommand); resp.Merge<Vendor, WFSUser>((Result<WFSUser>)userResponse); if (resp.Status != Status.Success) return resp; request.Subject.User = userResponse.Value; var vendorCommand = new SaveVendorCommand(request.Subject); var venRes = _repository.ExecuteCommand(vendorCommand); ((Result<Vendor>)venRes).Merge<Vendor, Vendor>(resp); if (resp.Status == Status.Success) resp.Value = (Vendor)venRes.Value; return resp; }